2011-12-26 46 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