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

欢迎!请查看 关于 页面以了解有关如何使用本网站的更多信息。

+4
Clojure

我经常发现自己需要将 :verbose 添加到 (ns) 的 (require) 或 (use) 子句中,以便调试问题(尤其是宏或不良的命名空间声明)。如果能定义一个 JVM 系统属性(比如 -Dclojure.load-verbosely=true),将 loading-verbosely 默认设置为 true,这对于 REPL 会话或作为构建的一部分将非常酷。

有时仅为了看到在启动应用程序或运行一组测试时的命名空间加载进度,我就像看看命名空间是如何加载的。

我希望能实现或修补这个功能。
如果我能挑剔的话,我希望能看到它对 `set!` 也作出响应。我不确定是什么让 `*warn-on-reflection*` 在这方面与众不同,但我觉得这很相似。

3 个答案

0

评论者:tsdh

此补丁实现了所建议的功能。

新的系统属性被命名为 {{clojure.core.loading-verbosely}},与现有的 {{clojure.compile.warn-on-reflection}} 相似。

0
参考资料:https://clojure.atlassian.net/browse/CLJ-1112(由 hlewisship 报告)
0

这确实非常有帮助,尤其是在问题只在生产构建(如 uberjar)中显现的情况下。

...