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...
连接到localhost。
退出字符是 '^]'。
user=> (def x 3)
#'user/x


然后如果您切换到另一个终端:


$ telnet 0 5555
尝试连接 0.0.0.0...
连接到localhost。
退出字符是 '^]'。
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...
连接到localhost。
退出字符是 '^]'。
ClojureScript 1.10.160
cljs.user=> (def x 3)
#'cljs.user/x



第二个终端


$ telnet 0 5555
尝试连接 0.0.0.0...
连接到localhost。
退出字符是 '^]'。
ClojureScript 1.10.160
cljs.user=> x
WARNING: 在第1行使用未声明的Var cljs.user/x <cljs repl>
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报告)
...