SLIME is the Superior Lisp Interaction Mode for Emacs. This is an ILISP-like development environment intended for maximum integration with CMUCL (also works with SBCL, OpenMCL and work is ongoing on Lispworks and current CVS version of CLISP and CLISP 2.32 on Linux; there is also support packaged separately for Scheme48, called SLIME48).SLIME is now stable and released. Please download the latest version from its home page. Documentation is included there. NOTE: slime-2.0 is too old for use with current versions of SBCL. Fetch slime from CVS.
Want to try SLIME? Check out the SLIME-HOWTO or read about the SLIME Features. You can also check out some SLIME Tips.
Users are invited to post feature suggestions on this page.
- Ability to pin certain things (arglist info, debugger, repl) into dedicated frames for nice multi-window operation -- Zach
- Make the slime faces inherit from the standard font-lock faces when appropriate (eg making the REPL output face inherit from font-lock-comment-face) -- Brian
- Note: Although it is possible to connect to a Lisp on a remote machine, we haven't yet figured out what does and doesn't work without a shared filesystem. Maybe this can be made tramp-aware? -- Rahul Jain Clear *use-dedicated-output-stream* before connecting works for me so far. -- ngps
- Autodetection of LINEDIT (or other random REPL wrappers) and calling LINEDIT's UNINSTALL-REPL before running SWANK. I tried to add something in slime-maybe-start-lisp in slime.el to do so, but comint-proc-query was uncooperative and kept hanging. -- James A. Crippen
- Some REPL conveniences, such as ILISP's C-z P (set package).
The SLIME equivalent of the latter is
SLIME-REPL-SET-PACKAGE, anything else?
I second the motion. It would be very useful to keep a record of what was evaluated and what printed, sort of like a ... read-eval-print loop! It's amazing that this crucial feature of Lisp was discarded in the SLIME model; its absence really detracts from usability. Drew McDermott -- 2005-12-09.
I would also very much like this feature! -Lars Rune Nøstdal
(:cd "dir") doesn't work when using SLIME with OpenMCL...) Update: I found directory functionality by typing a comma then entering 'cd' into the minibuffer. SLIME RULES!
To add a note about using the standard font-lock faces, the keywords from the appropriate mode should also be used. That is, SLIME should use the lisp-mode-font-lock-keywords-... variables. I have diffrerent ones for Common Lisp, Scheme, and Emacs Lisp, so it would be nice to have this customizable for SLIME. Or better yet, since Emacs's default keywords for Lisp are pretty ELisp-centric maybe SLIME should provide its own set of Common Lisp--centric font-lock keywords, leaving the user to decide whether to copy those for Emacs's Lisp-mode or not. -- James A Crippen
Sounds a good idea to me. Can you post the code you use somewhere so we can use it as a basis? -- Luke Gorrie
Some responses..
A "Recent Changes" popup: Can you elaborate a bit? The ChangeLog file + the mailing list is supposed to fill this role, but feedback about the effectiveness would be appreciated. -- Luke Gorrie
It might be nice to just add a link to the latest ChangeLog in CVS, like so Latest ChangeLog. Stick that on the project home page. -- James A Crippen Good idea. ChangeLog and mailing lists are now linked.
Re: "Recent Changes Popup": Especially with the daily ChangeLog diff on the list, this is a solved problem for me at least. I suspect that people following the CVS, but not the list deserve to lose (like I did...). OTOH: I can imagine having a busy month, then updating SLIME, and not noticing all the new goodies. ;) So in the bells and whistles department, SLIME offering to show it's own ChangeLog since last update would be kind of neat -- but definitely not a priority.
As far as using slime remotely: if you have a shared filesystem but not with identical mountpoints, the patch included in this mail provides you with a M-x slime-replace-prefix function which causes a few uses of filenames to be translated (but only in the emacs->lisp direction).
The full cygwin-windows cycle is translated by these hooks, working for any cygwin mountpoint. --ReiniUrban
There is the beginnings of MP (threading) support in SLIME CVS. See the mailing list for details
Slime Distributions
Information, for fetching the source distribution, is available at the Slime homepage.
For fetching Slime via cvs, information is available, also, at the Slime homepage.
Debian packages
Slime has got an official Debian package.
It is under the non-free section of Debian mostly because of the license of one file (xref.lisp). So, should it stay on CLiki.net? -- alceste@NOSPAM.muvara.org
Mac OS X
A fink package for Mac OS X (10.3) is also available in fink's unstable tree.Slime is available in MacPorts, current port is based on 20110419 CVS snapshot.