4

我正在尝试从命令行使用 Swank 服务器(没有特定的生产目的,只是想通过一些 hacky 想法来理解事物以备后用),我无法弄清楚我可以从telnet会话中输入什么来获取任何可用的答案;例如,我该如何评估(+ 1 1)

上一个问题告诉我们:

如果您熟悉 swank 协议,确实可以与 swank 服务器通信,该协议似乎没有充分记录(参见例如:https ://github.com/astine/swank-client/blob/master/swank-description .markdown)。但是,这会通过网络公开 TCP 套接字,这可能是不安全的。有一次我也尝试过,但我对 IPC 的速度并不满意。

该链接实际上给出了一些提示,但不幸的是没有示例。我无法得到任何结果。

这是我尝试过的;在单独启动服务器后

(swank:create-server :port 4005  :dont-close t :style NIL)

我试过这样的事情:

~ $ telnet localhost:4005
00001e(swank:listener-eval (+ 1 2))

并收到以下错误消息:

" "Reader error in file #<string-input stream from \"(swan...\" 0x6045ce0640>, position 20:
Cannot find the external symbol LISTENER-EVAL in #<\"SWANK\" package>.")Connection closed by foreign host

在那种情况下,我应该输入什么字符串?

4

1 回答 1

3

我设法使这项工作:

00003e(:emacs-rex (swank:interactive-eval "(+ 1 2)") "cl-user" t 8)

注意第一个关键字是如何存在的:emacs-rex,以及要评估的表单是如何在字符串中的。8 在这里只是一个任意值。回复首先以 开头00A1C8(:indentation-update ...),然后是:

000031(:return (:ok "=> 3 (2 bits, #x3, #o3, #b11)") 8)
于 2019-07-30T16:32:20.863 回答