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