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

欢迎!有关如何使用本站,请参阅 关于 页面以获取更多信息。

0
ClojureScript

目前,即使您从不打印,调用 (enable-console-print!) 也会在 :advanced 模式下保留大量代码。

虽然这并不理想,但不会导致运行时错误。不调用它并尝试打印将会抛出异常,这可能会损坏您的应用程序。

没有为评估环境设置 *print-fn* 函数

因此,对于 :advanced 构建,我们陷入了一个没有胜算的局面,一个“忘记”的 {{prn}} 可能会在生产中破坏您的应用程序或“也许”通过保留所有与打印相关的内容而增大文件大小。

我认为在无 *print-fn* 的情况下不应该抛出异常,也许可以尝试使用 console.log 输出警告。或者,彻底删除 {{prn}}。

4 个答案

0

评论者:dnolen

让我们将旧行为移动到 string-print 中。

0

评论者:mfikes

附加的 CLJS-2002.patch 将抛出移动到 {{string-print}} 并使用 {{nil}} 作为两个变量的初始化,解决了 CLJS-2231 问题。但并未按照问题描述解决:在代码中留下意外的 {{prn}} 将导致调用 {{string-print}} 并抛出异常。

0

评论者:dnolen

https://github.com/clojure/clojurescript/commit/797e247fbef676544060a57da995f058db061f37 部分解决了该问题。我们会继续保留这个问题并降低其优先级,并将重新审视。

0
参考:https://clojure.atlassian.net/browse/CLJS-2002(由thheller报告)
...