All Projects → ecraven → r7rs-swank

ecraven / r7rs-swank

Licence: GPL-3.0 License
Swank server for r7rs Schemes

Programming Languages

scheme
763 projects
shell
77523 projects

Swankish, a SLIME swank for Schemes

Schemes

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.

Chibi Scheme

(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))

Gerbil Scheme

(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))

Chez Scheme

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))

Gauche

(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))

Chicken Scheme

(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))

Kawa

(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))

[3/6]

  • [ ] proper information about the current Scheme
  • [X] redirect output to Slime
  • [X] inspector
  • [ ] debugger
  • [ ] tracing
  • [X] image support
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].