欢迎!请查阅关于页面以了解更多关于其工作方式的信息。
这个问题:[https://clojure.atlassian.net/browse/CLJ-1227](https://clojure.atlassian.net/browse/CLJ-1227) 报告了使用definline定义的函数在AOT编译时失败。
该问题被拒绝,理由是最终编译器宏会替代它,并且它的“实验性”标志意味着你不应该使用它,并且假设它可能存在bug,但它本身却被Clojure核心所用,因此这个问题在针对Clojure核心本身的代码AOT编译时表现出来。
尽管如此,最后有一个评论说:
这个问题的根本原因是[https://clojure.atlassian.net/browse/CLJ-1330#icft=CLJ-1330](https://clojure.atlassian.net/browse/CLJ-1330#icft=CLJ-1330),由Nicola Mometto在上述线程中调查:[http://dev.clojure.org/jira/browse/CLJ-1330](http://dev.clojure.org/jira/browse/CLJ-1330)所以修复后者也将修复这个问题。
CLJ-1330自从1.7版本发布以来就已经修复了。
1.7
因此,我的问题是,是否CLJ-1227基本上已经修复?现在你可以在AOT代码中使用definline吗?或者只是Clojure核心中使用了definline?
definline
感谢
提醒:我在ask.clojure.org上找不到这个问题,所以我假设已关闭的问题可能没有被迁移,如果这是重复的,我很抱歉。
重新运行附在CLJ-1227上的复现文件看起来对我来说已经修复了。你有没有看到什么问题?
我还是要说,definline是实验性的,Rich其实并不希望用它,尽管这显然不是一个大问题。:)