我已经成功地使用线程启用的clisp构建了stumpwm。并且创建的stumpwm效果很好。但是,如果从~/.stumpwmrc启动,swank服务器将无法工作,如下所示:
(load "~/.vim/slime/start-swank.lisp")swank服务器确实已启动,因为netstat -na显示它正在端口4005上列出。但是telnet 127.0.0.1 4005会报告“连接已被同级关闭”。因此VIM中的slimv无法连接到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了!
发布于 2012-10-10 15:20:45
从clisp邮件列表中,我得到了一个建议:我们应该修改~/.vim/slime/swank-clisp,如下所示:
(defimplementation preferred-communication-style () :spawn)在运行(load "~/.vim/slime/start-swank.lisp")启动swank服务器后,slimv可以毫无错误地连接到swank服务器。
现在,slimv可以很好地与clisp一起工作(支持线程)。
致以问候!
发布于 2012-10-01 22:02:46
我不熟悉slimv,但似乎您所要做的就是用lisp启动一个服务器并连接到它。保持简单。因为我真的不想了解太多关于start-swank.lisp中发生的事情,你可能也不想,所以我建议你通过在你的.stumpwmrc中放置以下内容来启动一个swank服务器:
(ql:quickload "swank")
(swank:create-server :port #<choose a port number>)然后在该端口号上使用slimv的等价物M-x slime-connect进行连接。如果quicklisp中的swank版本与slimv不兼容,请确保您有一个与slimv兼容的版本,并对其执行REQUIRE。
试一试,如果它仍然不起作用,请查看swank和slimv的版本号并发布您的发现。
https://stackoverflow.com/questions/12650082
复制相似问题