sionescu/static-vectors

Unable to compile: OPERATION instances must only be created through MAKE-OPERATION.

Closed this issue · 3 comments

I can't compile the latest release of static-vectors @ 566fd7e

The main error message seems to be:

OPERATION instances must only be created through MAKE-OPERATION.
   [Condition of type ASDF/SESSION:FORMATTED-SYSTEM-DEFINITION-ERROR]

More detailed log is collapsed below.

System Info

OS: Linux 6.8.10/Fedora 40
Lisp implementation: SBCL 2.4.5
ASDF version: 3.3.7

Loading/Compiling static-vectors

Lisp Session Log
CL-USER> (ql:quickload :static-vectors :verbose T)
To load "static-vectors":
  Load 1 ASDF system:
    static-vectors
; Loading "static-vectors"
WARNING:
   No dependency propagating scheme specified for operation class CFFI-GROVEL::PROCESS-OP.
The class needs to be updated for ASDF 3.1 and specify appropriate propagation mixins.
WARNING:
   DEPRECATED-FUNCTION-WARNING: Using deprecated function (ASDF/ACTION::BACKWARD-COMPATIBLE-DEPENDS-ON
                                                           :FOR-OPERATION
                                                           #<CFFI-GROVEL::PROCESS-OP >) -- please update your code to use a newer API.
WARNING:
   DEPRECATED-FUNCTION-WARNING: Using deprecated function (ASDF/ACTION::BACKWARD-COMPATIBLE-DEPENDS-ON
                                                           :FOR-OPERATION
                                                           #<CFFI-GROVEL::PROCESS-OP >) -- please update your code to use a newer API.
WARNING:
   DEPRECATED-FUNCTION-WARNING: Using deprecated function (ASDF/ACTION::BACKWARD-COMPATIBLE-DEPENDS-ON
                                                           :FOR-OPERATION
                                                           #<CFFI-GROVEL::PROCESS-OP >) -- please update your code to use a newer API.

debugger invoked on a ASDF/SESSION:FORMATTED-SYSTEM-DEFINITION-ERROR in thread
#<THREAD tid=81332 "main thread" RUNNING {1000DC8003}>:
  OPERATION instances must only be created through MAKE-OPERATION.

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY                        ] Retry
                                     compiling #<GROVEL-FILE "static-vectors" "ffi-types">.
  1: [ACCEPT                       ] Continue, treating
                                     compiling #<GROVEL-FILE "static-vectors" "ffi-types">
                                     as having been successful.
  2:                                 Retry ASDF operation.
  3: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the
                                     configuration.
  4: [ABORT                        ] Give up on "static-vectors"
  5: [REGISTER-LOCAL-PROJECTS      ] Register local projects and try again.
  6:                                 Exit debugger, returning to top level.

(ASDF/SESSION:SYSDEF-ERROR "OPERATION instances must only be created through MAKE-OPERATION.")
   source: (ERROR 'FORMATTED-SYSTEM-DEFINITION-ERROR :FORMAT-CONTROL FORMAT
                  :FORMAT-ARGUMENTS ARGUMENTS)

I suspect you have an old version of CFFI that's getting loaded. I don't get that error, and have never encountered it.

I suspect you have an old version of CFFI that's getting loaded.

I tried to make sure I had everything I could think of updated before I opened the issue and yet I overlooked this one. Had a directory in my ASDF load path that contained an old CFFI version in it and that was getting loaded. Damn it. Loads and compiles fine now, thank you.

My suggestion is to entirely avoid having many directories on your load path. Two should suffice: one for Quicklisp, the other one for sources you download manually.