GraalVM
GraalVM 是一个通用虚拟机,用于运行用 JavaScript、Python、Ruby、R、基于 JVM 的语言如 Java、Scala、Clojure、Kotlin 和基于 LLVM 的语言如 C 和 C++ 编写的应用程序。
项目网站 https://www.graalvm.org 描述了如何 入门, 如何 保持联系, 以及如何 做出贡献。
存储库结构
GraalVM 主源存储库包括以下组件:
- GraalVM SDK 包含GraalVM 的长期支持API。
- 用Java编写的 GraalVM 编译器,支持动态和静态编译,可以与 Java HotSpot VM 集成或独立运行。
- 用于为 GraalVM 创建语言和工具的Truffle 语言实现框架。
- Tools 包含一组用于使用检测框架实现的 GraalVM 语言的工具。
- Substrate VM 框架,允许在封闭世界假设下将 Java 应用程序提前(AOT)编译为可执行映像或共享对象。
- Sulong 是在 GraalVM 上运行 LLVM bitcode 的引擎。
- TRegex 是正则表达式的一种实现,它利用 GraalVM 有效地编译自动机。
- VM 包括用于构建模块化 GraalVM 映像的组件。
报告漏洞
请不要通过 GitHub 问题或公共邮件列表报告安全漏洞,而是通过报告漏洞指南中概述的流程报告安全漏洞。
相关的存储库
GraalVM 允许使用 Truffle 和 GraalVM 编译器在与 GraalVM core 相关的存储库中运行正在开发和测试的下列语言。这些是:
- GraalJS -- JavaScript (ECMAScript 2019 兼容) 和 Node.js 10.15.2
- FastR -- R 语言 3.5.1
- GraalPython -- Python 3.7
- TruffleRuby -- Ruby 编程语言 2.6.2
- SimpleLanguage -- GraalVM 的简单演示语言。
许可
每个GraalVM组件都获得许可:
- Truffle Framework 及其依赖项 GraalVM SDK 根据 Universal Permissive License获得许可。
- Tools 项目根据 GPL 2 with Classpath exception 许可。
- TRegex 项目根据 GPL 2 with Classpath exception 许可。
- GraalVM compiler 许可方式为 GPL 2 with Classpath exception。
- Substrate VM 许可方式为 GPL 2 with Classpath exception。
- Sulong 根据 3-clause BSD 获得许可。
- VM 许可方式为 GPL 2 with Classpath exception。
(First edition: vz edited at 2019.08.23)