所以,我正在使用
sbcl --dynamic-space-size 1024 \
--noinform \
--load $HOME/quicklisp/setup.lisp \
--eval '(ql:quickload :myapp)' \
--eval "(sb-ext:save-lisp-and-die \"myapp\" :toplevel #'myapp::main :executable t :compression t)"
在本地生成myapp
,并将生成的二进制文件上传到服务器。
如此处所指出的,该函数myapp:main
执行以下操作(以及服务器的其他几个初始化操作):
(bt:make-thread (lambda () (swank:create-server :port swank-port ; consider it to be 8080
:dont-close t)))
我还在本地机器上进行端口转发:
ssh -L8080:127.0.0.1:8080 user@remote
我可以在我的本地机器上运行slime-connect
它,myapp
我从同一台机器连接到它。
但是,当我尝试slime-connect
在本地计算机上远程运行时,我收到错误消息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}>)
如果我选择
[*ABORT]
,emacs 会给我error in process filter: No catch for tag: slime-result-2-212, (error "Synchronous Lisp Evaluation aborted")
(在 minibuffer 中),没有 SLIME REPL。选择
[ABORT]
也给出了几乎相同的error in process filter: Synchronous Lisp Evaluation aborted
。
此外,如果我也尝试评估框架中的某些内容,我会得到error in process filter: Invalid message protocol
.
PS:我正在使用 AWS,以防有关安全组的详细信息是相关的。