I just updated to the latest SLIME from CVS, and I noticed that trusty C-c M-p stopped working. I tend to name packages with keywords, and the package string includes in the minibuffer prompt includes a leading colon, e.g., :trial. I have to keep manually removing the colon to sync the package from my editor buffer to my REPL.
I noticed in the CVS log a commit from November 24th: "slime.el (slime-search-buffer-package): Don't remove double quotes or "#:", swank:parse-package takes care of that." Directly calling swank::parse-package does seem to work, but I don't think SLIME is doing this right now. I have this problem with OpenMCL (1.1 beta) and SBCL (1.0.12). I did blow away .slime/fasl and I restarted Emacs, so I think there's a bug somewhere.
I took a quick look at the code in slime.el, but I'm not familiar it with the way slime.el calls swank functions, so it's not obvious where to look. FWIW, I don't think any code references the parse-package function in swank (which, by the way, is not exported from the swank package).
* Constantine Vetoshev [2007-11-29 01:40+0100] writes:
I took a quick look at the code in slime.el, but I'm not familiar it with the way slime.el calls swank functions, so it's not obvious where to look. FWIW, I don't think any code references the parse-package function in swank (which, by the way, is not exported from the swank package).
It eventually calls parse-package, but you had to remove the colon because slime-read-package-name knows all the package names (for TAB-completion) and insists that the entered name matches one of those.
The CVS version should remove it automatically.
To figure out which swank functions are called, you can look at the *slime-events* buffer. E.g. for C-c M-p there will be something like
(:emacs-rex (swank:set-package "mp") "MULTIPROCESSING" :repl-thread 6)
Helmut.
Helmut Eller heller@common-lisp.net writes:
It eventually calls parse-package, but you had to remove the
colon
because slime-read-package-name knows all the package names (for TAB-completion) and insists that the entered name matches one of those.
The CVS version should remove it automatically.
Works beautifully now. Thanks! > To figure out which swank functions are called, you can look at the
*slime-events* buffer. E.g. for C-c M-p there will be something
like
(:emacs-rex (swank:set-package "mp") "MULTIPROCESSING" :repl-thread 6)
Thanks for the explanation. I'll definitely be taking a closer look.