欢迎!有关如何操作,请参阅关于页面获取更多信息。
这个问题:在https://clojure.atlassian.net/browse/CLJ-1227中报告,使用definline定义的函数在AOT编译下失败。
问题最终被拒绝,因为编译器宏最终会取代它,且其“实验性”标记意味着你不应该使用它,并假定它可能有错误,但Clojure核心本身使用了它,所以问题就出现在针对Clojure核心本身的AOT编译的代码中。
话虽如此,最后有一个评论说
这个问题的根本原因是https://clojure.atlassian.net/browse/CLJ-1330#icft=CLJ-1330,如上文提到的线程中Nicola Mometto调查的那样:http://dev.clojure.org/jira/browse/CLJ-1330所以修复后者也会修复这个问题。
并且CLJ-1330从释放1.7起就已被修复。
1.7
所以我的问题是,CLJ-1227基本上是修复了吗?你现在可以再使用AOT代码的definline了吗?或者只有Clojure核心使用definline的问题已被修复?
CLJ-1227
definline
感谢
附言:我在ask.clojure.org上找不到这个问题的记录,所以我认为已关闭的问题可能没有被迁移,如有遗漏,请见谅。
重新运行附加到CLJ-1227的项目重现程序,对我来说看起来已修复。你在某处看到问题了吗?
我仍然认为definline是实验性的,而且Rich并不真正希望为此使用它,尽管这明显不是一个紧迫的问题 :)。