2024 年 Clojure 调查!(调查)中分享您的想法。

欢迎!请查看关于页面获取更多关于如何使用本站的详细信息。

0
tools.namespace

以下是如何在REPL中重现的步骤
- (c.t.n.r/refresh) 成功
- 修改类路径中任何文件
- (c.t.n.r/refresh) 失败,找不到某些命名空间(不总是相同的命名空间)

这种情况总是发生在特定的项目中,但相对类似的复杂性的其他(已知)项目中没有。与该问题相关联的项目中,AOT编译/执行块和 require(不使用 (c.t.n.r/refresh))都正常工作。对于 (c.t.n.r/refresh),在 clojure.tools.namespace.reload/track-reload-one 中以 load-file 替代 require :reload 工作。除了 require :reload,尚不清楚此错误的根本原因,也不知道为什么 load-file 代替它工作,但是一个简单的补丁,没有已知的副作用。现在我在REPL中每次都热交换代码。

可以在 https://github.com/alexandergunnarson/tools.namespace 找到一个分支,我可以在其中提交一个补丁(如果希望的话)。

1 个答案

0
参考: https://clojure.atlassian.net/browse/TNS-50(由 alex+import 报告)
...