4

当尝试 Mx 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)

当我开始粘液时,我得到:

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

但是这种不匹配应该没问题

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

我的环境:

  • GNU Emacs 23.2.1 在 debian 挤压(稳定)amd64
  • 通过 debian 存储库安装的 slime
  • sun-java6-jre
  • 莱宁根 1.6.2
  • swank-clojure 1.3.3
  • clojure 1.3.0

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

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

4

2 回答 2

2

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

于 2012-01-28T17:16:39.843 回答
0

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

另一个问题是:什么是退出粘液的“礼貌”方式?如果我使用 Mx slime-disconnect,它会在远程 swank-server 实例中导致异常:

java.lang.Exception: Error reading swank message
于 2011-12-26T17:21:35.933 回答