Skip to content
Sylvester the Cat's Common Lisp IDE
Branch: master
Clone or download
joaotavora Close #131: paper over SLY version detection issues when using MELPA
When installing via MELPA (but only in some situations that couldn't
be precisely determined) sly-protocol-version becomes nil and annoys
users with a useless message: "[sly] Versions differ: nil (sly) .."

Since this is most commonly a false warning which affects first time
users who may not care to look for and customize
sly-ignore-protocol-mismatches, we decide paper over this check when
sly-protocol-version is nil.

* sly.el (sly-check-version): Skip version check
if sly-protocol-version is nil.
Latest commit 0a622da Mar 15, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib Unbreak tests for Emacs 24.4 Feb 7, 2019
.gitignore Play nice with MELPA’s package-build.el Sep 13, 2017
.travis.yml Add tests for Emacs 26.1 Jun 30, 2018 Rename links after github account rename to 'joaotavora' May 22, 2016
Makefile Update PROBLEMS to Markdown and update formatting Aug 29, 2014
sly.el Close #131: paper over SLY version detection issues when using MELPA Mar 15, 2019

Build Status MELPA

          _____    __   __  __        
         / ___/   / /   \ \/ /               |\      _,,,---,,_
         \__ \   / /     \  /                /,`.-'`'    -.  ;-;;,_
        ___/ /  / /___   / /                |,4-  ) )-,_..;\ (  `'-'
       /____/  /_____/  /_/                '---''(_/--'  `-'\_)

SLY is Sylvester the Cat's Common Lisp IDE for Emacs:

SLY is a fork of SLIME and contains the following improvements upon it:

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.

That's it. sly-mode will automatically come up in every .lisp file. To fire up SLY, connect to a Lisp and get a friendly REPL, use M-x sly.

Even if you already have SLIME installed, SLY will ask you and temporarily disable it for the Emacs session.

Obligatory animated gif section

Flex completion




Reverse i-search




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 a destination.


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 file.


Open an issue or a pull request, but at least have a quick look at the first part file for instructions on how to contribute.

You can’t perform that action at this time.