Skip to content

Commit 32ce531

Browse files
Merge with master.
2 parents 5e4048d + bc5932e commit 32ce531

File tree

3,676 files changed

+215530
-55143
lines changed

Some content is hidden

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

3,676 files changed

+215530
-55143
lines changed

.github/actions/build-graalvm/action.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,6 @@ runs:
3939
uses: actions/setup-python@v5
4040
with:
4141
python-version: '3.8'
42-
- name: Update mx cache
43-
uses: actions/cache@v4
44-
with:
45-
path: ~/.mx
46-
key: ${{ runner.os }}-mx-${{ hashFiles('**/suite.py') }}
47-
restore-keys: ${{ runner.os }}-mx-
4842
- name: Fetch LabsJDK
4943
shell: bash
5044
run: |

.github/workflows/main.yml

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2020, 2025, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# The Universal Permissive License (UPL), Version 1.0
@@ -43,7 +43,6 @@ name: GraalVM Gate
4343
on:
4444
push:
4545
branches:
46-
- 'master'
4746
- 'release/**'
4847
paths-ignore:
4948
- '.devcontainer/**'
@@ -58,6 +57,8 @@ on:
5857
- '**.md'
5958
- '**.jsonnet'
6059
- '**.libjsonnet'
60+
schedule:
61+
- cron: '30 0 * * 1'
6162
# Enable manual dispatch of the workflow
6263
# see https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow
6364
workflow_dispatch:
@@ -77,6 +78,7 @@ concurrency:
7778

7879
env:
7980
JAVA_HOME: ${{ github.workspace }}/jdk
81+
TOOLS_JAVA_HOME_LOCATION: ${{ github.workspace }}/tools-jdk
8082
LANG: en_US.UTF-8
8183
MX_GIT_CACHE: refcache
8284
MX_PATH: ${{ github.workspace }}/mx
@@ -90,15 +92,16 @@ permissions:
9092
jobs:
9193
build-graalvm-linux:
9294
name: /${{ matrix.env.PRIMARY }} ${{ matrix.env.GATE_TAGS }} JDK${{ matrix.env.JDK_VERSION }}
93-
runs-on: ${{ matrix.os || 'ubuntu-20.04' }}
95+
runs-on: ${{ matrix.os || 'ubuntu-22.04' }}
9496
timeout-minutes: 60
9597
strategy:
9698
fail-fast: false
9799
matrix:
98100
include:
99101
# /compiler
100102
- env:
101-
JDK_VERSION: "21"
103+
JDK_VERSION: "latest"
104+
TOOLS_JDK_VERSION: "21"
102105
GATE_TAGS: "style,fullbuild,test"
103106
PRIMARY: "compiler"
104107
- env:
@@ -112,7 +115,8 @@ jobs:
112115
PRIMARY: "espresso"
113116
# /substratevm
114117
- env:
115-
JDK_VERSION: "21"
118+
JDK_VERSION: "latest"
119+
TOOLS_JDK_VERSION: "21"
116120
GATE_TAGS: "style,fullbuild"
117121
PRIMARY: "substratevm"
118122
- env:
@@ -137,7 +141,7 @@ jobs:
137141
# /truffle
138142
- env:
139143
JDK_VERSION: "21"
140-
GATE_TAGS: "" # Truffle does not use tags
144+
GATE_TAGS: "style,fullbuild,fulltest"
141145
PRIMARY: "truffle"
142146
# /vm
143147
- env:
@@ -179,17 +183,16 @@ jobs:
179183
uses: actions/setup-python@v5
180184
with:
181185
python-version: '3.8'
182-
- name: Update mx cache
183-
uses: actions/cache@v4
184-
with:
185-
path: ~/.mx
186-
key: ${{ runner.os }}-mx-${{ hashFiles('**/suite.py') }}
187-
restore-keys: ${{ runner.os }}-mx-
188186
- name: Fetch LabsJDK
189187
env: ${{ matrix.env }}
190188
run: |
191189
mkdir jdk-dl
192190
${MX_PATH}/mx --java-home= fetch-jdk --jdk-id labsjdk-ce-${JDK_VERSION} --to jdk-dl --alias ${JAVA_HOME}
191+
- name: Fetch Tools JDK
192+
env: ${{ matrix.env }}
193+
if: ${{ matrix.env.TOOLS_JDK_VERSION != '' }}
194+
run: |
195+
${MX_PATH}/mx --java-home= fetch-jdk --jdk-id labsjdk-ce-${TOOLS_JDK_VERSION} --to jdk-dl --alias ${TOOLS_JAVA_HOME_LOCATION}
193196
- name: Update dependency cache
194197
if: ${{ env.MX_RUNS_DEBUG == 'true' || env.MX_RUNS_STYLE == 'true' }}
195198
run: sudo apt update
@@ -218,7 +221,7 @@ jobs:
218221
run: rm -rf .git
219222
- name: Build GraalVM and run gate with tags
220223
env: ${{ matrix.env }}
221-
run: ${MX_PATH}/mx --primary-suite-path ${PRIMARY} --java-home=${JAVA_HOME} gate --strict-mode ${{ matrix.env.GATE_OPTS }} --tags ${GATE_TAGS}
224+
run: ${MX_PATH}/mx --primary-suite-path ${PRIMARY} --java-home=${JAVA_HOME} --tools-java-home=${{ matrix.env.TOOLS_JDK_VERSION != '' && env.TOOLS_JAVA_HOME_LOCATION || '' }} gate --strict-mode ${{ matrix.env.GATE_OPTS }} --tags ${GATE_TAGS}
222225
if: ${{ matrix.env.GATE_TAGS != '' }}
223226
- name: Build GraalVM and run gate without tags
224227
env: ${{ matrix.env }}
@@ -230,6 +233,7 @@ jobs:
230233
timeout-minutes: 60
231234
env:
232235
MX_PYTHON: 'python'
236+
PYTHONIOENCODING: 'utf-8'
233237
steps:
234238
- name: Checkout oracle/graal
235239
uses: actions/checkout@v4

.github/workflows/micronaut.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2024, 2024, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2024, 2025, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# The Universal Permissive License (UPL), Version 1.0
@@ -38,7 +38,7 @@
3838
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3939
# SOFTWARE.
4040
#
41-
name: Nightly Micronaut Tests
41+
name: Weekly Micronaut Tests
4242

4343
on:
4444
push:
@@ -48,7 +48,7 @@ on:
4848
paths:
4949
- '.github/workflows/micronaut.yml'
5050
schedule:
51-
- cron: '0 2 * * *'
51+
- cron: '0 2 * * 1'
5252
workflow_dispatch:
5353

5454
env:
@@ -63,7 +63,7 @@ permissions:
6363
jobs:
6464
build-graalvm-and-micronaut:
6565
name: Native Tests
66-
runs-on: ubuntu-20.04
66+
runs-on: ubuntu-22.04
6767
if: (github.event_name == 'schedule' && github.repository == 'oracle/graal') || (github.event_name != 'schedule')
6868
steps:
6969
- name: Checkout oracle/graal

.github/workflows/ni-layers.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,11 @@ on:
4444
push:
4545
paths:
4646
- '.github/workflows/ni-layers.yml'
47+
- 'vm/tests/gh_workflows/NILayerTests/**'
4748
pull_request:
4849
paths:
4950
- '.github/workflows/ni-layers.yml'
51+
- 'vm/tests/gh_workflows/NILayerTests/**'
5052
schedule:
5153
- cron: "0 0 * * 1" # Once a week, at midnight on Monday (00:00 UTC)
5254
workflow_dispatch:
@@ -103,7 +105,7 @@ jobs:
103105
- name: Checkout oracle/graal
104106
uses: actions/checkout@v4
105107
- name: Download GraalVM JDK build
106-
uses: actions/download-artifact@v4
108+
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
107109
with:
108110
name: graalvm
109111
path: .

.github/workflows/quarkus.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2020, 2025, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# The Universal Permissive License (UPL), Version 1.0
@@ -38,7 +38,7 @@
3838
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3939
# SOFTWARE.
4040
#
41-
name: Nightly Quarkus Tests
41+
name: Weekly Quarkus Tests
4242

4343
on:
4444
push:
@@ -48,7 +48,7 @@ on:
4848
paths:
4949
- '.github/workflows/quarkus.yml'
5050
schedule:
51-
- cron: '0 3 * * *'
51+
- cron: '0 3 * * 1'
5252
workflow_dispatch:
5353

5454
env:
@@ -67,7 +67,7 @@ jobs:
6767
contents: read # to fetch code (actions/checkout)
6868

6969
name: Nightly Quarkus and GraalVM build
70-
runs-on: ubuntu-20.04
70+
runs-on: ubuntu-22.04
7171
if: (github.event_name == 'schedule' && github.repository == 'oracle/graal') || (github.event_name != 'schedule')
7272
outputs:
7373
matrix: ${{ steps.read.outputs.matrix }}
@@ -133,7 +133,7 @@ jobs:
133133
steps:
134134
- name: Download GraalVM JDK build
135135
if: startsWith(matrix.os-name, 'ubuntu')
136-
uses: actions/download-artifact@v4
136+
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
137137
with:
138138
name: graalvm
139139
path: .
@@ -154,7 +154,7 @@ jobs:
154154
run: ${QUARKUS_PATH}/.github/ci-prerequisites.sh
155155
- name: Download Maven Repo
156156
if: startsWith(matrix.os-name, 'ubuntu')
157-
uses: actions/download-artifact@v4
157+
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
158158
with:
159159
name: maven-repo
160160
path: .

.github/workflows/reachability-metadata.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ permissions:
6161
jobs:
6262
build-graalvm-and-populate-matrix:
6363
name: Build GraalVM and populate matrix
64-
runs-on: ubuntu-20.04
64+
runs-on: ubuntu-22.04
6565
if: (github.event_name == 'schedule' && github.repository == 'oracle/graal') || (github.event_name != 'schedule')
6666
outputs:
6767
matrix: ${{ steps.set-matrix.outputs.matrix }}
@@ -110,7 +110,7 @@ jobs:
110110
with:
111111
repository: oracle/graalvm-reachability-metadata
112112
- name: Download GraalVM JDK build
113-
uses: actions/download-artifact@v4
113+
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
114114
with:
115115
name: graalvm
116116
path: .

.github/workflows/spring.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2024, 2024, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2024, 2025, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# The Universal Permissive License (UPL), Version 1.0
@@ -38,7 +38,7 @@
3838
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3939
# SOFTWARE.
4040
#
41-
name: Nightly Spring Tests
41+
name: Weekly Spring Tests
4242

4343
on:
4444
push:
@@ -48,7 +48,7 @@ on:
4848
paths:
4949
- '.github/workflows/spring.yml'
5050
schedule:
51-
- cron: '0 4 * * *'
51+
- cron: '0 4 * * 1'
5252
workflow_dispatch:
5353

5454
env:
@@ -61,7 +61,7 @@ permissions:
6161
jobs:
6262
build-graalvm-and-spring:
6363
name: Native Tests
64-
runs-on: ubuntu-20.04
64+
runs-on: ubuntu-22.04
6565
if: (github.event_name == 'schedule' && github.repository == 'oracle/graal') || (github.event_name != 'schedule')
6666
steps:
6767
- name: Checkout oracle/graal

LICENSE

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
Product License - GraalVM Community Edition
1+
Product License - GraalVM Community Edition
22

33
This is a release of GraalVM Community Edition. GraalVM Community Edition
44
consists of multiple modules. The software as a whole, as well as the JVMCI
55
and VisualVM modules, are released under version 2 of the GNU General Public
66
License with the “Classpath” Exception.
77
The text of the foregoing licenses is reproduced below.
88

9-
Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
9+
Copyright (c) 2015, 2025, Oracle and/or its affiliates. All rights reserved.
1010

1111
===========================================================================
1212

ci.jsonnet

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ local vm = import 'vm/ci/ci_includes/vm.jsonnet';
3838
# Visualizer
3939
local visualizer = import 'visualizer/ci/ci.jsonnet';
4040

41+
# Web Image
42+
local web_image = import 'web-image/ci/ci.jsonnet';
43+
4144
local verify_ci = (import 'ci/ci_common/ci-check.libsonnet').verify_ci;
4245

4346
# Filter builds to include/exclude jobs whose name contains "libgraal"
@@ -60,7 +63,8 @@ local libgraal(builds, include=true) = [b for b in builds if (std.findSubstr("li
6063
common.with_components(truffle.builds, ["truffle"]) +
6164
common.with_components(javadoc.builds, ["javadoc"]) +
6265
common.with_components(libgraal(vm.builds, false), ["vm"]) +
63-
common.with_components(visualizer.builds, ["visualizer"])
66+
common.with_components(visualizer.builds, ["visualizer"]) +
67+
common.with_components(web_image.builds, ["webimage"])
6468
)],
6569
assert verify_ci(self.builds),
6670
// verify that the run-spec demo works

ci/ci_common/bench-common.libsonnet

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
bench_base:: common.build_base + {
77
# job name automatically generated: <job_prefix>-<suite>-<platform>-<jdk_name>-<os>-<arch>-<job_suffix>
88
# null values are omitted from the list.
9-
generated_name:: utils.hyphenize([self.job_prefix, self.suite, self.platform, self.jdk_name, self.os, self.arch, self.job_suffix]),
9+
generated_name:: utils.hyphenize([self.job_prefix, self.suite, self.platform, self.jdk_name, if std.objectHasAll(self, 'machine_name') then self.machine_name else null, self.os, self.arch, self.job_suffix]),
1010
job_prefix:: null,
1111
job_suffix:: null,
1212
name:
@@ -69,6 +69,13 @@
6969
default_numa_node:: 0,
7070
num_threads:: 16
7171
},
72+
x52:: common.linux_amd64 + self._bench_machine + {
73+
machine_name:: "x52",
74+
capabilities+: ["tmpfs25g"],
75+
numa_nodes:: [0, 1],
76+
default_numa_node:: 1,
77+
num_threads:: 72
78+
},
7279
x82:: common.linux_amd64 + self._bench_machine + {
7380
machine_name:: "x82",
7481
capabilities+: ["tmpfs25g"],

ci/ci_common/common-utils.libsonnet

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,15 @@
1010
hyphenize(a_list)::
1111
std.join("-", std.filterMap(function(el) el != null, function(el) std.toString(el), a_list)),
1212

13+
# generate a string that describes the specific hardware being executed on with format: <jdk_name>-<machine_name>-<os>-<arch>
14+
jdk_and_hardware(build)::
15+
self.hyphenize([
16+
if std.objectHasAll(build, 'jdk_name') then build.jdk_name else null,
17+
if std.objectHasAll(build, 'machine_name') then build.machine_name else null,
18+
if std.objectHasAll(build, 'os') then build.os else null,
19+
if std.objectHasAll(build, 'arch') then build.arch else null,
20+
]),
21+
1322
# Pattern for a guard.includes clause that captures all top-level CI files.
1423
top_level_ci:: ["*.json", "*.jsonnet", "*.libsonnet", "ci/**"],
1524

ci/ci_common/common.jsonnet

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ common + common.frequencies + {
111111
labsjdk21:: self["labsjdk-" + repo_config.graalvm_edition + "-21"],
112112
labsjdk21Debug:: self["labsjdk-" + repo_config.graalvm_edition + "-21Debug"],
113113
labsjdk21LLVM:: self["labsjdk-" + repo_config.graalvm_edition + "-21-llvm"],
114+
graalvmee21:: self["graalvm-ee-21"],
114115

115116
labsjdkLatest:: self["labsjdk-" + repo_config.graalvm_edition + "-latest"],
116117
labsjdkLatestDebug:: self["labsjdk-" + repo_config.graalvm_edition + "-latestDebug"],

ci/common.jsonnet

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,8 @@ local common_json = import "../common.json";
152152
"@(?P<filename>.*SubprocessUtil-argfiles.*\\.argfile)",
153153
# Keep in sync with com.oracle.truffle.api.test.SubprocessTestUtils#makeArgfile
154154
"@(?P<filename>.*SubprocessTestUtils-argfiles.*\\.argfile)",
155+
# Keep in sync with mx_gate.py:get_jacoco_agent_args
156+
"JaCoCo agent config: '(?P<filename>[^']+)'",
155157
],
156158
},
157159

@@ -284,7 +286,7 @@ local common_json = import "../common.json";
284286
if (self.os == "linux" && self.arch == "amd64") then {
285287
readline: '==6.3',
286288
pcre2: '==10.37',
287-
curl: '>=7.50.1',
289+
curl: '==7.50.1',
288290
gnur: '==4.0.3-gcc4.8.5-pcre2',
289291
}
290292
else if (self.os == "darwin" && self.arch == "amd64") then {

ci_includes/publish-javadoc.jsonnet

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
local linux_amd64 = common.linux_amd64,
55

66
local javadoc_publisher = {
7-
name: 'graal-publish-javadoc-' + utils.prefixed_jdk(self.jdk_version),
7+
name: 'graal-publish-javadoc-' + self.jdk_name,
88
run+: [
99
["cd", "./sdk"],
1010
["mx", "build"],
@@ -59,7 +59,7 @@
5959
},
6060

6161
local all_builds = [
62-
common.post_merge + linux_amd64 + common.labsjdk21 + javadoc_publisher,
62+
common.post_merge + linux_amd64 + common.labsjdkLatest + javadoc_publisher,
6363
],
6464
// adds a "defined_in" field to all builds mentioning the location of this current file
6565
builds:: utils.add_defined_in(all_builds, std.thisFile),

0 commit comments

Comments
 (0)