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

欢迎!请参阅关于页面了解有关此功能更多信息。

+4
Clojure

我还没有设法尝试 graalvm,但作为 clojure 用户,问题是,鉴于 graalvm 的承诺,如果有的话,clojure 与其集成有什么问题,以及如何看待与 graalvm 的上游集成?从技术和其他方面(我在这提问是为了让后来的用户追踪)

2 答案

+3
by

我已经用 clojure 和 GraalVM 创建了几个应用程序

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

您可以检查这些,看看目前可以实现什么,不能实现什么。

它们与 1.10.1 版本配合良好,但有一个条件,即不能 require clojure.spec.alpha 或 clojure.pprint,因为那时会遇到 https://clojure.atlassian.net/browse/CLJ-1472。在 1.9.0 版本中,这个问题不存在,但我希望尽可能地使用最新的 Clojure。

我发现工作得很好是:使用 leiningen 将您的源代码编译成一个 uberjar,然后将该 .jar 交给 GraalVM。我现在在所有的 GraalVM 项目中都是这样做的。

by
值得指出的是,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。谢谢这个例子,我会很快回到这个项目上。
...