Lisp 连接到远程swank:can';t定位模块swank io包::swank跟踪对话框
所以,我使用Lisp 连接到远程swank:can';t定位模块swank io包::swank跟踪对话框,lisp,common-lisp,slime,swank,Lisp,Common Lisp,Slime,Swank,所以,我使用 sbcl——动态空间大小1024\ --黑信息\ --加载$HOME/quicklisp/setup.lisp\ --eval'(ql:quickload:myapp)'\ --eval“(sb ext:save lisp and die\'myapp\”:顶级#'myapp::main:executable t:compression t)” 在本地生成myapp,并将生成的二进制文件上载到服务器 函数myapp:main执行以下操作(以及服务器的其他一些初始化操作): (BT
sbcl——动态空间大小1024\
--黑信息\
--加载$HOME/quicklisp/setup.lisp\
--eval'(ql:quickload:myapp)'\
--eval“(sb ext:save lisp and die\'myapp\”:顶级#'myapp::main:executable t:compression t)”
在本地生成myapp
,并将生成的二进制文件上载到服务器
函数myapp:main
执行以下操作(以及服务器的其他一些初始化操作):
<代码>(BT:制作线程(lambda)(SWANK:创建服务器:端口SWANK端口;考虑它是8080)
:不要关闭(t)
我还在本地计算机上进行端口转发:
ssh-L8080:127.0.0.1:8080user@remote
当本地机器上运行myapp
时,我可以slime连接到它,我可以从同一台机器连接到它
但是,当我在本地计算机上尝试将myapp
运行到localhost
,8080
时,在远程计算机上运行myapp
时,我得到的错误是
Can't locate module: SWANK-IO-PACKAGE::SWANK-TRACE-DIALOG
[Condition of type SIMPLE-ERROR]
Restarts:
0: [*ABORT] Return to SLIME's top level.
1: [ABORT] abort thread (#<THREAD "worker" RUNNING {1005B6EB73}>)
找不到模块:SWANK-IO-PACKAGE::SWANK-TRACE-DIALOG
[简单错误类型的条件]
重新启动:
0:[*中止]返回SLIME的顶层。
1:[中止]中止线程(#)
如果我选择[*ABORT]
,emacs会在进程筛选器中给我错误:标记slime-result-2-212没有捕获,(错误“Synchronous Lisp Evaluation aborted”)
(在微缓冲区中),没有slime REPL
选择[ABORT]
也会在进程筛选器中出现几乎相同的错误:同步Lisp求值已中止
另外,如果我也尝试计算帧中的某个内容,我会在进程筛选器中得到错误:无效消息协议
注:我正在使用AWS,以防安全组的详细信息相关。myapp系统是否依赖于swank?如果您的版本不同,在一台机器上编译并在另一台机器上执行可能会有风险。您能在服务器上运行“quickload”吗?很抱歉没有提及。是的,:swank
包含在asd
文件中。是的,版本也一样。虽然从技术上讲,我可以在服务器上设置一个环境,但我想尝试不用它。否,尚未在远程上设置quickload(或任何lisp)。此外,还找到了一个解决方案:在转储core之前运行(swank loader:init:load contribs t)
。我不知道这样做是否一直如此。在紧急情况以外的情况下,是否有粘液连接的使用案例?(这将是我第一次在服务器上安装东西,因此我缺乏经验来评论这个工具的功能有多强大/有用。)