This should work with any Slime version that plays together with ECL.
Tested with ECL 12.7.1 (Windows: ECL 12.12.1)
~/.emacs file:
(add-to-list 'load-path "~/slime/") ; slime path (require 'slime) (slime-setup '(slime-fancy))
~/.swank.lisp file (or copy file eql/slime/.swank.lisp in your home directory):
(setf swank:*globally-redirect-io* t) ; show print output in Emacs
eql/slime/eql-start-swank.lisp in your slime/ directory
-slime can be omitted if the file name contains "start-swank"), optionally passing a Lisp file:
eql <path-to-slime>/eql-start-swank.lisp [file.lisp]
Meta-X slime-connect (please note:
use slime-connect) and hit Return 2 times
(confirming the default values).
Please note: if :dont-close is set to T
in eql-start-swank.lisp, quitting/restarting Emacs will not
affect a running EQL program, that is: if you quit/restart Emacs, you can
connect to the same swank/EQL you left when quitting Emacs.
If you experience slow loading of files (compared to direct loading), use qload instead of load, which will reduce all thread switches during the load process to a single one.
Another case where you need to use qload is when you use Qt classes which use threads internally (see e.g. examples/X-extras/move-blocks.lisp).
For help see the qapropos and qgui functions.
To kill the swank process (Slime), use function qquit / qq (since quitting Emacs will not kill it).
All EQL functions are wrapped in qrun* (see eql/slime/thread-safe.lisp), so it's safe to call them either directly from the REPL or using 'eval region' (or from any other ECL thread).
This Slime mode is both convenient and simple to use, but conses a little more for every EQL function call.
If you absolutely want direct EQL function calls, please see the less convenient Slime REPL Hook mode.