2024 Clojure现状调查!中分享您的想法。

欢迎!关于其工作方式的更多信息,请参见关于页面。

0 投票
ClojureScript
Clojure Socket REPL共享评估环境。

例如,启动方式如下:


java -Dclojure.server.repl="{:port 5555 :accept clojure.core.server/repl}" -cp cljs.jar clojure.main


然后在第一个终端


$ telnet 0 5555
尝试 0.0.0.0...
连接到本地主机。
退出字符为 '^]'。
user=> (def x 3)
#'user/x


然后如果转到另一个终端


$ telnet 0 5555
尝试 0.0.0.0...
连接到本地主机。
退出字符为 '^]'。
user=> x
3


并在启动socket REPL的原终端


user=> x
3



以下是我对Node Socket REPL所得到的结果(不清楚我是不是正确启动了它)


java -Dclojure.server.repl="{:port 5555 :accept cljs.server.node/repl}" -cp cljs.jar clojure.main


第一个终端


$ telnet 0 5555
尝试 0.0.0.0...
连接到本地主机。
退出字符为 '^]'。
ClojureScript 1.10.160
cljs.user=> (def x 3)
#'cljs.user/x



第二个终端


$ telnet 0 5555
尝试 0.0.0.0...
连接到本地主机。
退出字符为 '^]'。
ClojureScript 1.10.160
cljs.user=> x
警告:在 < 第1行,使用未声明的变量 cljs.user/x
nil

2 个答案

0 投票

评论由:dnolen 提出

为了澄清,ClojureScript Socket REPL必须逐个设置的方式来工作。目前只有{{cljs.server.browser}}是这种方式。其他需要调整。这项工作的主要目的是使{{-setup}} − {{-teardown}}具有幂等性和线程安全性。其他部分是确保输出能够正确导向。浏览器REPL目前显示了此错误https://dev.clojure.org/jira/browse/CLJS-2643

0 投票
参考: https://clojure.atlassian.net/browse/CLJS-2655(由mfikes报告)
...