Skip to content

Commit 43c3d40

Browse files
committed
Merge commit '84541b16ae8a8726a0e7d76c7179d94a57ed84ee' into moe-svm
* commit '84541b16ae8a8726a0e7d76c7179d94a57ed84ee': (2123 commits) Release 21.3.0 prevent inner LibGraalScope from using detached and destroyed isolate thread of an outer LibGraalScope that is in the process of closing (GR-34405) update to jvmci-21.3-b05 Relax the JDK version check for static musl-based native-images Fix reflection for shadowed methods [GR-33681] [GR-23874] Backport: LLVM 12's strip needs to be told explicitly to preserve the .llvmbc bitcode section Simplified metadata for non-reflection methods Fix AnalysisType.hasSubTypes(). Compute AnalysisType.subTypes continuously, as the universe expands. Remove the assertion in HostedMethod.compareTo Add a comment explaining why the toolchain has to be added at the end of the PATH Include FAQ Review the Reflection Use in Native Images guide Review the Static Native Images guide Use toolchains for musl cross-compilation and improve docs for building static native-images. Remember previous options to reinitialize the isolate if needed. Provide workaround for successful bundle lookup at image-runtime Fix checkstyle. Avoid transient issues by refactoring NoTagSamplingTest to no longer be timing based. Improve documentation in bypassedReservedOop. ... # Conflicts: # ci_includes/publish-javadoc.hocon # common.json # compiler/ci_common/benchmark-builders.jsonnet # compiler/mx.compiler/suite.py # espresso/ci_common/common.jsonnet # espresso/mx.espresso/suite.py # espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/classfile/Constants.java # espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/impl/LinkedField.java # espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/impl/LinkedKlassFieldLayout.java # espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/meta/Meta.java # espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/substitutions/Target_sun_misc_Unsafe.java # espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/substitutions/UnsafeSupport.java # espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/vm/UnsafeAccess.java # graal-common.json # regex/mx.regex/suite.py # sdk/mx.sdk/mx_sdk_benchmark.py # sdk/mx.sdk/suite.py # sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/Platform.java # sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/hosted/RuntimeClassInitialization.java # substratevm/mx.substratevm/suite.py # substratevm/src/com.oracle.svm.agent/src/com/oracle/svm/agent/NativeImageAgent.java # substratevm/src/com.oracle.svm.core/.checkstyle_checks.xml # substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/hub/DynamicHub.java # substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/hub/DynamicHubCompanion.java # substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/hub/PredefinedClassesSupport.java # substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/ClassPredefinitionFeature.java # substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/ResourcesFeature.java # substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/snippets/ReflectionPlugins.java # tools/mx.tools/suite.py # tools/src/com.oracle.truffle.tools.profiler/src/com/oracle/truffle/tools/profiler/impl/CPUSamplerCLI.java # truffle/ci.hocon # truffle/external_repos/simplelanguage/pom.xml # truffle/external_repos/simplelanguage/sl # truffle/external_repos/simpletool/pom.xml # truffle/mx.truffle/mx_truffle.py # truffle/mx.truffle/suite.py # truffle/src/com.oracle.truffle.api.staticobject/src/com/oracle/truffle/api/staticobject/StaticProperty.java # truffle/src/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/TruffleSafepointTest.java # truffle/src/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/polyglot/PolyglotExceptionTest.java # truffle/src/com.oracle.truffle.polyglot/src/com/oracle/truffle/polyglot/PolyglotContextImpl.java # truffle/src/com.oracle.truffle.polyglot/src/com/oracle/truffle/polyglot/PolyglotExceptionImpl.java # vm/ci_common/common.hocon # vm/mx.vm/mx_vm_benchmark.py # vm/mx.vm/suite.py # wasm/mx.wasm/suite.py
2 parents b2cd65e + 84541b1 commit 43c3d40

File tree

2,587 files changed

+112158
-52914
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,587 files changed

+112158
-52914
lines changed

.gitattributes

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
/truffle/CHANGELOG.md merge=union
2-
/sdk/CHANGELOG.md merge=union
2+
/sdk/CHANGELOG.md merge=union
3+
/espresso/CHANGELOG.md merge=union

.github/assets/logo_320x64.svg

Lines changed: 1 addition & 0 deletions
Loading

.github/workflows/main.yml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ concurrency:
2929
env:
3030
LANG: en_US.UTF-8
3131
MX_GIT_CACHE: refcache
32+
MX_PYTHON_VERSION: 3
3233
JAVA_HOME: ${{ github.workspace }}/jdk
3334
MX_PATH: ${{ github.workspace }}/mx
3435

@@ -79,6 +80,10 @@ jobs:
7980
JDK: "labsjdk-ce-11"
8081
GATE: "build,debuginfotest"
8182
PRIMARY: "substratevm"
83+
- env:
84+
JDK: "labsjdk-ce-11"
85+
GATE: "hellomodule"
86+
PRIMARY: "substratevm"
8287
- env:
8388
JDK: "labsjdk-ce-11"
8489
GATE: "style,fullbuild"
@@ -93,6 +98,10 @@ jobs:
9398
PRIMARY: "compiler"
9499
- env:
95100
JDK: "labsjdk-ce-11"
101+
GATE: "build"
102+
PRIMARY: "vm"
103+
DYNAMIC_IMPORTS: "/tools,/substratevm,/sulong"
104+
NATIVE_IMAGES: "polyglot"
96105
WITHOUT_VCS: true
97106
steps:
98107
- uses: actions/checkout@v2
@@ -113,7 +122,7 @@ jobs:
113122
env: ${{ matrix.env }}
114123
run: |
115124
mkdir jdk-dl
116-
${MX_PATH}/mx fetch-jdk --java-distribution ${JDK} --to jdk-dl --alias ${JAVA_HOME}
125+
${MX_PATH}/mx fetch-jdk --jdk-id ${JDK} --to jdk-dl --alias ${JAVA_HOME}
117126
- name: Update dependency cache
118127
if: ${{ contains(matrix.env.GATE, 'debug') || contains(matrix.env.GATE, 'style') }}
119128
run: sudo apt update
@@ -124,8 +133,9 @@ jobs:
124133
if: ${{ contains(matrix.env.GATE, 'style') }}
125134
run: |
126135
sudo apt install python-pip python-setuptools
127-
sudo pip install astroid==1.1.0
128-
sudo pip install pylint==1.1.0
136+
cat common.json |
137+
jq -r '.deps.common.packages | to_entries[] | select(.key | startswith("pip:")) | (.key | split(":")[1]) + .value' |
138+
xargs sudo pip install
129139
- name: Build GraalVM and run gate
130140
env: ${{ matrix.env }}
131141
run: |
@@ -155,7 +165,6 @@ jobs:
155165
if [[ ${WITHOUT_VCS} ]]
156166
then
157167
rm -rf .git
158-
${MX_PATH}/mx --primary-suite-path substratevm native-image --help
159-
else
160-
${MX_PATH}/mx --primary-suite-path ${PRIMARY} --J @"-Xmx2g" --java-home=${JAVA_HOME} gate --strict-mode --tags ${GATE}
161168
fi
169+
170+
${MX_PATH}/mx --primary-suite-path ${PRIMARY} --J @"-Xmx2g" --java-home=${JAVA_HOME} gate --strict-mode --tags ${GATE}

.github/workflows/quarkus.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ env:
1919
COMMON_MAVEN_ARGS: "-e -B --settings .github/mvn-settings.xml --fail-at-end"
2020
NATIVE_TEST_MAVEN_ARGS: "-Dtest-containers -Dstart-containers -Dquarkus.native.native-image-xmx=5g -Dnative -Dnative.surefire.skip -Dformat.skip -Dno-descriptor-tests install -DskipDocs"
2121
MX_GIT_CACHE: refcache
22+
MX_PYTHON_VERSION: 3
2223
MX_PATH: ${{ github.workspace }}/mx
2324
JAVA_HOME: ${{ github.workspace }}/jdk
2425
QUARKUS_PATH: ${{ github.workspace }}/quarkus
@@ -62,7 +63,7 @@ jobs:
6263
- name: Get JDK
6364
run: |
6465
mkdir jdk-dl
65-
${MX_PATH}/mx fetch-jdk --java-distribution labsjdk-ce-11 --to jdk-dl --alias ${JAVA_HOME}
66+
${MX_PATH}/mx fetch-jdk --jdk-id labsjdk-ce-11 --to jdk-dl --alias ${JAVA_HOME}
6667
- name: Build graalvm native-image
6768
run: |
6869
cd substratevm

README.md

Lines changed: 84 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,100 @@
1-
# GraalVM
1+
[![GraalVM](.github/assets/logo_320x64.svg)][website]
22

3-
[![https://graalvm.slack.com](https://img.shields.io/badge/slack-join%20channel-active)](https://www.graalvm.org/slack-invitation/)
3+
[![GraalVM downloads][badge-dl]][downloads] [![GraalVM docs][badge-docs]][docs] [![GraalVM on Slack][badge-slack]][slack] [![GraalVM on Twitter][badge-twitter]][twitter] [![GraalVM on YouTube][badge-yt]][youtube] [![GraalVM Gate][badge-gate]][gate] [![License][badge-license]](#license)
44

5-
GraalVM is a universal virtual machine for running applications written in JavaScript, Python, Ruby, R, JVM-based languages like Java, Scala, Clojure, Kotlin, and LLVM-based languages such as C and C++.
5+
GraalVM is a high-performance JDK distribution designed to accelerate the execution of applications written in Java and other JVM languages along with support for JavaScript, Ruby, Python, and a number of other popular languages.
66

7-
The project website at [https://www.graalvm.org](https://www.graalvm.org) describes how to [get started](https://www.graalvm.org/docs/getting-started/), how to [stay connected](https://www.graalvm.org/community/), and how to [contribute](https://www.graalvm.org/community/contributors/).
7+
The project website at [https://www.graalvm.org/][website] describes how to [get started][getting-started], how to [stay connected][community], and how to [contribute][contributors].
88

9-
## Repository Structure
10-
11-
The GraalVM main source repository includes the components listed below. The documentation for each component includes
12-
developer instructions for the component.
13-
14-
* [GraalVM SDK](sdk/README.md) contains long term supported APIs of GraalVM.
15-
16-
* [GraalVM compiler](compiler/README.md) written in Java that supports both dynamic and static compilation and can integrate with
17-
the Java HotSpot VM or run standalone.
18-
19-
* [Truffle](truffle/README.md) language implementation framework for creating languages and instrumentations for GraalVM.
20-
21-
* [Tools](tools/README.md) contains a set of tools for GraalVM languages
22-
implemented with the instrumentation framework.
9+
## Documentation
2310

24-
* [Substrate VM](substratevm/README.md) framework that allows ahead-of-time (AOT)
25-
compilation of Java applications under closed-world assumption into executable
26-
images or shared objects.
11+
Please refer to the [GraalVM website for documentation][docs]. You can find most of the documentation sources in the [`docs/`](docs/) directory in the same hierarchy as displayed on the website. Additional documentation including developer instructions for individual components can be found in corresponding `docs/` sub-directories. The documentation for the Truffle framework, for example, is in [`truffle/docs/`](truffle/docs/). This also applies to languages, tools, and other components maintained in [related repositories](#related-repositories).
2712

28-
* [Sulong](sulong/README.md) is an engine for running LLVM bitcode on GraalVM.
29-
30-
* [GraalWasm](wasm/README.md) is an engine for running WebAssembly programs on GraalVM.
31-
32-
* [TRegex](regex/README.md) is an implementation of regular expressions which leverages GraalVM for efficient compilation of automata.
33-
34-
* [VM](vm/README.md) includes the components to build a modular GraalVM image.
13+
## Get Support
3514

36-
* [VS Code](/vscode/README.md) provides extensions to Visual Studio Code that support development of polyglot applications using GraalVM.
15+
* Open a [GitHub issue][issues] for bug reports, questions, or requests for enhancements.
16+
* Join the [GraalVM Slack][slack] to connect with the community and the GraalVM team.
17+
* Report a security vulnerability according to the [Reporting Vulnerabilities guide][reporting-vulnerabilities].
3718

38-
## Get Support
19+
## Repository Structure
3920

40-
* Open a [GitHub issue](https://github.com/oracle/graal/issues) for bug reports, questions, or requests for enhancements.
41-
* Report a security vulnerability according to the [Reporting Vulnerabilities guide](https://www.oracle.com/corporate/security-practices/assurance/vulnerability/reporting.html).
21+
This source repository is the main repository for GraalVM and includes the following components:
22+
23+
Directory | Description
24+
------------ | -------------
25+
[`.github/`](.github/) | Configuration files for GitHub issues, workflows, ….
26+
[`compiler/`](compiler/) | [Graal compiler][reference-compiler], a modern, versatile compiler written in Java.
27+
[`espresso/`](espresso/) | [Espresso][java-on-truffle], a meta-circular Java bytecode interpreter for the GraalVM.
28+
[`java-benchmarks/`](java-benchmarks/) | Java benchmarks.
29+
[`regex/`](regex/) | TRegex, a regular expression engine for other GraalVM languages.
30+
[`sdk/`](sdk/) | [GraalVM SDK][graalvm-sdk], long-term supported APIs of GraalVM.
31+
[`substratevm/`](substratevm/) | Framework for ahead-of-time (AOT) compilation with [Native Image][native-image].
32+
[`sulong/`](sulong/) | [Sulong][reference-sulong], an engine for running LLVM bitcode on GraalVM.
33+
[`tools/`](tools/) | Tools for GraalVM languages implemented with the instrumentation framework.
34+
[`truffle/`](truffle/) | GraalVM's [language implementation framework][truffle] for creating languages and tools.
35+
[`vm/`](vm/) | Components for building GraalVM distributions.
36+
[`wasm/`](wasm/) | [GraalWasm][reference-graalwasm], an engine for running WebAssembly programs on GraalVM.
4237

4338
## Related Repositories
4439

45-
GraalVM allows running of following languages which are being developed and tested in related repositories with GraalVM core to run on top of it using Truffle and the GraalVM compiler. These are:
46-
* [GraalJS](https://github.com/oracle/graaljs) - JavaScript and Node.js
47-
* [FastR](https://github.com/oracle/fastr) - R Language
48-
* [GraalPython](https://github.com/oracle/graalpython) - Python
49-
* [TruffleRuby](https://github.com/oracle/truffleruby) - Ruby
50-
* [SimpleLanguage](https://github.com/graalvm/simplelanguage) - A simple demonstration language for the GraalVM.
40+
GraalVM provides additional languages, tools, and other components developed in related repositories. These are:
5141

42+
Name | Description
43+
------------ | -------------
44+
[FastR] | Implementation of the R language.
45+
[GraalJS] | Implementation of JavaScript and Node.js.
46+
[GraalPython] | Implementation of the Python language.
47+
[GraalVM Demos][graalvm-demos] | Several example applications illustrating GraalVM capabilities.
48+
[Native Build Tools][native-build-tools] | Build tool plugins for GraalVM Native Image.
49+
[SimpleLanguage] | A simple example language built with the Truffle framework.
50+
[SimpleTool] | A simple example tool built with the Truffle framework.
51+
[TruffleRuby] | Implementation of the Ruby language.
52+
[VS Code Extensions][vscode-extensions] | VS Code extensions for GraalVM.
5253

5354
## License
5455

55-
Each GraalVM component is licensed:
56-
* [Truffle Framework](/truffle/) and its dependency [GraalVM SDK](/sdk/) are licensed under the [Universal Permissive License](truffle/LICENSE.md).
57-
* [Tools](/tools/) project is licensed under the [GPL 2 with Classpath exception](tools/LICENSE).
58-
* [TRegex](/regex/) project is licensed under the [Universal Permissive License](regex/LICENSE.md).
59-
* [GraalVM compiler](/compiler/) is licensed under the [GPL 2 with Classpath exception](compiler/LICENSE.md).
60-
* [Substrate VM](/substratevm/) is licensed under the [GPL 2 with Classpath exception](substratevm/LICENSE).
61-
* [Sulong](/sulong/) is licensed under [3-clause BSD](sulong/LICENSE).
62-
* [GraalWasm](/wasm/) is licensed under the [Universal Permissive License](wasm/LICENSE).
63-
* [VM](/vm/) is licensed under the [GPL 2 with Classpath exception](vm/LICENSE_GRAALVM_CE).
64-
* [VS Code](/vscode/) extensions are distributed under the [UPL 1.0 license](/vscode/graalvm/LICENSE.txt).
56+
GraalVM Community Edition is open source and distributed under [version 2 of the GNU General Public License with the “Classpath” Exception](LICENSE), which are the same terms as for Java. The licenses of the individual GraalVM components are generally derivative of the license of a particular language (see the table below). GraalVM Community is free to use for any purpose - no strings attached.
57+
58+
Component(s) | License
59+
------------ | -------------
60+
[Espresso](espresso/LICENSE) | GPL 2
61+
[GraalVM Compiler](compiler/LICENSE.md), [SubstrateVM](substratevm/LICENSE), [Tools](tools/LICENSE), [VM](vm/LICENSE_GRAALVM_CE) | GPL 2 with Classpath Exception
62+
[GraalVM SDK](sdk/LICENSE.md), [GraalWasm](wasm/LICENSE), [Truffle Framework](truffle/LICENSE.md), [TRegex](regex/LICENSE.md) | Universal Permissive License
63+
[Sulong](sulong/LICENSE) | 3-clause BSD
64+
65+
66+
[badge-dl]: https://img.shields.io/badge/download-latest-blue
67+
[badge-docs]: https://img.shields.io/badge/docs-read-green
68+
[badge-gate]: https://github.com/oracle/graal/actions/workflows/main.yml/badge.svg
69+
[badge-license]: https://img.shields.io/badge/license-GPLv2+CE-green
70+
[badge-slack]: https://img.shields.io/badge/Slack-join-active?logo=slack
71+
[badge-twitter]: https://img.shields.io/badge/Twitter-@graalvm-active?logo=twitter
72+
[badge-yt]: https://img.shields.io/badge/YouTube-subscribe-active?logo=youtube
73+
[community]: https://www.graalvm.org/community/
74+
[contributors]: https://www.graalvm.org/community/contributors/
75+
[docs]: https://www.graalvm.org/docs/introduction/
76+
[downloads]: https://www.graalvm.org/downloads/
77+
[fastr]: https://github.com/oracle/fastr
78+
[gate]: https://github.com/oracle/graal/actions/workflows/main.yml
79+
[getting-started]: https://www.graalvm.org/docs/getting-started/
80+
[graaljs]: https://github.com/oracle/graaljs
81+
[graalpython]: https://github.com/oracle/graalpython
82+
[graalvm-demos]: https://github.com/graalvm/graalvm-demos
83+
[graalvm-sdk]: https://www.graalvm.org/sdk/javadoc/
84+
[issues]: https://github.com/oracle/graal/issues
85+
[java-on-truffle]: https://www.graalvm.org/reference-manual/java-on-truffle/
86+
[native-build-tools]: https://github.com/graalvm/native-build-tools
87+
[native-image]: https://www.graalvm.org/reference-manual/native-image/
88+
[reference-compiler]: https://www.graalvm.org/reference-manual/compiler/
89+
[reference-graalwasm]: https://www.graalvm.org/reference-manual/wasm/
90+
[reference-sulong]: https://www.graalvm.org/reference-manual/llvm/
91+
[reporting-vulnerabilities]: https://www.oracle.com/corporate/security-practices/assurance/vulnerability/reporting.html
92+
[simplelanguage]: https://github.com/graalvm/simplelanguage
93+
[simpletool]: https://github.com/graalvm/simpletool
94+
[slack]: https://www.graalvm.org/slack-invitation/
95+
[truffle]: https://www.graalvm.org/graalvm-as-a-platform/language-implementation-framework/
96+
[truffleruby]: https://github.com/oracle/truffleruby
97+
[twitter]: https://twitter.com/graalvm
98+
[vscode-extensions]: https://github.com/graalvm/vscode-extensions
99+
[website]: https://www.graalvm.org/
100+
[youtube]: https://www.youtube.com/graalvm

0 commit comments

Comments
 (0)