1

我已经使用启用线程的 clisp 成功构建了 stumpwm。并且创建的 stumpwm 效果很好。但是,如果从 ~/.stumpwmrc 启动,swank 服务器将无法工作,如下所示:

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

swank 服务器确实已启动,netstat -na表明它正在端口 4005 上侦听。但telnet 127.0.0.1 4005会报告“连接已被对等方关闭”。使vim中的slimv无法连接到swank server。

如果我启动另一个 clisp REPL 并运行(load "~/.vim/slime/start-swank.lisp"),那么 telnet 和 slimv 都可以正常工作。

为什么(load "~/.vim/slime/start-swank.lisp")在 ~/.stumpwmrc 中不起作用?

仅供参考,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 了!

4

2 回答 2

1

我对 slimv 不熟悉,但似乎您要做的就是在 lisp 中启动一个服务器并连接到它。把事情简单化。因为我真的不想了解太多关于 .stumpwmrc 中发生的事情start-swank.lisp,而您可能也不想,所以我建议您通过将其放入 .stumpwmrc 中来启动一个 swank 服务器:

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

然后使用 slimv 的等效端口号连接到该端口号M-x slime-connect。如果 quicklisp 中的 swank 版本与 slimv 不兼容,请确保您有一个兼容的版本REQUIRE

试试看,如果还是不行,请查看 swank 和 slimv 的版本号并发布您的发现。

于 2012-10-01T14:02:45.873 回答
0

从 clisp 邮件列表中,我得到了一个建议:我们应该修改 ~/.vim/slime/swank-clisp 如下:

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

运行(load "~/.vim/slime/start-swank.lisp")启动swank server后,slimv可以正常连接swank server。

现在 slimv 与 clisp(with thread support) 配合得很好。

问候!

于 2012-10-10T07:20:45.290 回答