Hello
I made a merge request (https://github.com/slime/slime/pull/776) after commit dd179f4a changed the behaviour of loading the swank asdf system when swank has been loaded by swank-loader already. With dd179f4a, loading the asdf system proceeds and produces lots of redefinition warnings and also package variance warnings on SBCL. The latter made asdf:load-system fail when run under Slime.
I believe this fix is necessary to compile stuff that depends on swank via ASDF. Please consider merging it.
Cheers, Gábor
This fixed the most glaring issue on SBCL, but annoyingly it still prints a lot of redefinition warnings, and on AllegroCL loading the swank asdf system under Slime ends up in the debugger:
No methods applicable for generic function #<STANDARD-GENERIC-FUNCTION SWANK/BACKEND:MESSAGE> with args (#<SWANK/BACKEND:COMPILER-CONDITION @ #x20ec692a>) of classes (SWANK/BACKEND:COMPILER-CONDITION) [Condition of type PROGRAM-ERROR]
Restarts: 0: [CONTINUE] Try calling it again 1: [RETRY] retry the load of /home/melisgl/.cache/common-lisp/acl-10.1-linux-x86/home/melisgl/src/slime/swank/backend.fasl 2: [SKIP] skip loading /home/melisgl/.cache/common-lisp/acl-10.1-linux-x86/home/melisgl/src/slime/swank/backend.fasl 3: [TRY-RECOMPILING] Recompile backend and try loading it again 4: [RETRY] Retry loading FASL for #<CL-SOURCE-FILE "swank" "backend" "backend">. 5: [ACCEPT] Continue, treating loading FASL for #<CL-SOURCE-FILE "swank" "backend" "backend"> as having been successful. --more--
Backtrace: 0: (CERROR "Try calling it again" PROGRAM-ERROR :FORMAT-CONTROL "No methods applicable for generic function ~s with args ~s of classes ~s" :FORMAT-ARGUMENTS ...) 1: ((METHOD NO-APPLICABLE-METHOD (T)) #<STANDARD-GENERIC-FUNCTION SWANK/BACKEND:MESSAGE> #<SWANK/BACKEND:COMPILER-CONDITION @ #x20ec692a>) 2: ((FLET #:ENSURE-GENERIC-FUNCTION-USING-CLASS--NULL EXCL::INITIAL-CHEAP-SELECT-FUNCTION) #<STANDARD-GENERIC-FUNCTION SWANK/BACKEND:MESSAGE> #<SWANK/BACKEND:COMPILER-CONDITION @ #x20ec692a>) 3: (SWANK::MAKE-COMPILER-NOTE #<SWANK/BACKEND:COMPILER-CONDITION @ #x20d809a2>) 4: ((:INTERNAL SWANK::COLLECT-NOTES 0) #<SWANK/BACKEND:COMPILER-CONDITION @ #x20d809a2>) 5: (SIGNAL SWANK/BACKEND:COMPILER-CONDITION :ORIGINAL-CONDITION #<SIMPLE-WARNING @ #x20d80c8a> :SEVERITY :WARNING ...) 6: (SWANK/ALLEGRO::SIGNAL-COMPILER-CONDITION :ORIGINAL-CONDITION #<SIMPLE-WARNING @ #x20f46cc2> :SEVERITY :WARNING :MESSAGE ...) 7: (SWANK/ALLEGRO::HANDLE-COMPILER-WARNING #<SIMPLE-WARNING @ #x20f46cc2>) 8: (SIGNAL #<SIMPLE-WARNING @ #x20f46cc2>) 9: (WARN "~\n~S, ~S was defined in ~A and is now being defined in ~A" (METHOD SWANK/BACKEND:ORIGINAL-CONDITION (SWANK/BACKEND:COMPILER-CONDITION)) :OPERATOR ..) 10: ((METHOD SHARED-INITIALIZE :AFTER (EXCL::STD-CLASS T)) #<STANDARD-CLASS SWANK/BACKEND:COMPILER-CONDITION> NIL :DIRECT-SUPERCLASSES (#<STANDARD-CLASS CONDITION>) :DIRECT-SLOTS ...) 11: ((:INTERNAL (:EFFECTIVE-METHOD 2 T NIL NIL NIL) 0) #<STANDARD-CLASS SWANK/BACKEND:COMPILER-CONDITION> NIL :DIRECT-SLOTS ..) 12: ((METHOD REINITIALIZE-INSTANCE (STANDARD-OBJECT)) #<STANDARD-CLASS SWANK/BACKEND:COMPILER-CONDITION> :DIRECT-SLOTS ..) 13: ((:INTERNAL (:EFFECTIVE-METHOD 1 T NIL NIL NIL) 0) #<STANDARD-CLASS SWANK/BACKEND:COMPILER-CONDITION> :DIRECT-SLOTS ..) 14: ((METHOD ACLMOP:ENSURE-CLASS-USING-CLASS (EXCL::CLOS-CLASS T)) #<STANDARD-CLASS SWANK/BACKEND:COMPILER-CONDITION> SWANK/BACKEND:COMPILER-CONDITION :DIRECT-SUPERCLASSES (CONDITION) :DIRECT-SLOTS ...) 15: (ACLMOP:ENSURE-CLASS SWANK/BACKEND:COMPILER-CONDITION) 16: ((:TOP-LEVEL-FORM "/home/melisgl/src/slime/swank/backend.lisp" 20716)) 17: (LOAD #P"/home/melisgl/.cache/common-lisp/acl-10.1-linux-x86/home/melisgl/src/slime/swank/backend.fasl") 18: ((:INTERNAL UIOP/LISP-BUILD:LOAD* 0)) 19: (UIOP/UTILITY:CALL-WITH-MUFFLED-CONDITIONS #<Closure (:INTERNAL UIOP/LISP-BUILD:LOAD* 0) @ #x20d40dd2> ("Overwriting already existing readtable ~S." #(#:FINALIZERS-OFF-WARNING :ASDF-FINALIZERS))) 20: (UIOP/LISP-BUILD:CALL-WITH-MUFFLED-LOADER-CONDITIONS #<Closure (:INTERNAL UIOP/LISP-BUILD:LOAD* 0) @ #x20d40dd2>) 21: (UIOP/LISP-BUILD:LOAD* #P"/home/melisgl/.cache/common-lisp/acl-10.1-linux-x86/home/melisgl/src/slime/swank/backend.fasl") 22: (ASDF/LISP-ACTION:PERFORM-LISP-LOAD-FASL #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "swank" "backend" "backend">) 23: ((METHOD ASDF/ACTION:PERFORM (ASDF/LISP-ACTION:LOAD-OP ASDF/LISP-ACTION:CL-SOURCE-FILE)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "swank" "backend" "backend">) 24: ((:INTERNAL (:EFFECTIVE-METHOD 2 NIL NIL NIL NIL) 0) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "swank" "backend" "backend">) 25: ((METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS (T T)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "swank" "backend" "backend">) 26: ((METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS (ASDF/LISP-ACTION:LOAD-OP ASDF/LISP-ACTION:CL-SOURCE-FILE)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "swank" "backend" "backend">) 27: ((METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "swank" "backend" "backend">) 28: ((:INTERNAL (:EFFECTIVE-METHOD 2 NIL NIL T T) 0) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "swank" "backend" "backend">)
On Tue, 13 Jun 2023 at 14:27, Gábor Melis mega@retes.hu wrote:
Hello
I made a merge request (https://github.com/slime/slime/pull/776) after commit dd179f4a changed the behaviour of loading the swank asdf system when swank has been loaded by swank-loader already. With dd179f4a, loading the asdf system proceeds and produces lots of redefinition warnings and also package variance warnings on SBCL. The latter made asdf:load-system fail when run under Slime.
I believe this fix is necessary to compile stuff that depends on swank via ASDF. Please consider merging it.
Cheers, Gábor