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

欢迎!请查阅关于页面,了解更多有关此功能的信息。

0
编译器

当前gen-class仅在AOT编译时工作,而在即时加载时只评估为nil。
这种行为的原因是历史性的,并且在CLJ-979在1.7中发布后已不再相关,该版本解决了动态类加载器定义问题,并对gen-interface进行了相同的更改。没有对gen-class也这样做的原因是因为我忘记了这一点。

此补丁修复了这一不一致性

补丁:0001-CLJ-2343-define-and-load-class-while-JITing-gen-clas.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

现在有了(链接:[Deps and CLI](https://clojure.org/guides/deps_and_cli#aot_compilation))文本,此更改将使使用gen-class的库的打包变得更加简单,因为不需要打包类文件(如果理解正确的话)。

0

评论者:viesti

友好地提醒一下,这个更改能否有所帮助? :)

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