Skip to content

Commit 11eec05

Browse files
committed
Merge remote-tracking branch 'origin/master' into ph/GR-32497
2 parents f9de429 + 3454760 commit 11eec05

File tree

2,413 files changed

+113784
-43590
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,413 files changed

+113784
-43590
lines changed

.github/workflows/main.yml

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,23 @@ on:
1313
- '**.md'
1414
workflow_dispatch: []
1515

16+
# The following aims to reduce CI CPU cycles by:
17+
# 1. Cancelling any previous builds of this PR when pushing new changes to it
18+
# 2. Cancelling any previous builds of a branch when pushing new changes to it in a fork
19+
# 3. Cancelling any pending builds, but not active ones, when pushing to a branch in the main
20+
# repository. This prevents us from constantly cancelling CI runs, while being able to skip
21+
# intermediate builds. E.g., if we perform two pushes the first one will start a CI job and
22+
# the second one will add another one to the queue; if we perform a third push while the
23+
# first CI job is still running the previously queued CI job (for the second push) will be
24+
# cancelled and a new CI job will be queued for the latest (third) push.
25+
concurrency:
26+
group: "workflow = ${{ github.workflow }}, ref = ${{ github.event.ref }}, pr = ${{ github.event.pull_request.id }}"
27+
cancel-in-progress: ${{ github.event_name == 'pull_request' || github.repository != 'oracle/graal' }}
28+
1629
env:
1730
LANG: en_US.UTF-8
1831
MX_GIT_CACHE: refcache
32+
MX_PYTHON_VERSION: 3
1933
JAVA_HOME: ${{ github.workspace }}/jdk
2034
MX_PATH: ${{ github.workspace }}/mx
2135

@@ -80,6 +94,10 @@ jobs:
8094
PRIMARY: "compiler"
8195
- env:
8296
JDK: "labsjdk-ce-11"
97+
GATE: "build"
98+
PRIMARY: "vm"
99+
DYNAMIC_IMPORTS: "/tools,/substratevm,/sulong"
100+
NATIVE_IMAGES: "polyglot"
83101
WITHOUT_VCS: true
84102
steps:
85103
- uses: actions/checkout@v2
@@ -100,7 +118,7 @@ jobs:
100118
env: ${{ matrix.env }}
101119
run: |
102120
mkdir jdk-dl
103-
${MX_PATH}/mx fetch-jdk --java-distribution ${JDK} --to jdk-dl --alias ${JAVA_HOME}
121+
${MX_PATH}/mx fetch-jdk --jdk-id ${JDK} --to jdk-dl --alias ${JAVA_HOME}
104122
- name: Update dependency cache
105123
if: ${{ contains(matrix.env.GATE, 'debug') || contains(matrix.env.GATE, 'style') }}
106124
run: sudo apt update
@@ -111,8 +129,9 @@ jobs:
111129
if: ${{ contains(matrix.env.GATE, 'style') }}
112130
run: |
113131
sudo apt install python-pip python-setuptools
114-
sudo pip install astroid==1.1.0
115-
sudo pip install pylint==1.1.0
132+
cat common.json |
133+
jq -r '.deps.common.packages | to_entries[] | select(.key | startswith("pip:")) | (.key | split(":")[1]) + .value' |
134+
xargs sudo pip install
116135
- name: Build GraalVM and run gate
117136
env: ${{ matrix.env }}
118137
run: |
@@ -142,7 +161,6 @@ jobs:
142161
if [[ ${WITHOUT_VCS} ]]
143162
then
144163
rm -rf .git
145-
${MX_PATH}/mx --primary-suite-path substratevm native-image --help
146-
else
147-
${MX_PATH}/mx --primary-suite-path ${PRIMARY} --J @"-Xmx2g" --java-home=${JAVA_HOME} gate --strict-mode --tags ${GATE}
148164
fi
165+
166+
${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

bench-common.libsonnet

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
{
2+
local common = import "common.jsonnet",
3+
local utils = import "common-utils.libsonnet",
4+
5+
# benchmark job base with automatically generated name
6+
bench_base:: common.build_base + {
7+
# job name automatically generated: <job_prefix>-<suite>-<platform>-<jdk_version>-<os>-<arch>-<job_suffix>
8+
# null values are omitted from the list.
9+
generated_name:: utils.hyphenize([self.job_prefix, self.suite, self.platform, utils.prefixed_jdk(self.jdk_version), self.os, self.arch, self.job_suffix]),
10+
job_prefix:: null,
11+
job_suffix:: null,
12+
name:
13+
if self.is_jdk_supported(self.jdk_version) then self.generated_name
14+
else error "JDK" + self.jdk_version + " is not supported for " + self.generated_name + "! Suite is explicitly marked as working for JDK versions "+ self.min_jdk_version + " until " + self.max_jdk_version,
15+
suite:: error "'suite' must be set to generate job name",
16+
timelimit: error "build 'timelimit' is not set for "+ self.name +"!",
17+
local ol8_image = self.ci_resources.infra.ol8_bench_image,
18+
docker+: {
19+
"image": ol8_image,
20+
"mount_modules": true
21+
},
22+
should_use_hwloc:: std.objectHasAll(self, "is_numa") && self.is_numa && std.length(std.find("bench", self.targets)) > 0,
23+
min_jdk_version:: null,
24+
max_jdk_version:: null,
25+
is_jdk_supported(jdk_version)::
26+
if self.min_jdk_version != null && jdk_version < self.min_jdk_version then false
27+
else if self.max_jdk_version != null && jdk_version > self.max_jdk_version then false
28+
else true
29+
},
30+
31+
bench_hw:: {
32+
_bench_machine:: {
33+
targets+: ["bench"],
34+
machine_name:: error "machine_name must be set!",
35+
local _machine_name = self.machine_name,
36+
capabilities+: [_machine_name],
37+
local GR26994_ActiveProcessorCount = "-Dnative-image.benchmark.extra-run-arg=-XX:ActiveProcessorCount="+std.toString(self.threads_per_node), # remove once GR-26994 is fixed
38+
environment+: { "MACHINE_NAME": _machine_name, "GR26994": GR26994_ActiveProcessorCount },
39+
numa_nodes:: [],
40+
is_numa:: std.length(self.numa_nodes) > 0,
41+
num_threads:: error "num_threads must bet set!",
42+
threads_per_node:: if self.is_numa then self.num_threads / std.length(self.numa_nodes) else self.num_threads,
43+
},
44+
45+
x52:: common.linux + common.amd64 + self._bench_machine + {
46+
machine_name:: "x52",
47+
capabilities+: ["no_frequency_scaling", "tmpfs25g"],
48+
numa_nodes:: [0, 1],
49+
default_numa_node:: 0,
50+
num_threads:: 72
51+
},
52+
xgene3:: common.linux + common.aarch64 + self._bench_machine + {
53+
machine_name:: "xgene3",
54+
capabilities+: [],
55+
num_threads:: 32
56+
},
57+
a12c:: common.linux + common.aarch64 + self._bench_machine + {
58+
machine_name:: "a12c",
59+
capabilities+: ["no_frequency_scaling", "tmpfs25g"],
60+
numa_nodes:: [0, 1],
61+
default_numa_node:: 0,
62+
num_threads:: 160
63+
}
64+
},
65+
66+
hwlocIfNuma(numa, cmd, node=0)::
67+
if numa then
68+
["hwloc-bind", "--cpubind", "node:"+node, "--membind", "node:"+node, "--"] + cmd
69+
else
70+
cmd,
71+
72+
parallelHwloc(cmd_node0, cmd_node1)::
73+
// Returns a list of commands that will run cmd_nod0 on NUMA node 0
74+
// concurrently with cmd_node1 on NUMA node 1 and then wait for both to complete.
75+
[
76+
$.hwlocIfNuma(true, cmd_node0, node=0) + ["&"],
77+
$.hwlocIfNuma(true, cmd_node1, node=1) + ["&"],
78+
["wait"]
79+
]
80+
}

ci.jsonnet

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ local sulong = import 'sulong/ci.jsonnet';
1414
# for a PR that only touches *.md flles.
1515
local add_markdown_guard(build) = build + {
1616
guard+: {
17-
excludes+: ["**.md"]
17+
excludes+: ["**.md", "docs/**"]
1818
}
1919
};
2020

common-utils.libsonnet

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,15 @@
6363
),
6464
# exported name
6565
composable(o) :: _composable(o),
66+
67+
# prefixes the given number with 'jdk'
68+
prefixed_jdk(jdk_version)::
69+
if jdk_version == null || std.length(std.toString(jdk_version)) == 0 then
70+
null
71+
else
72+
"jdk" + std.toString(jdk_version),
73+
74+
# generate a string of hyphen-separated items from the given list, skipping null values
75+
hyphenize(a_list)::
76+
std.join("-", std.filterMap(function(el) el != null, function(el) std.toString(el), a_list))
6677
}

common.hocon

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ oraclejdk8OnlyDebug : { downloads : { JAVA_HOME : ${jdks.oraclejdk8Debug} }}
3232
openjdk8 : { downloads : { JAVA_HOME : ${jdks.openjdk8} }}
3333

3434
oraclejdk11 : { downloads : { JAVA_HOME : ${jdks.oraclejdk11} }}
35-
oraclejdk16 : { downloads : { JAVA_HOME : ${jdks.oraclejdk16} }}
35+
oraclejdk17 : { downloads : { JAVA_HOME : ${jdks.oraclejdk17} }}
3636
openjdk11 : { downloads : { JAVA_HOME : ${jdks.openjdk11} }}
3737

3838
labsjdk-ce-11 : { downloads : { JAVA_HOME : ${jdks.labsjdk-ce-11} }}
3939
labsjdk-ee-11 : { downloads : { JAVA_HOME : ${jdks.labsjdk-ee-11} }}
40-
labsjdk-ce-16 : { downloads : { JAVA_HOME : ${jdks.labsjdk-ce-16} }}
41-
labsjdk-ee-16 : { downloads : { JAVA_HOME : ${jdks.labsjdk-ee-16} }}
42-
labsjdk-ce-16Debug : { downloads : { JAVA_HOME : ${jdks.labsjdk-ce-16Debug} }}
43-
labsjdk-ee-16Debug : { downloads : { JAVA_HOME : ${jdks.labsjdk-ee-16Debug} }}
40+
labsjdk-ce-17 : { downloads : { JAVA_HOME : ${jdks.labsjdk-ce-17} }}
41+
labsjdk-ee-17 : { downloads : { JAVA_HOME : ${jdks.labsjdk-ee-17} }}
42+
labsjdk-ce-17Debug : { downloads : { JAVA_HOME : ${jdks.labsjdk-ce-17Debug} }}
43+
labsjdk-ee-17Debug : { downloads : { JAVA_HOME : ${jdks.labsjdk-ee-17Debug} }}
4444

4545
common : ${mx} ${deps.common} {
4646
catch_files : [
@@ -169,7 +169,7 @@ svm-common-windows-jdk11: ${svm-common} ${windows-amd64} ${devkits.windows-jdk11
169169
timelimit: "45:00"
170170
}
171171

172-
svm-common-windows-jdk16: ${svm-common} ${windows-amd64} ${devkits.windows-jdk16} {
172+
svm-common-windows-jdk17: ${svm-common} ${windows-amd64} ${devkits.windows-jdk17} {
173173
timelimit: "45:00"
174174
}
175175

common.json

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,28 @@
22
"README": "This file contains definitions that are useful for the hocon and jsonnet CI files of multiple repositories.",
33

44
"jdks": {
5-
"openjdk8": {"name": "openjdk", "version": "8u302+02-jvmci-21.2-b02", "platformspecific": true },
6-
"oraclejdk8": {"name": "oraclejdk", "version": "8u301+05-jvmci-21.2-b02", "platformspecific": true },
7-
"oraclejdk8Debug": {"name": "oraclejdk", "version": "8u301+05-jvmci-21.2-b02-fastdebug", "platformspecific": true },
5+
"openjdk8": {"name": "openjdk", "version": "8u302+06-jvmci-21.3-b02", "platformspecific": true },
6+
"oraclejdk8": {"name": "oraclejdk", "version": "8u311+06-jvmci-21.3-b02", "platformspecific": true },
7+
"oraclejdk8Debug": {"name": "oraclejdk", "version": "8u311+06-jvmci-21.3-b02-fastdebug", "platformspecific": true },
88

99
"openjdk11": {"name": "openjdk", "version": "11.0.11+9", "platformspecific": true },
1010
"oraclejdk11": {"name": "oraclejdk", "version": "11.0.11+9", "platformspecific": true },
11-
"labsjdk-ce-11": {"name": "labsjdk", "version": "ce-11.0.11+8-jvmci-21.2-b02", "platformspecific": true },
12-
"labsjdk-ee-11": {"name": "labsjdk", "version": "ee-11.0.11+9-jvmci-21.2-b02", "platformspecific": true },
11+
"labsjdk-ce-11": {"name": "labsjdk", "version": "ce-11.0.12+5-jvmci-21.3-b01", "platformspecific": true },
12+
"labsjdk-ee-11": {"name": "labsjdk", "version": "ee-11.0.13+6-jvmci-21.3-b02", "platformspecific": true },
1313

14-
"oraclejdk16": {"name": "oraclejdk", "version": "16.0.1+4", "platformspecific": true },
15-
"labsjdk-ce-16": {"name": "labsjdk", "version": "ce-16.0.2+4-jvmci-21.2-b02", "platformspecific": true },
16-
"labsjdk-ce-16Debug": {"name": "labsjdk", "version": "ce-16.0.2+4-jvmci-21.2-b02-debug", "platformspecific": true },
17-
"labsjdk-ee-16": {"name": "labsjdk", "version": "ee-16.0.2+4-jvmci-21.2-b02", "platformspecific": true },
18-
"labsjdk-ee-16Debug": {"name": "labsjdk", "version": "ee-16.0.2+4-jvmci-21.2-b02-debug", "platformspecific": true }
14+
"oraclejdk17": {"name": "oraclejdk", "version": "17.0.1+2", "platformspecific": true },
15+
"labsjdk-ce-17": {"name": "labsjdk", "version": "ce-17+35-jvmci-21.3-b02", "platformspecific": true },
16+
"labsjdk-ce-17Debug": {"name": "labsjdk", "version": "ce-17+35-jvmci-21.3-b02-debug", "platformspecific": true },
17+
"labsjdk-ee-17": {"name": "labsjdk", "version": "ee-17.0.1+7-jvmci-21.3-b02", "platformspecific": true },
18+
"labsjdk-ee-17Debug": {"name": "labsjdk", "version": "ee-17.0.1+7-jvmci-21.3-b02-debug", "platformspecific": true }
1919
},
2020

2121
"COMMENT" : "The devkits versions reflect those used to build the JVMCI JDKs (e.g., see devkit_platform_revisions in <jdk>/make/conf/jib-profiles.js)",
2222
"devkits": {
2323
"windows-oraclejdk8": { "packages" : { "devkit:VS2017-15.9.16+1" : "==0" }},
2424
"windows-openjdk8": { "packages" : { "devkit:VS2017-15.9.16+1" : "==0" }},
2525
"windows-jdk11": { "packages" : { "devkit:VS2017-15.9.24+1" : "==0" }},
26-
"windows-jdk16": { "packages" : { "devkit:VS2019-16.7.2+1" : "==1" }}
26+
"windows-jdk17": { "packages" : { "devkit:VS2019-16.9.3+1" : "==0" }}
2727
},
2828
"deps": {
2929
"common": {
@@ -32,7 +32,7 @@
3232
"MX_PYTHON": "python3"
3333
},
3434
"packages": {
35-
"pip:logilab-common ": "==1.4.4",
35+
"pip:logilab-common": "==1.4.4",
3636
"pip:pylint": "==1.9.3",
3737
"pip:ninja_syntax": "==1.7.2"
3838
}
@@ -83,6 +83,7 @@
8383
},
8484
"sulong": {
8585
"deps": {
86+
"common": {},
8687
"linux": {
8788
"packages": {
8889
"cmake": "==3.15.2"
@@ -100,5 +101,29 @@
100101
}
101102
}
102103
}
104+
},
105+
"truffleruby": {
106+
"deps": {
107+
"common": {},
108+
"linux": {
109+
"packages": {
110+
"ruby": "==2.6.3"
111+
}
112+
},
113+
"darwin": {}
114+
}
115+
},
116+
"graalnodejs": {
117+
"deps": {
118+
"common": {},
119+
"linux": {
120+
"packages": {
121+
"binutils": "==2.23.2",
122+
"gcc": "==8.3.0",
123+
"cmake": "==3.15.2"
124+
}
125+
},
126+
"darwin": {}
127+
}
103128
}
104129
}

0 commit comments

Comments
 (0)