2012-09-29 19 views
1

我使用線程啓用的clisp成功建立了stumpwm。而創建的樹樁效果很好。但是,如果從〜/ .stumpwmrc開始爲下面的斯旺克服務器亙古不工作:關於stumpwm和swank(clisp)

(load "~/.vim/slime/start-swank.lisp") 

的斯旺克服務器確實開始作爲netstat -na表明它是lisening端口4005,但telnet 127.0.0.1 4005會報告「連接被關閉同行」。這樣VIM中的瘦身就無法連接到swank服務器。

如果我啓動另一個clisp REPL並運行(load "~/.vim/slime/start-swank.lisp"),那麼telnet和slimv都可以正常工作。

爲什麼在〜/ .stumpwmrc中不會有(load "~/.vim/slime/start-swank.lisp")

僅供參考,stumpwm日誌:

Starting swank on port 4005 
;; Loading file /home/***/.vim/slime/start-swank.lisp ... 
;; Loading file /home/***/.vim/slime/swank-loader.lisp ... 
;; Loaded file /home/***/.vim/slime/swank-loader.lisp 
;; Loading file /home/***/.slime/fasl/2012-03-06/clisp-2.49-unix-pc386/swank-backend.fas ... 
;; ... 
;; Loaded file /home/***/.slime/fasl/2012-03-06/clisp-2.49-unix-pc386/contrib/swank-mrepl.fas 
;; Swank started at port: 4005. 

似乎確定,但我不能用stumpwm了!

回答

0

從CLISP郵件列表,我有一個建議:我們應該修改〜/ vim的/淤泥/斯旺克-CLISP如下:

(defimplementation preferred-communication-style() :spawn) 

運行(load "~/.vim/slime/start-swank.lisp")開始自吹服務器後,slimv可以連接讓服務器沒有任何錯誤。

現在slimv在clisp上很有效(支持線程)。

問候!

1

我對slimv並不熟悉,但似乎您所要做的只是在lisp中啓動一個服務器並連接到它。把事情簡單化。正如我真的不希望找出太多的start-swank.lisp發生了什麼事情,你可能不要麼,我會建議您把這個在您的.stumpwmrc啓動斯旺克服務器:

(ql:quickload "swank") 
(swank:create-server :port #<choose a port number>) 

然後在該端口號上連接slimv的M-x slime-connect。如果quicklisp中的swank版本與slimv不兼容,請確保它有一個是,並且它是REQUIRE

試一試,如果仍然不起作用,請查看swank和slimv的版本號併發布您的發現。

+0

它仍然沒有工作。 –

+1

也可以通過telnet訪問Swank通信。命令'telnet 127.0.0.1 4005'應該連接到swank服務器,然後輸入'00002d(:emacs-rex(swank:connection-info)nil t 1)'應該使它響應實際的連接信息。如果這不起作用,那麼這是一個服務器問題。否則,如果swank服務器響應並立即關閉連接,則應該將':dont-close t'傳遞給'swank:create-server'以保持連接處於打開狀態。 –