Skip to content

joaotavora/sly-stepper

Repository files navigation

A portable Common Lisp stepper interface

sly-stepper is contrib for SLY, a Common Lisp IDE.

It's the program that accompanies the paper accepted to the European Lisp Symposium 2020 Zurich.

Need a decent README, but here's how to get started.

First, install it as described below.

Once that's done, and your SLY is connected, you can M-x sly-stepper on any old function to instrument it for stepping.

screenshot

Intrumenting means setting stickers on every evaluated form of the function. Read about SLY sticker usage or read the paper on various ways in which you can step through a function.

For convenience, the M-x sly-stepper is also bound to C-c C-s P. If you make a mistake and set stickers you didn't mean to, you can clear stickers for the whole defun do with C-u C-c C-s C-s, as usual.

Normal install

Since this is an external contrib with both Elisp and Lisp parts, merely loading the Elisp into Emacs will have little effect. The contrib has to be registered in SLY's sly-contribs variable for SLY to take care of loading the Lisp side on demand.

For convenience, the sly-stepper-autoloads file takes care of this automatically. This means the following lines in your ~/.emacs or ~/.emacs.d/init/el init file should be enough:

;;; regular SLY setup
(setq inferior-lisp-program "/path/to/your/preferred/lisp")
(add-to-list 'load-path "/path/to/sly")
(require 'sly-autoloads)

(add-to-list 'load-path "/path/to/sly-stepper")
(require 'sly-stepper-autoloads)

In case you already have SLY loaded and running, you might have to M-x sly-setup and M-x sly-enable-contrib to enable it.

MELPA install

MELPA installs are not available right now. If you're really interested in making this a MELPA package, it's not hard, but needs a bit of work. Let me know in the issue tracker.