Support for various Schemes varies in quality. Not everything works on every Scheme.
See each Schemes entry for how to configure it in your Emacs configuration.
(defun chibi-scheme-start-swank (file encoding)
(format "%S\n\n" `(start-swank ,file)))
(setq slime-lisp-implementations
(cons '(chibi-scheme ("chibi-scheme" "-A/path/to/r7rs-swank" "-m" "(chibi-swank)")
:init chibi-scheme-start-swank)
slime-lisp-implementations))
(defun gerbil-scheme-start-swank (file encoding)
(format "%S\n\n" `(begin (import (ecraven gerbil-swank)) (start-swank ,file))))
(setq slime-lisp-implementations
(cons '(gerbil-scheme ("gxi" "-:d-" "--lang" "r7rs")
:init gerbil-scheme-start-swank
:env "GERBIL_LOADPATH=/path/to/r7rs-swank/")
slime-lisp-implementations))
You’ll also need https://github.com/ecraven/chez-scheme-libraries.
(defun chez-scheme-start-swank (file encoding)
(format "%S\n\n" `(begin (import (chez-swank)) (start-swank ,file))))
(setq slime-lisp-implementations
(cons '(chez-scheme ("chez-scheme" "--libdirs" "/path/to/r7rs-swank:/path/to/chez/libs")
:init chez-scheme-start-swank)
slime-lisp-implementations))
(defun gauche-scheme-start-swank (file encoding)
(format "%S\n\n" `(begin (import (gauche-swank)) (start-swank ,file))))
(setq slime-lisp-implementations
(cons '(gauche-scheme ("gosh" "-r7" "-A/path/to/r7rs-swank" "-l" "gauche-swank.sld")
:init gauche-scheme-start-swank
:env "GAUCHE_KEYWORD_IS_SYMBOL=T")
slime-lisp-implementations))
(defun guile-scheme-start-swank (file encoding)
(format "%S\n\n" `(begin (import (guile-swank)) (start-swank ,file))))
(setq slime-lisp-implementations
(cons '(guile-scheme ("guile" "-l" "/path/to/guile-swank.scm")
:init guile-scheme-start-swank
:directory "/path/to/r7rs-swank")
slime-lisp-implementations))
(defun chicken-scheme-start-swank (file encoding)
(format "%S\n\n" `(begin (load "chicken-swank") (start-swank ,file))))
(setq slime-lisp-implementations
(cons '(chicken-scheme ("csi" "-R" "r7rs")
:init chicken-scheme-start-swank
:directory "/path/to/r7rs-swank/")
slime-lisp-implementations))
(defun kawa-start-swank (file encoding)
(format "%S\n\n" `(begin (import (kawa-swank)) (start-swank ,file))))
(setq slime-lisp-implementations
(cons '(kawa ("kawa" "-f" "kawa-swank.sld" "-e" "(eval (read) (interaction-environment))")
:init kawa-start-swank
:directory "/path/to/r7rs-swank/")
slime-lisp-implementations))
- [ ] proper information about the current Scheme
- [X] redirect output to Slime
- [X] inspector
- [ ] debugger
- [ ] tracing
- [X] image support