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 将 throw 移动到 {{string-print}},并使用 {{nil}} 作为两个变量的初始值以解决 CLJS-2231。但它并没有解决已写的票据:将意外的 {{prn}} 留在代码中会导致调用 {{string-print}} 并抛出。

0

评论者:dnolen

部分解决了此问题。[https://github.com/clojure/clojurescript/commit/797e247fbef676544060a57da995f058db061f37](https://github.com/clojure/clojurescript/commit/797e247fbef676544060a57da995f058db061f37) 保持开放状态并降低优先级,我们应重新审视。

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