_____ __ __ __ / ___/ / / \ \/ / |\ _,,,---,,_ \__ \ / / \ / /,`.-'`' -. ;-;;,_ ___/ / / /___ / / |,4- ) )-,_..;\ ( `'-' /____/ /_____/ /_/ '---''(_/--' `-'\_)
SLY is Sylvester the Cat's Common Lisp IDE for Emacs:
🤔Read a short illustrated guide 📽️Scroll down this README for some pretty gifs 📣Read the NEWS file 📚Read the manual
SLY is a fork of SLIME and contains the following improvements upon it:
- Completely redesigned REPL based on Emacs's own full-featured
- Live code annotations via a new
- Consistent interactive button interface. Everything can be copied to the REPL;
- Modern flex-style completion. Much snappier when using company, and no plugin required;
- Cleanly ASDF-loaded be default, including contribs, which are enabled out-of-the-box;
- Multiple inspectors;
- Support for NAMED-READTABLES, macrostep.el and quicklisp
SLY tracks SLIME's bugfixes. All its familar features (debugger, inspector, xref, etc...) are still available, with improved overall UX.
Ensure that MELPA is setup as usual and ask
M-x package-install to
install the package
sly-mode will automatically come up in every
.lisp file. To
fire up SLY, connect to a Lisp and get a friendly REPL, use
Even if you already have SLIME installed, SLY will ask you and temporarily disable it for the Emacs session.
Install from git
Clone this repository, add this to your
~/.emacs file and fill in the
appropriate file names:
(add-to-list 'load-path "~/dir/to/cloned/sly") (require 'sly-autoloads) (setq inferior-lisp-program "/opt/sbcl/bin/sbcl")
If you wish to byte-compile SLY yourself (not needed generally) you can do
make compile compile-contrib in the dir where you cloned SLY.
Running the server standalone
This also works
$ sbcl ... * (push #p"~/dir/to/sly" asdf:*central-registry*) * (asdf:load-system :slynk) * (slynk:create-server :port 4008)
Now in Emacs you can do
sly-connect and give it the host and the 4008 port as
SLY is free software. All files, unless explicitly stated otherwise, are public domain. ASCII artwork is copyright by Felix Lee and others.
SLIME is the work of Eric Marsden, Luke Gorrie, Helmut Eller, Tobias C. Rittweiler and many others. I forked SLIME because I used it daily, for work, had a long list of hacks developed for myself, and wanted to share them with others.
In 2013, SLIME development was stalling, patches and issues rotting. In early 2014, Luís Oliveira and myself moved SLIME to Github and set up its Travis CI system. I brought in the old bug reports from the Launchpad tracker, fixed long-standing problems and submitted many changes, particularly to the under-curated but popular "contrib" section.
Now, the changes that SLY brings to the table are too deep at the Elisp and Lisp level to be accepted to SLIME, given its current focus on stability (for the record, I find this perfectly reasonable). The new features, such as stickers or multiple inspectors, cannot be realized well using only the existing "contrib" system. Finally, SLY frees itself from the shackles of Emacs 23 and supports Emacs 24.3+ only, allowing for much cleaner code and liberal use of lexical binding.
The list of technical reasons is bigger than this though, and you can read up on them in the CONTRIBUTING.md file.