Edi Weitz edi@agharta.de writes:
Sometimes, in the middle of working on an application with SLIME (from CVS) and AllegroCL (7.0 beta) AllegroCL looses the ability to load a system with the ",l" shortcut. I usually start my sessions loading the system I'm currently working on and at this point it works fine but after a couple of breaks, backtraces and whatever it ceases to work. I'm afraid I can't provide an easy test case right now cause I'm in the middle of a project but maybe the attached backtrace is enought for the SLIME gurus.
I haven't been able to reproduce this in 6.2 yet. It irksomely brings to mind some comments of Helmut's in swank-allegro.lisp:
;; The following defitinions are workarounds for the buggy ;; no-applicable-method function in Allegro 5. We have to provide an ;; implementation.
What was the problem with no-applicable-method in Allegro 5? I wonder if it exists in later versions too?
Our `definterface' mechanism puts a method on the `no-applicable-method' generic function to supply a default implementation of `operate-on-system'. Since no backends use `defimplementation' to define a real method for `operate-on-system' it should always be handled by the `no-applicable-method' method.
But from the backtrace it kinda looks like our no-applicable-method has been lost somehow:
3: (CERROR "Try calling it again" PROGRAM-ERROR :FORMAT-CONTROL "No methods applicable for generic function ~s with args ~s of classes ~s" :FORMAT-ARGUMENTS (#<STANDARD-GENERIC-FUNCTION SWANK-BACKEND:OPERATE-ON-SYSTEM> ("prodata" "LOAD-OP") (STRING STRING))) 4: ((METHOD NO-APPLICABLE-METHOD (T)) #<STANDARD-GENERIC-FUNCTION SWANK-BACKEND:OPERATE-ON-SYSTEM> "prodata" "LOAD-OP") 5: ((:INTERNAL SWANK:OPERATE-ON-SYSTEM-FOR-EMACS 0))
Frame four is calling the no-applicable-method generic function, but apparently it's not using the method that we provided.
I'd like to get to the bottom of this, but I don't have any really good idea how. I'd like very much to reproduce it. It would be good to poke around in the inspector to see what methods NO-APPLICABLE-METHOD has and whether it's working right.
-Luke