2024 年 Clojure 调查问卷! 分享您的看法。

欢迎!请参阅 关于 页面以了解更多关于如何使用本站的信息。

+2
REPL
当传递给 {{clojure.core.server/remote-prepl}} 的 in-reader 达到流结束处时,会尝试关闭套接字读者的连接。然而,由于(主要)套接字仍在读取,因此这会锁定主线程。

{code:none}
$ clj -J-Dclojure.server.jvm="{:port 5555 :accept clojure.core.server/io-prepl}" -r
Clojure 1.10.0
user=> (clojure.core.server/remote-prepl "127.0.0.1" 5555 *in* prn)
;; 如预期
1
{:tag :ret, :val 1, :ns "user", :ms 0, :form "1"}
^D ;; 挂起 - ^C 必须退出进程


在这种情况下,我所期望的情况是,当按下 {{^D}} 时,初始 repl 会重新出现(类似于 {{(clojure.core.server/io-prepl)}} 的行为)。

什么有效
{code:none}
$ clj -J-Dclojure.server.jvm="{:port 5555 :accept clojure.core.server/io-prepl}" -r
Clojure 1.10.0
user=> (clojure.core.server/remote-prepl "127.0.0.1" 5555 *in* prn)
:repl/quit
^D
nil
user=> _


但是,从代码中可以看出,这似乎不是终止 prepl 的预期方式。

1 个答案

0
参考: https://clojure.atlassian.net/browse/CLJ-2509(由 alex+import 报告)
...