评论由:jafingerhut
这条评论对工单CLJ-1604非常有用,内容已被复制
汤姆,我看了你的项目。谢谢。里面好像没有像(def inc inc)这样的内容。在我的测试步骤'lein do clean, uberjar, test'中始终抛出异常,但只有警告信息没有错误,并且'lein do clean, test'测试通过。我有更多的测试结果显示这些结果在不同版本的Clojure中是如何变化的。为了总结,让Clojure的结果变化最大的改动如下(这些应该添加到你创建的新工单中——你可以这样做)
Clojure 1.6.0, 1.7.0-alpha1,以及之后的改动,直至"CLJ-1378: Allows FnExpr to override its reported class with a type hint"的提交:上方两个lei命令没有任何错误或警告。
下一个带有描述"Add clojure.core/update, like update-in but takes a single key"的提交添加了clojure.core/update:'lein do clean, test'可以正常运行,但'lein do clean, uberjar'在编译过程中抛出异常,可能是由于CLJ-1241。
下一个带有描述"fix CLJ-1241"的提交:'lein do clean, test'和'lein do clean, uberjar'关于clojure.core/update给出警告,但没有错误或异常。"lein do clean, uberjar, test"在测试步骤中抛出异常,这与我在Clojure 1.7.0-alpha4中看到的情况相同。在data.int-map内部打印clojure.core/update和int-map/update(在data.int-map中和在汤姆的名字空间compiler-update-not-referenced-bug.core中)的调试输出显示,在data.int-map内部打印时看起来一切正常,在汤姆的名字空间内部打印时没有得到uberjar,但在生成uberjar时,test, int-map/update在汤姆的名字空间中不绑定。
如果这很重要,我的测试是在macOS X 10.9.5、Java 1.7.0_45的Java HotSpot(TM) 64位服务器虚拟机上进行的。