尽管还不是一个功能齐全的工具,但 scala-native 项目已开始变得可用,尽管它仍处于早期阶段,但它正在积极开发中,并且每个月都会变得更加强大。它基于 LLVM 和 clang,如果您依赖的库属于早期阶段实现的库,它会将您的 scala 源代码编译为二进制文件。(它还不能在 Windows 或 cygwin 中工作,尽管它可以在 WSL 环境中工作)。 更新:Windows 支持最近一直在改进(2021 年秋季)。
尽管大多数程序可能启动得更快,但性能是否提高是一个单独的问题。
这是用户指南的链接
创建自己的项目:Minimal sbt 项目
最大的限制是到目前为止仅实现了 java 和 scala 标准库的子集,因此您需要将自己限制在当前可用的范围内,并且并非每个项目只有在将自己限制为 100% scala 时才可行。此外,该文档仍在进行中。
作为测试,我创建了一个用于处理文本文件的命令行工具,并且我最终能够让它工作,尽管我确实花了一些时间来弄清楚如何完成各种事情,以及主要是如何使用可用的东西图书馆。如果有必要,您还可以链接到 C/C++ 库,尽管我的小项目不需要这样做。
截至 2019 年 6 月的脚注:我在 graalvm 本机映像方面运气不错。这是链接:
https://www.graalvm.org/docs/reference-manual/aot-compilation/
此时我看到两种解决方案将jvm字节码转换为自包含的本机二进制文件:
两者都应该与Scala兼容.
据我所知,scala没有直接的本地编译器.有一些像Scala LLVM这样的项目,但它们更多的是研究和概念证明,而不是现成的工具
| 归档时间: |
|
| 查看次数: |
1351 次 |
| 最近记录: |