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

欢迎!请参阅关于 页面以获取更多有关此如何工作的信息。

0
ClojureScript

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

虽然这并不理想,但不会引起运行时错误。而没有调用它并尝试打印则会抛出异常,这可能会破坏您的应用程序。

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

因此,对于没有赢的情况(即“遗忘”的 {{prn}} 可能会破坏生产中的应用程序或“或许”通过保留所有与打印相关的东西而导致文件大小膨胀),我们会陷入这种处境。

我认为没有打印函数的条件从不抛出,也许只是尝试使用 console.log 写一个警告。或者完全删除 {{prn}}。

4 个答案

0

评论由:dnolen 发布

将旧行为仅移动到 string-print

0

评论由:mfikes 发布

附带的 CLJS-2002.patch 将 throw 移到 {{string-print}},并用 {{nil}} 作为两个变量的初始化解决了 CLJS-2231。但这不解决提出的条款:在代码中留下意外的 {{prn}} 将导致调用 {{string-print}} 并抛出。

0

评论由:dnolen 发布

部分解决此问题的链接:https://github.com/clojure/clojurescript/commit/797e247fbef676544060a57da995f058db061f37。保持此问题开放并降低优先级,我们应该重新审视。

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