10

我在archlinux中使用emacs24。如果我使用来自marmalade.org的slime包,那么当我使用Mx slime时,错误是:

debugger invoked on a SB-INT:SIMPLE-FILE-ERROR in thread
#<THREAD "initial thread" RUNNING {AB007A9}>:
  Couldn't load
  "/home/sinners/.emacs.d/elpa/slime-20100404.1/swank-loader.lisp": file does
  not exist.

Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.

但是如果我使用来自官方站点的 slime-cvs 包,错误是:

Debugger entered: (("Error in timer" slime-attempt-connection (#<process inferior-lisp> nil 2) (void-variable --cl-accu--)))
  #[257 "\302\303\304\300\301F\"\207" [slime-attempt-connection (#<process inferior-lisp> nil 2) debug nil "Error in timer"] 7 "\n\n(fn DATA)"]((void-variable --cl-accu--))
  funcall(#[257 "\302\303\304\300\301F\"\207" [slime-attempt-connection (#<process inferior-lisp> nil 2) debug nil "Error in timer"] 7 "\n\n(fn DATA)"] (void-variable --cl-accu--))
  slime-timer-call(slime-attempt-connection #<process inferior-lisp> nil 2)
  apply(slime-timer-call (slime-attempt-connection #<process inferior-lisp> nil 2))
  byte-code("r\301\302H\303H\"\210)\301\207" [timer apply 5 6] 4)
  timer-event-handler([t 20271 59188 161536 0.3 slime-timer-call (slime-attempt-connection #<process inferior-lisp> nil 2) nil])

任何人都可以帮助我吗?

4

3 回答 3

10

--cl-accu--在存在词法作用域的情况下,有关 emacs cl 包损坏的可变符号问题。尝试进入slime.el你的 slime 发行版, 在文件末尾;; lexical-binding: t的部分中找到字符串并将其更改为. 如果您有旧文件,请删除旧文件。;; Local Variables:;; lexical-binding: nilslime.elc

于 2012-02-06T17:52:35.307 回答
4

我遇到了完全相同的问题,通过删除之前使用 byte-recompile-directory 编译的 slime.elc 文件解决了这个问题。我没有尝试再次编译它。

于 2013-02-23T17:29:43.767 回答
2

我不确定,但这个问题可能是由于SLIMESWANK. 但是,您应该只用于pacman安装 lisp 实现(我认为SBCL是 Linux 上最流行的实现),然后用于quicklisp安装其他所有内容。

请参阅博客文章以了解如何安装SWANKSLIME使用quicklisp.

于 2012-02-06T15:45:00.860 回答