2011-12-26 49 views
4

当试图为MX当煤泥连接到一个Clojure的程序,我得到一个用户>提示符,但只要我开始键入连接中断的应用程序抛出运行斯旺克服务器:异常连接到斯旺克服务器

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) 

当我开始煤泥我得到:

Versions differ: 2010-07-21 (slime) vs. 20100404 (swank). Continue? (y or n) 

但这mismatc h should be OK

我在我的项目的依赖项中有swank-clojure 1.3.3,我也安装了leiningen插件。我从应用程序内部开始使用(swank.swank/start-server :host "localhost" :port 4005) swank-server。

我的环境:

  • 在Debian挤压GNU Emacs的23.2.1(稳定)AMD64
  • 煤泥在Debian安装库
  • 太阳的Java6的JRE
  • leiningen 1.6.2
  • swank-clojure 1.3.3
  • clojure 1.3.0

我还应该提到M-x clojure-jack-in工作正常,但我需要能够远程连接 。

版本不匹配是罪魁祸首吗?任何人使用类似的工作设置?

回答

2

你应该升级到自吹,Clojure的1.4.0和使用捆绑它煤泥的版本。在clojure模式中有一个'clojure-jack-in'命令,当你从clojure项目“插入”到swank时,它将处理粘液的加载。你看到的所有错误都将消失。 slime-disconnect [-all]是退出的正确方法。

0

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

另一个问题,但什么是“礼貌”的方式退出粘液?如果我用M-X煤泥断开,它会导致远程斯旺克服务器实例的异常:

java.lang.Exception: Error reading swank message