untitled RSS

undefined

Archive

Jul
5th
Sat
permalink

Debian, Emacs (from CVS) and SLIME

Дозрел я до того, что собрался попробовать Common Lisp. Чему нас учит хорошая книга? Тому, что SLIME это хорошо! А так как Emacs я уже поставил (версия 23.0.60.1 из CVS) я уже соборал, то пришло время SBCL и самого SLIME. Я пологал, что “aptitude install slime” это всё что нужно, чтобы “M-x slime” заработало, однако не тут то было! Установленный при этом SBCL не мог загрузить Swank (я вообще не знал что таковой есть и нужен) а без Swank не работал и SLIME.

Гугление ничего спасительного не давало.. Но помог мануал к SLIME, а точнее “Совет для ползователей SBCL” (код изменён мною)

shell$ sbcl
* (mapc 'require '(sb-bsd-sockets sb-posix sb-introspect sb-cltl2 asdf))
* (load "/usr/share/common-lisp/source/slime/swank-loader.lisp")
* (save-lisp-and-die "sbcl.core-for-slime")

И в .emacs

 (setq slime-lisp-implementations
    '((sbcl ("sbcl" "--core" "sbcl.core-for-slime"))))

Но этого оказалось мало! SBCL радовал сообщением что мол “package “SWANK” not found”. Ясное дело, я что-то делаю не так, но выход был найден при помощи:

   shell$ sbcl --core sbcl.core-for-slime
   * (require 'swank)
   * (save-lisp-and-die "sbcl.core-for-swank")

И соотетсвенно:

(setq slime-lisp-implementations
 '((sbcl ("sbcl" "--core" "sbcl.core-for-swank")
          :init (lambda (port-file _)
          (format "(swank:start-server %S)\n" port-file)))))

решение не сильно красивое и файл sbcl.core-for-swank довольно увесистый, но, SLIME REPL я получил. Уже неплохо.