Hi everybody,
I just tried loading my library "stmx" with abcl-1.9.0, and it produces the following error:
$ abcl Armed Bear Common Lisp 1.9.0 Java 18.0.1-ea Debian OpenJDK 64-Bit Server VM Low-level initialization completed in 0.122 seconds. Startup completed in 0.536 seconds. Loading /home/max/.abclrc completed in 7.901 seconds. Type ":help" for a list of available commands.
CL-USER(1): (ql:quickload "stmx") To load "stmx": Load 1 ASDF system: stmx; Loading "stmx" [package alexandria].............................. ;; more lines omitted... [package stmx.lang]............................... [package stmx].................................... [package stmx.util]........................
Error loading /home/max/.cache/common-lisp/abcl-1.9.0-fasl43-linux-x64/home/max/my/common-lisp/stmx/util/tcell.abcl at line 14 (offset 935)
The slot TRANSACTIONAL is unbound in the object #<TRANSACTIONAL-DIRECT-SLOT {2D9B58FE}>. [Condition of type UNBOUND-SLOT]
Restarts: 0: [TRY-RECOMPILING] Recompile tcell and try loading it again 1: [RETRY] Retry loading FASL for #<ASDF/LISP-ACTION:CL-SOURCE-FILE "stmx" "util" "tcell">. 2: [ACCEPT] Continue, treating loading FASL for #<ASDF/LISP-ACTION:CL-SOURCE-FILE "stmx" "util" "tcell"> as having been successful. 3: [RETRY] Retry ASDF operation. 4: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the configuration. 5: [ABORT] Give up on "stmx" 6: [RETRY] Retry SLIME REPL evaluation request. 7: [*ABORT] Return to SLIME's top level. 8: [ABORT] Abort thread.
Backtrace: 0: (SYSTEM:BACKTRACE) 1: (#<FUNCTION #<FUNCTION {25F0C5DA}> {25F0C5DA}> #<UNBOUND-SLOT {50DED6EF}> #<FUNCTION #<FUNCTION {25F0C5DA}> {25F0C5DA}>) 2: (APPLY #<FUNCTION #<FUNCTION {25F0C5DA}> {25F0C5DA}> (#<UNBOUND-SLOT {50DED6EF}> #<FUNCTION #<FUNCTION {25F0C5DA}> {25F0C5DA}>)) 3: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<UNBOUND-SLOT {50DED6EF}> #<FUNCTION #<FUNCTION {25F0C5DA}> {25F0C5DA}>) 4: (INVOKE-DEBUGGER #<UNBOUND-SLOT {50DED6EF}>) 5: (ERROR UNBOUND-SLOT :INSTANCE #<STMX::TRANSACTIONAL-DIRECT-SLOT {2D9B58FE}> :NAME STMX:TRANSACTIONAL) 6: (#<FUNCTION #<FUNCTION {2BE435C1}> {2BE435C1}> (#<STANDARD-CLASS STMX::TRANSACTIONAL-DIRECT-SLOT {3ECE7861}> #<STMX::TRANSACTIONAL-DIRECT-SLOT {2D9B58FE}> STMX:TRANSACTIONAL)) 7: (#<FUNCTION #<FUNCTION {D2BE7FC}> {D2BE7FC}> (#<STMX::TRANSACTIONAL-DIRECT-SLOT {2D9B58FE}>)) 8: (#<FUNCTION #<FUNCTION {7A80120F}> {7A80120F}> (#<STMX:TRANSACTIONAL-CLASS STMX.UTIL:TCELL {597DC690}> STMX.UTIL::VALUE (#<STMX::TRANSACTIONAL-DIRECT-SLOT {2D9B58FE}>))) 9: (#<STANDARD-GENERIC-FUNCTION MOP:COMPUTE-EFFECTIVE-SLOT-DEFINITION {6F61B180}> #<STMX:TRANSACTIONAL-CLASS STMX.UTIL:TCELL {597DC690}> STMX.UTIL::VALUE (#<STMX::TRANSACTIONAL-DIRECT-SLOT {2D9B58FE}>)) 10: (#<FUNCTION #<FUNCTION {53BDAA43}> {53BDAA43}> STMX.UTIL::VALUE) 11: (MOP::STD-COMPUTE-SLOTS #<STMX:TRANSACTIONAL-CLASS STMX.UTIL:TCELL {597DC690}>) 12: (#<STANDARD-GENERIC-FUNCTION MOP:COMPUTE-SLOTS {1125EE25}> #<STMX:TRANSACTIONAL-CLASS STMX.UTIL:TCELL {597DC690}>) 13: (MOP::STD-FINALIZE-INHERITANCE #<STMX:TRANSACTIONAL-CLASS STMX.UTIL:TCELL {597DC690}>) 14: (MOP:FINALIZE-INHERITANCE #<STMX:TRANSACTIONAL-CLASS STMX.UTIL:TCELL {597DC690}>) 15: (MOP::MAYBE-FINALIZE-CLASS-SUBTREE #<STMX:TRANSACTIONAL-CLASS STMX.UTIL:TCELL {597DC690}>) 16: (MOP::STD-AFTER-INITIALIZATION-FOR-CLASSES #<STMX:TRANSACTIONAL-CLASS STMX.UTIL:TCELL {597DC690}> :NAME STMX.UTIL:TCELL :DIRECT-SUPERCLASSES (#<STMX:TRANSACTIONAL-CLASS STMX:TRANSACTIONAL-OBJECT {1FBB.. 17: (APPLY #<FUNCTION #<STD-AFTER-INITIALIZATION-FOR-CLASSES {733841D0}> {733841D0}> #<STMX:TRANSACTIONAL-CLASS STMX.UTIL:TCELL {597DC690}> (:NAME STMX.UTIL:TCELL :DIRECT-SUPERCLASSES ..)) 18: (#<FUNCTION #<FUNCTION {4C6FD921}> {4C6FD921}> #<STMX:TRANSACTIONAL-CLASS STMX.UTIL:TCELL {597DC690}> :NAME STMX.UTIL:TCELL :DIRECT-SUPERCLASSES (#<STMX:TRANSACTIONAL-CLASS STMX:TRANSACTIONAL-OBJECT {.. 19: (APPLY #<FUNCTION #<FUNCTION {4C6FD921}> {4C6FD921}> (#<STMX:TRANSACTIONAL-CLASS STMX.UTIL:TCELL {597DC690}> :NAME STMX.UTIL:TCELL :DIRECT-SUPERCLASSES ..)) 20: (#<STANDARD-GENERIC-FUNCTION INITIALIZE-INSTANCE {5F0C5228}> #<STMX:TRANSACTIONAL-CLASS STMX.UTIL:TCELL {597DC690}> :NAME STMX.UTIL:TCELL :DIRECT-SUPERCLASSES (#<STMX:TRANSACTIONAL-CLASS STMX:TRANSACT.. 21: (APPLY #<STANDARD-GENERIC-FUNCTION INITIALIZE-INSTANCE {5F0C5228}> #<STMX:TRANSACTIONAL-CLASS STMX.UTIL:TCELL {597DC690}> (:NAME STMX.UTIL:TCELL :DIRECT-SUPERCLASSES ..)) 22: (#<FUNCTION #<FUNCTION {723E9D5D}> {723E9D5D}> #<STANDARD-CLASS STMX:TRANSACTIONAL-CLASS {40AB239E}> :NAME STMX.UTIL:TCELL :DIRECT-SUPERCLASSES (#<STMX:TRANSACTIONAL-CLASS STMX:TRANSACTIONAL-OBJECT {1.. 23: (APPLY #<FUNCTION #<FUNCTION {723E9D5D}> {723E9D5D}> (#<STANDARD-CLASS STMX:TRANSACTIONAL-CLASS {40AB239E}> :NAME STMX.UTIL:TCELL :DIRECT-SUPERCLASSES ..)) 24: (#<STANDARD-GENERIC-FUNCTION MAKE-INSTANCE {2577139A}> #<STANDARD-CLASS STMX:TRANSACTIONAL-CLASS {40AB239E}> :NAME STMX.UTIL:TCELL :DIRECT-SUPERCLASSES (#<STMX:TRANSACTIONAL-CLASS STMX:TRANSACTIONAL-O.. 25: (APPLY #<STANDARD-GENERIC-FUNCTION MAKE-INSTANCE {2577139A}> #<STANDARD-CLASS STMX:TRANSACTIONAL-CLASS {40AB239E}> :NAME STMX.UTIL:TCELL :DIRECT-SUPERCLASSES (#<STMX:TRANSACTIONAL-CLASS STMX:TRANSACTI.. 26: (#<FUNCTION #<FUNCTION {2E873D1E}> {2E873D1E}> NIL STMX.UTIL:TCELL :DIRECT-SUPERCLASSES (#<STMX:TRANSACTIONAL-CLASS STMX:TRANSACTIONAL-OBJECT {1FBB3CF}>) :DIRECT-SLOTS ((:NAME STMX.UTIL::VALUE ..)) :M.. 27: (APPLY #<FUNCTION #<FUNCTION {2E873D1E}> {2E873D1E}> (NIL STMX.UTIL:TCELL :DIRECT-SUPERCLASSES (#<STMX:TRANSACTIONAL-CLASS STMX:TRANSACTIONAL-OBJECT {1FBB3CF}>) :DIRECT-SLOTS ..)) 28: (#<STANDARD-GENERIC-FUNCTION MOP:ENSURE-CLASS-USING-CLASS {145D6FB6}> NIL STMX.UTIL:TCELL :DIRECT-SUPERCLASSES (#<STMX:TRANSACTIONAL-CLASS STMX:TRANSACTIONAL-OBJECT {1FBB3CF}>) :DIRECT-SLOTS ((:NAME ... 29: (APPLY #<STANDARD-GENERIC-FUNCTION MOP:ENSURE-CLASS-USING-CLASS {145D6FB6}> NIL STMX.UTIL:TCELL (:DIRECT-SUPERCLASSES (#<STMX:TRANSACTIONAL-CLASS STMX:TRANSACTIONAL-OBJECT {1FBB3CF}>) ..)) 30: (MOP:ENSURE-CLASS STMX.UTIL:TCELL :DIRECT-SUPERCLASSES (#<STMX:TRANSACTIONAL-CLASS STMX:TRANSACTIONAL-OBJECT {1FBB3CF}>) :DIRECT-SLOTS ((:NAME STMX.UTIL::VALUE :INITFORM STMX.UTIL::+EMPTY-TCELL+ ..)) .. 31: (#<COMPILED-FUNCTION #<FUNCTION (LAMBDA ()) {5BAF143A}> {5BAF143A}>) 32: (FUNCALL #<COMPILED-FUNCTION #<FUNCTION (LAMBDA ()) {5BAF143A}> {5BAF143A}>) 33: (SYSTEM:INIT-FASL :VERSION 43) 34: (SYSTEM::%LOAD #P"/home/max/.cache/common-lisp/abcl-1.9.0-fasl43-linux-x64/home/max/my/common-lisp/stmx/util/tcell.abcl" NIL NIL T :DEFAULT) 35: (LOAD #P"/home/max/.cache/common-lisp/abcl-1.9.0-fasl43-linux-x64/home/max/my/common-lisp/stmx/util/tcell.abcl") 36: (APPLY LOAD #P"/home/max/.cache/common-lisp/abcl-1.9.0-fasl43-linux-x64/home/max/my/common-lisp/stmx/util/tcell.abcl" NIL) 37: (#<FUNCTION #<FUNCTION {69BB78BF}> {69BB78BF}>) 38: (UIOP/UTILITY:CALL-WITH-MUFFLED-CONDITIONS #<FUNCTION #<FUNCTION {69BB78BF}> {69BB78BF}> ("Overwriting already existing readtable ~S." #(#:FINALIZERS-OFF-WARNING :ASDF-FINALIZERS))) 39: (UIOP/LISP-BUILD:CALL-WITH-MUFFLED-LOADER-CONDITIONS #<FUNCTION #<FUNCTION {69BB78BF}> {69BB78BF}>) 40: (UIOP/LISP-BUILD:LOAD* #P"/home/max/.cache/common-lisp/abcl-1.9.0-fasl43-linux-x64/home/max/my/common-lisp/stmx/util/tcell.abcl") ; ...
Any idea what could be the reason? The same code works with sbcl, and used to work also with abcl <= 1.7.1.
Also, it's not clear to me how the TRANSACTIONAL slot in question can be unbound, as it has an initform:
(defclass transactional-direct-slot (standard-direct-slot-definition) ((transactional :type boolean :initform t :initarg :transactional :accessor transactional-slot?)) (:documentation "The class for direct slots of transactional classes. [...]))
Thanks in advance for any advice/suggestion.
Massimiliano Ghilardi