欢迎!请访问关于页面以获取更多关于此如何运作的信息。
clojure.spec 0.3.214命名空间下的clojure.spec.test.alpha仍使用clojure 1.10.1的锁定宏进行AOT编译
0.3.214
<clojure.version>1.10.1</clojure.version>
https://github.com/clojure/spec.alpha/blob/a924efab53b0465f7d2a589d4ae3c79a3826403b/pom.xml#L39
https://github.com/clojure/spec.alpha/blob/a924efab53b0465f7d2a589d4ae3c79a3826403b/src/main/clojure/clojure/spec/test/alpha.clj#L363
这个旧的锁定宏在GraalVM原生图像中存在问题。请见CLJ-1472。
我认为,如果您使用clojure 1.10.3编译clojure.spec,则可以继续使用锁定,并将旧的锁定2修复方法在此处删除
https://github.com/clojure/spec.alpha/blob/a924efab53b0465f7d2a589d4ae3c79a3826403b/src/main/clojure/clojure/spec/gen/alpha.clj#L17
另一种解决方案是在clojure.spec.test.alpha中也使用锁定2宏。
发布spec.alpha 0.3.218