Skip to content

Commit 6e49b4a

Browse files
committed
Merge commit '353ee2b2b8ef6a4927e24612f727d3b268f96271' into moe-svm
2 parents 597ca77 + 353ee2b commit 6e49b4a

File tree

2,825 files changed

+100550
-36118
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,825 files changed

+100550
-36118
lines changed

.github/workflows/main.yml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,27 @@ on:
55
paths-ignore:
66
- '.travis.yml'
77
- '.github/workflows/quarkus.yml'
8+
- '**.md'
89
pull_request:
910
paths-ignore:
1011
- '.travis.yml'
1112
- '.github/workflows/quarkus.yml'
13+
- '**.md'
1214
workflow_dispatch: []
1315

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+
1429
env:
1530
LANG: en_US.UTF-8
1631
MX_GIT_CACHE: refcache
@@ -99,13 +114,16 @@ jobs:
99114
run: |
100115
mkdir jdk-dl
101116
${MX_PATH}/mx fetch-jdk --java-distribution ${JDK} --to jdk-dl --alias ${JAVA_HOME}
117+
- name: Update dependency cache
118+
if: ${{ contains(matrix.env.GATE, 'debug') || contains(matrix.env.GATE, 'style') }}
119+
run: sudo apt update
102120
- name: Debug dependencies
103121
if: ${{ contains(matrix.env.GATE, 'debug') }}
104122
run: sudo apt install gdb
105123
- name: Style dependencies
106124
if: ${{ contains(matrix.env.GATE, 'style') }}
107125
run: |
108-
sudo apt install python-pip
126+
sudo apt install python-pip python-setuptools
109127
sudo pip install astroid==1.1.0
110128
sudo pip install pylint==1.1.0
111129
- name: Build GraalVM and run gate

.github/workflows/quarkus.yml

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ env:
1616
DB_USER: hibernate_orm_test
1717
DB_PASSWORD: hibernate_orm_test
1818
DB_NAME: hibernate_orm_test
19-
NATIVE_TEST_MAVEN_OPTS: "-B --settings ${QUARKUS_PATH}/.github/mvn-settings.xml --fail-at-end -Dtest-containers -Dstart-containers -Dnative-image.xmx=5g -Dnative -Dnative.surefire.skip -Dformat.skip -Dno-descriptor-tests install -DskipDocs"
19+
COMMON_MAVEN_ARGS: "-e -B --settings .github/mvn-settings.xml --fail-at-end"
20+
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"
2021
MX_GIT_CACHE: refcache
2122
MX_PATH: ${{ github.workspace }}/mx
2223
JAVA_HOME: ${{ github.workspace }}/jdk
@@ -41,7 +42,7 @@ jobs:
4142
path: ${{ env.MX_PATH }}
4243
- name: Get latest quarkus release
4344
run: |
44-
export QUARKUS_VERSION=$(curl https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/maven-metadata.xml | awk -F"[<>]" '/latest/ {print $3}')
45+
export QUARKUS_VERSION=main #$(curl https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/maven-metadata.xml | awk -F"[<>]" '/latest/ {print $3}')
4546
echo Getting Quarkus $QUARKUS_VERSION
4647
curl --output quarkus.tgz -sL https://api.github.com/repos/quarkusio/quarkus/tarball/$QUARKUS_VERSION
4748
mkdir ${QUARKUS_PATH}
@@ -107,48 +108,45 @@ jobs:
107108
matrix: ${{ fromJson(needs.build-quarkus-and-graalvm.outputs.matrix) }}
108109
steps:
109110
- name: Download GraalVM build
111+
if: startsWith(matrix.os-name, 'ubuntu')
110112
uses: actions/download-artifact@v1
111113
with:
112114
name: graalvm
113115
path: .
114116
- name: Extract GraalVM build
117+
if: startsWith(matrix.os-name, 'ubuntu')
115118
shell: bash
116119
run: tar -xzvf graalvm.tgz -C $(dirname ${GRAALVM_HOME})
117120
- name: Get latest quarkus release
121+
if: startsWith(matrix.os-name, 'ubuntu')
118122
run: |
119-
export QUARKUS_VERSION=$(curl https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/maven-metadata.xml | awk -F"[<>]" '/latest/ {print $3}')
123+
export QUARKUS_VERSION=main #$(curl https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/maven-metadata.xml | awk -F"[<>]" '/latest/ {print $3}')
120124
echo Getting Quarkus $QUARKUS_VERSION
121125
curl --output quarkus.tgz -sL https://api.github.com/repos/quarkusio/quarkus/tarball/$QUARKUS_VERSION
122126
mkdir ${QUARKUS_PATH}
123127
tar xf quarkus.tgz -C ${QUARKUS_PATH} --strip-components=1
124128
- name: Reclaim Disk Space
129+
if: startsWith(matrix.os-name, 'ubuntu')
125130
run: ${QUARKUS_PATH}/.github/ci-prerequisites.sh
126131
- name: Download Maven Repo
132+
if: startsWith(matrix.os-name, 'ubuntu')
127133
uses: actions/download-artifact@v1
128134
with:
129135
name: maven-repo
130136
path: .
131137
- name: Extract Maven Repo
138+
if: startsWith(matrix.os-name, 'ubuntu')
132139
shell: bash
133140
run: tar -xzf maven-repo.tgz -C ~
134141
- name: Build with Maven
142+
if: startsWith(matrix.os-name, 'ubuntu')
135143
env:
136144
TEST_MODULES: ${{matrix.test-modules}}
137-
CATEGORY: ${{matrix.category}}
138145
run: |
139146
cd ${QUARKUS_PATH}
140147
export JAVA_HOME=${GRAALVM_HOME}
141148
${GRAALVM_HOME}/bin/native-image --version
142-
for i in $TEST_MODULES
143-
do modules+=("integration-tests/$i"); done
144-
IFS=,
145-
eval mvn -pl "${modules[*]}" $NATIVE_TEST_MAVEN_OPTS
146-
# add the 'simple with spaces' project to the run of 'Misc1' by executing it explicitly
147-
# done because there is no good way to pass strings with empty values to the previous command
148-
# so this hack is as good as any
149-
if [ "$CATEGORY" == "Misc1" ]; then
150-
mvn -Dnative -B --settings ${GITHUB_WORKSPACE}/quarkus/.github/mvn-settings.xml -f 'integration-tests/simple with space/' verify
151-
fi
149+
./mvnw $COMMON_MAVEN_ARGS -f integration-tests -pl "$TEST_MODULES" $NATIVE_TEST_MAVEN_ARGS
152150
- name: Prepare failure archive (if maven failed)
153151
if: failure()
154152
shell: bash

THIRD_PARTY_LICENSE.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
447447

448448
================================================================================
449449

450-
ANTLR 4.7.2
450+
ANTLR 4.9.2
451451

452452
Include the following verbatim in the documentation:
453453

@@ -598,7 +598,6 @@ Copyright (c) 2008, Yahoo! Inc. All rights reserved.
598598
Code licensed under the BSD License:
599599
http://www.antlr.org/license.html
600600

601-
[The BSD License]
602601
Copyright (c) 2012 Terence Parr and Sam Harwell
603602
All rights reserved.
604603

@@ -615,7 +614,6 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
615614
org.antlr » ST4 4.1
616615
COPYRIGHT and LICENSE:
617616

618-
[The "BSD license"]
619617
Copyright (c) 2011-2013 Terence Parr
620618
All rights reserved.
621619

bench-common.libsonnet

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
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: self.generated_name,
13+
suite:: error "'suite' must be set to generate job name",
14+
timelimit: error "build 'timelimit' is not set for "+ self.name +"!",
15+
local ol8_image = self.ci_resources.infra.ol8_bench_image,
16+
docker+: {
17+
"image": ol8_image,
18+
"mount_modules": true
19+
},
20+
should_use_hwloc:: std.objectHasAll(self, "is_numa") && self.is_numa && std.length(std.find("bench", self.targets)) > 0,
21+
},
22+
23+
bench_hw:: {
24+
_bench_machine:: {
25+
targets+: ["bench"],
26+
machine_name:: error "machine_name must be set!",
27+
local _machine_name = self.machine_name,
28+
capabilities+: [_machine_name],
29+
local GR26994_ActiveProcessorCount = "-Dnative-image.benchmark.extra-run-arg=-XX:ActiveProcessorCount="+std.toString(self.threads_per_node), # remove once GR-26994 is fixed
30+
environment+: { "MACHINE_NAME": _machine_name, "GR26994": GR26994_ActiveProcessorCount },
31+
numa_nodes:: [],
32+
is_numa:: std.length(self.numa_nodes) > 0,
33+
num_threads:: error "num_threads must bet set!",
34+
threads_per_node:: if self.is_numa then self.num_threads / std.length(self.numa_nodes) else self.num_threads,
35+
},
36+
37+
x52:: common.linux + common.amd64 + self._bench_machine + {
38+
machine_name:: "x52",
39+
capabilities+: ["no_frequency_scaling", "tmpfs25g"],
40+
numa_nodes:: [0, 1],
41+
default_numa_node:: 0,
42+
num_threads:: 72
43+
},
44+
xgene3:: common.linux + common.aarch64 + self._bench_machine + {
45+
machine_name:: "xgene3",
46+
capabilities+: [],
47+
num_threads:: 32
48+
},
49+
a12c:: common.linux + common.aarch64 + self._bench_machine + {
50+
machine_name:: "a12c",
51+
capabilities+: ["no_frequency_scaling", "tmpfs25g"],
52+
numa_nodes:: [0, 1],
53+
default_numa_node:: 0,
54+
num_threads:: 160
55+
}
56+
},
57+
58+
hwlocIfNuma(numa, cmd, node=0)::
59+
if numa then
60+
["hwloc-bind", "--cpubind", "node:"+node, "--membind", "node:"+node, "--"] + cmd
61+
else
62+
cmd,
63+
64+
parallelHwloc(cmd_node0, cmd_node1)::
65+
// Returns a list of commands that will run cmd_nod0 on NUMA node 0
66+
// concurrently with cmd_node1 on NUMA node 1 and then wait for both to complete.
67+
[
68+
$.hwlocIfNuma(true, cmd_node0, node=0) + ["&"],
69+
$.hwlocIfNuma(true, cmd_node1, node=1) + ["&"],
70+
["wait"]
71+
]
72+
}

ci-resources.libsonnet

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// location of resources that can be easily overwritten
2+
{
3+
infra: {
4+
ol8_bench_image: "<ol8_bench_image>",
5+
benchmarking_config_repo: "<benchmarking_config_repo>",
6+
7+
notify_nexus_deploy: "<notify_nexus_deploy>",
8+
notify_releaser_service: "<notify_releaser_service>"
9+
}
10+
}

ci.hocon

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ include "compiler/ci_common/bench-hwloc.hocon"
4242
include "compiler/ci_common/bench-weekly.hocon"
4343
include "compiler/ci_common/x52.hocon"
4444
include "compiler/ci_common/x52-jfr.hocon"
45+
include "compiler/ci_common/x82.hocon"
4546
include "compiler/ci_common/bench-aarch64.hocon"
4647

4748
# C1 & C2 configs

ci.jsonnet

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# Compiler
2+
local compiler = import 'compiler/ci.jsonnet';
3+
14
# GraalWasm
25
local wasm = import 'wasm/ci.jsonnet';
36

@@ -6,10 +9,19 @@ local espresso = import 'espresso/ci.jsonnet';
69

710
# Sulong
811
local sulong = import 'sulong/ci.jsonnet';
12+
13+
# Add a guard to `build` that prevents it from running in the gate
14+
# for a PR that only touches *.md flles.
15+
local add_markdown_guard(build) = build + {
16+
guard+: {
17+
excludes+: ["**.md", "docs/**"]
18+
}
19+
};
20+
921
{
10-
# ensure that public entries in common.jsonnet can be resolved
22+
# ensure that entries in common.jsonnet can be resolved
1123
_checkCommon: (import 'common.jsonnet'),
24+
ci_resources:: (import 'ci-resources.libsonnet'),
1225
specVersion: "2",
13-
builds: wasm.builds + espresso.builds + sulong.builds
26+
builds: [add_markdown_guard(b) for b in (compiler.builds + wasm.builds + espresso.builds + sulong.builds)]
1427
}
15-

ci_includes/publish-javadoc.hocon

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ builds += [
3838
["git", "diff", "--staged", "--quiet", "||", "git", "commit", "-m", [ "echo", "Javadoc as of", [ "date", "+%Y/%m/%d" ] ] ],
3939
["git", "push", "origin", "HEAD"],
4040
],
41-
targets : [post-merge],
41+
targets : ["on-demand"],
4242
name: "graal-publish-javadoc"
4343
}
4444
]

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.json

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
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": "8u292+07-jvmci-21.1-b03", "platformspecific": true },
6-
"oraclejdk8": {"name": "oraclejdk", "version": "8u291+08-jvmci-21.1-b03", "platformspecific": true },
7-
"oraclejdk8Debug": {"name": "oraclejdk", "version": "8u291+08-jvmci-21.1-b03-fastdebug", "platformspecific": true },
5+
"openjdk8": {"name": "openjdk", "version": "8u302+07-jvmci-21.2-b08", "platformspecific": true },
6+
"oraclejdk8": {"name": "oraclejdk", "version": "8u301+09-jvmci-21.2-b08", "platformspecific": true },
7+
"oraclejdk8Debug": {"name": "oraclejdk", "version": "8u301+09-jvmci-21.2-b08-fastdebug", "platformspecific": true },
88

9-
"openjdk11": {"name": "openjdk", "version": "11.0.3+7", "platformspecific": true },
10-
"oraclejdk11": {"name": "oraclejdk", "version": "11.0.6+8", "platformspecific": true },
11-
"labsjdk-ce-11": {"name": "labsjdk", "version": "ce-11.0.11+7-jvmci-21.1-b03", "platformspecific": true },
12-
"labsjdk-ee-11": {"name": "labsjdk", "version": "ee-11.0.11+8-jvmci-21.1-b03", "platformspecific": true },
9+
"openjdk11": {"name": "openjdk", "version": "11.0.11+9", "platformspecific": true },
10+
"oraclejdk11": {"name": "oraclejdk", "version": "11.0.11+9", "platformspecific": true },
11+
"labsjdk-ce-11": {"name": "labsjdk", "version": "ce-11.0.12+6-jvmci-21.2-b08", "platformspecific": true },
12+
"labsjdk-ee-11": {"name": "labsjdk", "version": "ee-11.0.12+8-jvmci-21.2-b08", "platformspecific": true },
1313

1414
"oraclejdk16": {"name": "oraclejdk", "version": "16.0.1+4", "platformspecific": true },
15-
"labsjdk-ce-16": {"name": "labsjdk", "version": "ce-16+36-jvmci-21.1-b03", "platformspecific": true },
16-
"labsjdk-ce-16Debug": {"name": "labsjdk", "version": "ce-16+36-jvmci-21.1-b03-debug", "platformspecific": true },
17-
"labsjdk-ee-16": {"name": "labsjdk", "version": "ee-16+36-jvmci-21.1-b03", "platformspecific": true },
18-
"labsjdk-ee-16Debug": {"name": "labsjdk", "version": "ee-16+36-jvmci-21.1-b03-debug", "platformspecific": true }
15+
"labsjdk-ce-16": {"name": "labsjdk", "version": "ce-16.0.2+7-jvmci-21.2-b08", "platformspecific": true },
16+
"labsjdk-ce-16Debug": {"name": "labsjdk", "version": "ce-16.0.2+7-jvmci-21.2-b08-debug", "platformspecific": true },
17+
"labsjdk-ee-16": {"name": "labsjdk", "version": "ee-16.0.2+7-jvmci-21.2-b08", "platformspecific": true },
18+
"labsjdk-ee-16Debug": {"name": "labsjdk", "version": "ee-16.0.2+7-jvmci-21.2-b08-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)",
@@ -95,7 +95,8 @@
9595
},
9696
"windows": {
9797
"packages": {
98-
"msvc": "==10.0"
98+
"msvc": "==10.0",
99+
"pip:cmake": "==3.18.4"
99100
}
100101
}
101102
}

0 commit comments

Comments
 (0)