欢迎!请参阅关于页面,了解有关此信息的工作方式。
当前gen-class仅在AOT编译时有效,但在JIT加载期间仅评估为nil。这种行为的原因是历史性的,并且自从CLJ-979在1.7中推出后,就不再相关了,它解决了动态类加载器定义问题,并也对gen-interface做了相同的变化。这个原因之所以没有被gen-class也做,是因为我忘记了它。
此补丁修复了这个不连贯的问题
补丁: 0001-CLJ-2343-define-and-load-class-while-JITing-gen-clas.patch
评论者:kari
只是询问,我在Clojure Slack中提出的问题是否与这个JIRA问题相关。如果我将gen-class(例如mygenclass)作为我的Clojure项目的一部分,并希望使用以下命令刷新Clojure REPL中的所有命名空间(do (require '(link: clojure.tools.namespace.repl :refer [refreshmaalas])) (refresh))...那么我会得到一个错误:“加载mygenclass后找不到命名空间'mygenclass'。
评论者:viesti
现在有了https://clojure.org/guides/deps_and_cli#aot_compilation文本:“依赖和CLI”,此更改将使使用gen-class的库打包更为简单,因为不需要打包类文件(如果理解正确的话)。
友好提醒一下,这个更改是否有任何能改善的地方呢? :)