2024 Clojure状态调查!中分享你的想法。

欢迎!请参阅关于页面以了解更多关于如何使用此平台的信息。

+4
Clojure

我至今还没有管理尝试GraalVM,但作为Clojure用户,问题是在GraalVM的承诺下,Clojure集成有何问题(如果有)以及如何看到与GraalVM的上游集成?从技术和其他方面(我提出这个问题是为了供后续用户追踪)

2 答案

+3

我使用Clojure和GraalVM创建了好几个应用

https://github.com/borkdude/clj-kondo
https://github.com/borkdude/babashka
https://github.com/borkdude/jet

你可以检查这些应用以了解目前可以和不可以做什么。

在1.10.1版本中,它们工作良好,但有前提是你不能要求 clojure.spec.alpha 或 clojure.pprint,因为那时你会遇到 https://clojure.atlassian.net/browse/CLJ-1472。在1.9.0中,这个问题不存在,但我想使用最新的Clojure。

我发现这样可以工作得好:使用leiningen将你的源码AOT编译成一个uberjar,然后将这个.jar文件喂给GraalVM。我现在所有的GraalVM项目中都这样做。

值得一提的是,https://clojure.atlassian.net/browse/CLJ-1472 已经在 1.10.1 版本中修复了,我认为是这样的!
+1 投票

我认为目前如果您想使用 native-image 从 graalvm 中生成原生二进制文件,可能需要降级到 Clojure 1.9.0(除非我在尝试时已经修复了这个问题)

嗨,

这是一个使用 GraalVM 和 Clojure 的示例。

https://github.com/taylorwood/clojurl

希望这能帮到您!
很酷的示例,我曾经尝试构建一个管理我的书籍的 CLI 应用程序,我对于启动时间感到非常沮丧。我尝试过 GraalVM,但在当时我无法正确使 HTTPS 运作,因为我需要调用 Goodreads 和 Amazon API。感谢这个示例,我很快就会回到这个项目上。
...