连接swank服务器时出现异常。

4
尝试使用 M-x slime-connect 连接运行在 Clojure 应用程序中的 swank 服务器时,我会得到一个 user> 提示符,但是一旦我开始输入,连接就会中断,因为应用程序会抛出以下错误:
exception in read loop
java.lang.RuntimeException: Invalid token: swank::

在技术层面更深处,我看到:
unreadable message: (:emacs-rex (swank:autodoc (quote ("ns" "" swank::%cursor-marker%)) :print-right-margin 80) "user" :repl-thread 4)

当我启动slime时,会出现以下信息:
Versions differ: 2010-07-21 (slime) vs. 20100404 (swank). Continue? (y or n)   

但是这种不匹配应该没问题
我在项目的依赖项中有swank-clojure 1.3.3,并且我也安装了leiningen插件。我从应用程序内部使用(swank.swank/start-server :host "localhost" :port 4005)启动swank-server。
我的环境:
  • GNU Emacs 23.2.1在debian squeeze(stable)amd64上
  • 通过debian存储库安装的slime
  • sun-java6-jre
  • leiningen 1.6.2
  • swank-clojure 1.3.3
  • clojure 1.3.0
我还应该提到M-x clojure-jack-in可以正常工作,但我需要能够远程连接。
版本不匹配可能是罪魁祸首吗?是否有人使用类似的工作设置?
2个回答

2

您应该升级到swank-clojure 1.4.0并使用随附的slime版本。 在clojure-mode中有一个'clojure-jack-in'命令,它将在从clojure项目到swank时处理slime的加载。 您看到的所有错误都将消失。 使用slime-disconnect[-all]是正确退出的方法。


0

我卸载了Debian版本的Slime,并通过ELPA安装了Slime-repl。现在一切都正常,尽管安装似乎失败了,出现了编译错误:lime-repl.el:122:39:Error: No setf-method known for slime-connection-output-buffer

还有一个问题:退出Slime的“礼貌”方式是什么?如果我使用M-x slime-disconnect,它会在远程Swank服务器实例中引发异常:

java.lang.Exception: Error reading swank message

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接