[slime-devel] Re: what does SWANK compile??

Harald Hanche-Olsen hanche at math.ntnu.no
Fri Mar 16 20:03:04 UTC 2007


+ "Alex Mizrahi" <killerstorm at newmail.ru>:

| well, i meant what does it compile when it's already loaded -- in
| response to events in REPL.

Ah.  Sorry, I didn't understand what you meant and guessed wrong.

| i've found single place where it does (compile nil:
| 
| (let ((regex-hash (make-hash-table :test #'equal)))
|   (defun compiled-regex (regex-string)
|     (or (gethash regex-string regex-hash)
|         (setf (gethash regex-string regex-hash)
|               (if (zerop (length regex-string))
|                   (lambda (s) (check-type s string) t)
|                   (compile nil (slime-nregex:regex-compile regex-string)))))))

And compiled-regex is used (indirectly) by apropos-list-for-emacs,
which can certainly be called as a result of REPL events.  In fact,
lots of stuff can happen in the lisp in response to events on the
emacs side.

| i suspect it's highly likely that ABCL chokes on attempts to compile
| some regex function.. but it's not that simple -- possibly it's
| superposition of several bugs in ABCL :).

Well, I don't use ABCL myself, so I am certainly the wrong person to
ask.  Is the problem here that you don't get a debugger, so you can
dig around in the backtrace and find out what is going on?  But if you
look in the *slime-events* buffer, maybe you can find exactly what
emacs sent to swank.  Then you could try running the offending command
directly in ABCL and see if that gets you into the debugger.

- Harald



More information about the slime-devel mailing list