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

欢迎!请查看关于页面以获取更多关于此的工作方式的信息。

0
编译器

当前gen-class只能在AOT编译时工作,但在JIT加载时仅评估为nil。
这种行为的原因是历史的,由于CLJ-979在1.7版本中落地,该版本解决了动态类加载器定义问题,同时为gen-interface也做了同样的改动。没有对此也进行改动的原因是忘记了这一点。

此补丁修复了这个不一致。

补丁: 0001-CLJ-2343-在JIT编译时定义和加载类-gen-class.patch

4 个答案

0

评论由:kari

只是询问我在Clojure Slack中提出的问题是否与这个JIRA问题相关。
如果我将gen-class(例如mygenclass)作为我的Clojure项目的一部分,并且我想使用命令刷新Clojure REPL中的所有命名空间
(do (require '(link: clojure.tools.namespace.repl :refer [refresh)]) (refresh))
...然后我会得到一个错误:“在加载‘mygenclass’后找不到命名空间‘mygenclass’。”

0

评论由:viesti

现在有了关于(link: https://clojure.org/guides/deps_and_cli#aot_compilation)的文本:Deps and CLI,此更改将更有利于打包使用gen-class的库,因为无需打包类文件(如果理解正确)。

0

评论由:viesti

只是轻轻提醒一下,是否有任何可以因这次改动而得到帮助的地方? :)

0
参考: https://clojure.atlassian.net/browse/CLJ-2343(由bronsa报告)
...