SLIME和SWANK入门:Lisp连接意外关闭:远程对等连接断开连接

时间:2008-12-16 21:15:51

标签: emacs common-lisp slime sbcl swank

我试图使用slime-connect函数来访问使用sbcl的远程服务器。我按照Marco Baringer,的slime.mov电影中的所有步骤进行了操作,但是在为slime创建ssh连接时我遇到了困难。这是在已经启动远程计算机上的swank服务器之后。我是这样做的:

ssh -L 4005:127.0.0.1:4005 user@server.com

我在本地SLIME上遇到了这个错误:

Lisp连接意外关闭:远程对等方断开连接

...并在远程服务器上:

频道3:开启失败:连接失败:拒绝连接

可能出现什么问题?

4 个答案:

答案 0 :(得分:4)

您是否检查过您使用的SLIME和SWANK版本是否相同?当我使用SLIME会话的两半不匹配版本时,我发生了奇怪的事情。

答案 1 :(得分:2)

我不知道,但您可以尝试在本地连接到远程计算机上的swank。

ssh user@server.com
telnet 127.0.0.1:4005

可能在那里你会发现错误。您也可以尝试使用localhost:4005而不是127.0.0.1,并检查localhost接口是否已正确配置。

答案 2 :(得分:2)

最容易错过的是swank服务器侦听的tcp端口。我最近没有做过很多远程开发,但我记得我第一次做的时候,我在理解如何告诉swank要绑定哪个端口或者找出它选择哪个端口时遇到了一些麻烦。

您是否介意扩展实际启动swank服务器的方式?

答案 3 :(得分:0)

对我来说,问题在于Emacs的slime(v2.22)函数以附加参数from-emacs t开始,而swank-loader.lisp不支持(v2.22)。

对我有用的是编辑slime-v2.22/swank-loader.lisp:init以接受一个新的参数from-emacs,该参数未在函数的主体中使用,因为我不知道该参数应采用哪种方式治疗。但是slime现在可以正常工作了。

在启动slime时,我还会收到有关不兼容版本的警告:粘液v2.23和swank v2.22,但是当我使用list-packages并仅通过文件夹名称进行检查时,我有了{{ 1}}和slime均为v2.22版本。现在对我来说这是一个困惑。

如果有人知道有关它的详细信息,请发表评论。