SLIME не загружается из Emacs

Недавно я обновил SLIME из package-list-packages в Emacs. Однако, когда я пытаюсь запустить его с помощью M-x slime, я получаю следующее:

(progn (load "/home/koz/.emacs.d/elpa/slime-20140913.730/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.3081"))

* 
; loading #P"/home/koz/.emacs.d/elpa/slime-20140913.730/swank-loader.lisp"
;; 
;; Error while compiling /home/koz/.emacs.d/elpa/slime-20140913.730/swank/backend.lisp:
;;   Failed to find the TRUENAME of /home/koz/.emacs.d/elpa/slime-20140913.730/swank/backend.lisp:
;;     No such file or directory
;; Aborting.
;; * 

После этого у меня все еще есть REPL, но я думаю, что это очень странно, и я хотел бы знать, что происходит и почему.


person Koz Ross    schedule 16.09.2014    source источник
comment
Какой Лисп вы используете?   -  person echristopherson    schedule 17.09.2014
comment
@echristopherson: SBCL.   -  person Koz Ross    schedule 17.09.2014
comment
Я получаю точно такую ​​же ошибку, используя эту версию SLIME и SBCL 1.2.1. Возможно, поможет понижение версии SLIME.   -  person echristopherson    schedule 17.09.2014
comment
Ну ладно, думаю, тогда мне придется попробовать это. Вероятно, следует зарегистрировать ошибку или что-то еще вместе с сопровождающим SLIME.   -  person Koz Ross    schedule 17.09.2014


Ответы (2)


Это вызвано потерей подкаталога swank в папке слизи. Чтобы исправить это, вы можете просто скачать slime с github и скопировать папку swank в путь, по которому установлена ​​ваша слизь, для ваша ситуация /home/koz/.emacs.d/elpa/slime-20140913.730/, затем перезапустите свою слизь. он будет загружаться правильно.

person Tsingyi    schedule 19.09.2014

На канале Freenode #lisp я поговорил с одним человеком, который согласился с тем, что текущая версия SLIME в MELPA (20140913.730) не работает. В моей системе весь каталог $HOME/.emacs.d/elpa/slime-20140913.730/swank/ отсутствует, что, вероятно, является причиной того, что он не может скомпилировать найденные в нем файлы Lisp.

Другие участники канала предложили установить SLIME из Quicklisp; Я так и сделал, и все заработало, хотя версия SLIME немного старше (от 01.08.2014). Вот что я сделал (у меня еще не был установлен Quicklisp); настроить в соответствии с вашей системой и предпочтениями:

  1. Удалите SLIME из списка пакетов Emacs (выполните M-x list-packages, перейдите к строке SLIME, нажмите d, затем нажмите x).
  2. Посетите http://www.quicklisp.org/beta/ и загрузите файл в зеленом поле ( в моем случае он попал в ~/Downloads).
  3. Обновите SBCL до 1.2.2 или более поздней версии. Это наверное перебор.
  4. Запустите sbcl.
  5. Оцените (load "~/Downloads/quicklisp.lisp").
  6. Оценить (quicklisp-quickstart:install); опционально, если вы не хотите, чтобы он помещался в ~/quicklisp, добавьте :path "~/.quicklisp/" (заменив любой каталог, в который вы действительно хотите его установить).
  7. Установите SLIME и SWANK, оценив (ql:quickload "swank").
  8. Необязательно: оцените (ql:add-to-init-file), чтобы исправить ваш .sbclrc, чтобы всегда загружать Quicklisp в SBCL.
  9. Выйдите из SBCL с помощью Ctrl+D.
  10. Настройте файл конфигурации Emacs, как показано в файле readme SLIME. Для записи пути используйте "~/quicklisp/dists/quicklisp/software/slime-2.9" (с поправкой на любой путь, по которому вы установили Quicklisp).
  11. Перезапустите Emacs, и M-x slime должно заработать.
person echristopherson    schedule 18.09.2014
comment
Спасибо за помощь! Как раз искал точно такой же ответ. Я обнаружил, что необходимо удалить исходный пакет слизи (M-x list-packages, курсор над Slime, d, чтобы отметить, затем x, чтобы удалить) - person tomwalker; 18.09.2014
comment
@tomwalker Спасибо. Я отредактировал это в ответе. - person echristopherson; 18.09.2014