SLIME无法从Emacs加载

时间:2014-09-16 00:16:01

标签: emacs common-lisp sbcl slime

我最近在Emacs中更新了package-list-packages的SLIME。但是,当我尝试使用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,但我认为这很奇怪,我想知道发生了什么以及为什么。

2 个答案:

答案 0 :(得分:5)

Freenode's #lisp channel,我与一位同意MELPA(20140913.730)中当前版本的SLIME被破坏的人交谈过。在我的系统上,缺少整个$ HOME / .emacs.d / elpa / slime-20140913.730 / swank /目录,这可能是它无法编译其中的Lisp文件的原因。

该渠道的其他成员建议从Quicklisp安装SLIME;我做到了这一点并且有效,尽管SLIME版本有点旧(日期为2014-08-01)。这是我做的(我没有安装Quicklisp);调整以匹配您的系统和首选项:

  1. 从Emacs的软件包列表中卸载SLIME(执行M-x list-packages,转到SLIME行,按 d ,然后按 x )。
  2. 访问http://www.quicklisp.org/beta/并在绿色框中下载文件(在我的情况下,它进入〜/下载)。
  3. 将SBCL升级至1.2.2或更高版本。这可能有点过头了。
  4. 启动sbcl
  5. 评估(load "~/Downloads/quicklisp.lisp")
  6. 评估(quicklisp-quickstart:install);可选地,如果您不希望它进入〜/ quicklisp,请添加:path "~/.quicklisp/"(替换您实际想要安装的任何目录)。
  7. 通过评估(ql:quickload "swank")
  8. 来安装SLIME和SWANK
  9. 可选:评估(ql:add-to-init-file)以修补.sbclrc以始终在SBCL中加载Quicklisp。
  10. 使用 Ctrl + D 退出SBCL。
  11. 调整您的Emacs配置文件,如SLIME's readme所示。对于路径条目,请使用"~/quicklisp/dists/quicklisp/software/slime-2.9"(根据您安装Quicklisp的路径进行调整)。
  12. 重新启动Emacs,M-x slime应该可以正常工作。

答案 1 :(得分:4)

这是因为丢失了slime文件夹中的swank子目录。要修复它,您可以从github简单地下载slime并将文件夹swank复制到您的slime安装路径,因为您的情况是/home/koz/.emacs.d/elpa/slime-20140913.730/然后重新启动您的粘液。它将正确加载。