Skip to content

Commit 1c7168d

Browse files
authored
Merge branch 'master' into vcalvez/github_ci
2 parents 95a72e4 + ec23baa commit 1c7168d

File tree

137 files changed

+6930
-3806
lines changed

Some content is hidden

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

137 files changed

+6930
-3806
lines changed

README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# GraalPy, the GraalVM Implementation of Python
22

33
[![](https://img.shields.io/badge/maven-org.graalvm.polyglot/python-orange)](https://central.sonatype.com/artifact/org.graalvm.polyglot/python)
4-
[![](https://img.shields.io/badge/pyenv-graalpy-blue)](#start-replacing-cpython-with-graalpy)
4+
[![](https://img.shields.io/badge/pyenv-graalpy-blue)](#start-replacing-cpython-with-graalpy)
55
</a> [![Join Slack][badge-slack]][slack] [![GraalVM on Twitter][badge-twitter]][twitter] [![License](https://img.shields.io/badge/license-UPL-green)](#license)
66

7-
GraalPy is a high-performance implementation of the Python language for the JVM built on [GraalVM](https://www.graalvm.org/python).
8-
GraalPy is a Python 3.11 compliant runtime.
7+
GraalPy is a high-performance implementation of the Python language for the JVM built on [GraalVM](https://www.graalvm.org/python).
8+
GraalPy is a Python 3.12 compliant runtime.
99
It has first-class support for embedding in Java and can turn Python applications into fast, standalone binaries.
1010
GraalPy is ready for production running pure Python code and has experimental support for many popular native extension modules.
1111

@@ -93,9 +93,9 @@ Thanks to our integration with GraalVM Native Image, we can deploy Python applic
9393
pyenv shell graalpy-25.0.1
9494
```
9595
> NOTE: There will be a delay between GraalPy release and its availability on Pyenv. Make sure to update Pyenv.
96-
96+
9797
Alternatively, you can download a compressed GraalPy installation file from [GitHub releases](https://github.com/oracle/graalpython/releases).
98-
98+
9999
1. Find the download that matches the pattern _graalpy-XX.Y.Z-linux-amd64.tar.gz_ or _graalpy-XX.Y.Z-linux-aarch64.tar.gz_ (depending on your platform) and download.
100100
2. Uncompress the file and update your `PATH` environment variable to include the _graalpy-XX.Y.Z-linux-amd64/bin_ (or _graalpy-XX.Y.Z-linux-aarch64/bin_) directory.
101101

@@ -112,8 +112,8 @@ Thanks to our integration with GraalVM Native Image, we can deploy Python applic
112112
> NOTE: There will be a delay between GraalPy release and its availability on Pyenv. Make sure to update Pyenv.
113113
114114
Alternatively, you can download a compressed GraalPy installation file from [GitHub releases](https://github.com/oracle/graalpython/releases).
115-
116-
1. Find the download that matches the pattern _graalpy-XX.Y.Z-macos-amd64.tar.gz_ or _graalpy-XX.Y.Z-macos-aarch64.tar.gz_ (depending on your platform) and download.
115+
116+
1. Find the download that matches the pattern _graalpy-XX.Y.Z-macos-amd64.tar.gz_ or _graalpy-XX.Y.Z-macos-aarch64.tar.gz_ (depending on your platform) and download.
117117
2. Remove the quarantine attribute.
118118
```bash
119119
sudo xattr -r -d com.apple.quarantine /path/to/graalpy
@@ -138,7 +138,7 @@ Thanks to our integration with GraalVM Native Image, we can deploy Python applic
138138
> NOTE: There will be a delay between GraalPy release and its availability on Pyenv. Make sure to update Pyenv.
139139

140140
Alternatively, you can download a compressed GraalPy installation file from [GitHub releases](https://github.com/oracle/graalpython/releases).
141-
141+
142142
1. Find the download that matches the pattern _graalpy-XX.Y.Z-windows-amd64.tar.gz_ and download.
143143
2. Uncompress the file and update your `PATH` variable to include to the _graalpy-XX.Y.Z-windows-amd64/bin_ directory.
144144

@@ -165,7 +165,7 @@ GraalPy provides a [special mode](docs/user/Python-on-JVM.md) to facilitate migr
165165
To run Jython scripts, you need to use a GraalPy distribution running on the JVM so you can access Java classes from Python scripts.
166166

167167
* Linux
168-
168+
169169
1. Find and download a compressed GraalPy installation file from [GitHub releases](https://github.com/oracle/graalpython/releases) that matches the pattern _graalpy-jvm-XX.Y.Z-linux-amd64.tar.gz_ or _graalpy-jvm-XX.Y.Z-linux-aarch64.tar.gz_ (depending on your platform) and download.
170170
2. Uncompress the file and update your `PATH` environment variable to include the _graalpy-jvm-XX.Y.Z-linux-amd64/bin_ (or _graalpy-jvm-XX.Y.Z-linux-aarch64/bin_) directory.
171171
3. Run your scripts with `graalpy --python.EmulateJython`.

ci.jsonnet

Lines changed: 10 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -75,16 +75,17 @@
7575
local bench_task(bench=null, benchmarks=BENCHMARKS) = super.bench_task(bench=bench, benchmarks=benchmarks),
7676
local bisect_bench_task = self.bisect_bench_task,
7777

78-
local bytecode_dsl_env = task_spec({
78+
// Manual interpreter variants (DSL disabled)
79+
local manual_interpreter_env = task_spec({
7980
environment +: {
80-
BYTECODE_DSL_INTERPRETER: "true"
81+
BYTECODE_DSL_INTERPRETER: "false"
8182
},
8283
}),
83-
local bytecode_dsl_gate(name) = bytecode_dsl_env + task_spec({
84+
local manual_interpreter_gate(name) = manual_interpreter_env + task_spec({
8485
tags :: name,
8586
}),
86-
local bytecode_dsl_bench = bytecode_dsl_env + task_spec({
87-
name_suffix +:: ["bytecode-dsl"],
87+
local manual_interpreter_bench = manual_interpreter_env + task_spec({
88+
name_suffix +:: ["manual-interpreter"],
8889
}),
8990

9091
// -----------------------------------------------------------------------------------------------------------------
@@ -95,7 +96,6 @@
9596
local GPY_JVM21_STANDALONE = "graalpy-jvm21-standalone",
9697
local GPY_JVM_STANDALONE = "graalpy-jvm-standalone",
9798
local GPY_NATIVE_STANDALONE = "graalpy-native-standalone",
98-
local GPY_NATIVE_BYTECODE_DSL_STANDALONE = "graalpy-native-bc-dsl-standalone",
9999
local GPYEE_JVM_STANDALONE = "graalpy-ee-jvm-standalone",
100100
local GPYEE_NATIVE_STANDALONE = "graalpy-ee-native-standalone",
101101
local GRAAL_JDK_LATEST = "graal-jdk-latest",
@@ -117,7 +117,7 @@
117117
"darwin:aarch64:jdk-latest" : tier3 + provide(GPY_JVM_STANDALONE),
118118
"windows:amd64:jdk-latest" : tier3 + provide(GPY_JVM_STANDALONE),
119119
}),
120-
"python-unittest-bytecode-dsl": gpgate + platform_spec(no_jobs) + bytecode_dsl_gate("python-unittest") + platform_spec({
120+
"python-unittest-manual-interpreter": gpgate + platform_spec(no_jobs) + manual_interpreter_gate("python-unittest") + platform_spec({
121121
"linux:amd64:jdk-latest" : daily + t("01:00:00"),
122122
"linux:aarch64:jdk-latest" : daily + t("01:00:00"),
123123
"darwin:aarch64:jdk-latest" : daily + t("01:00:00"),
@@ -171,7 +171,7 @@
171171
"darwin:aarch64:jdk-latest" : tier3 + require(GRAAL_JDK_LATEST),
172172
"windows:amd64:jdk-latest" : tier3 + require(GRAAL_JDK_LATEST),
173173
}),
174-
"python-junit-bytecode-dsl": gpgate + platform_spec(no_jobs) + bytecode_dsl_gate("python-junit") + platform_spec({
174+
"python-junit-manual-interpreter": gpgate + platform_spec(no_jobs) + manual_interpreter_gate("python-junit") + platform_spec({
175175
"linux:amd64:jdk-latest" : tier3 + require(GRAAL_JDK_LATEST),
176176
}),
177177
"python-junit-maven": gpgate_maven + platform_spec(no_jobs) + platform_spec({
@@ -205,33 +205,21 @@
205205
],
206206
}),
207207
}),
208-
"python-pgo-profile-bytecode-dsl": gpgate_ee + bytecode_dsl_env + platform_spec(no_jobs) + platform_spec({
209-
"linux:amd64:jdk-latest" : post_merge + t("01:30:00") + task_spec({
210-
run: [["mx", "python-native-pgo"]],
211-
logs+: [
212-
"default-bytecode-dsl.iprof.gz",
213-
"default-bytecode-dsl.lcov",
214-
],
215-
}),
216-
}),
217208
"python-svm-unittest": gpgate + platform_spec(no_jobs) + platform_spec({
218209
"linux:amd64:jdk-latest" : tier2 + require(GPY_NATIVE_STANDALONE),
219210
"linux:aarch64:jdk-latest" : tier3 + require(GPY_NATIVE_STANDALONE),
220211
"darwin:aarch64:jdk-latest" : tier3 + require(GPY_NATIVE_STANDALONE),
221212
"windows:amd64:jdk-latest" : tier3 + require(GPY_NATIVE_STANDALONE) + batches(2),
222213
}),
223-
"python-svm-unittest-bytecode-dsl": gpgate + platform_spec(no_jobs) + bytecode_dsl_gate("python-svm-unittest") + platform_spec({
224-
"linux:amd64:jdk-latest" : tier2 + provide(GPY_NATIVE_BYTECODE_DSL_STANDALONE),
214+
"python-svm-unittest-manual-interpreter": gpgate + platform_spec(no_jobs) + manual_interpreter_gate("python-svm-unittest") + platform_spec({
215+
"linux:amd64:jdk-latest" : tier2,
225216
}),
226217
"python-tagged-unittest": gpgate + require(GPY_NATIVE_STANDALONE) + batches(TAGGED_UNITTESTS_SPLIT) + platform_spec(no_jobs) + platform_spec({
227218
"linux:amd64:jdk-latest" : tier2,
228219
"linux:aarch64:jdk-latest" : tier3,
229220
"darwin:aarch64:jdk-latest" : tier3,
230221
"windows:amd64:jdk-latest" : daily + t("02:00:00"),
231222
}),
232-
"python-tagged-unittest-bytecode-dsl": gpgate + require(GPY_NATIVE_BYTECODE_DSL_STANDALONE) + batches(TAGGED_UNITTESTS_SPLIT) + bytecode_dsl_gate("python-tagged-unittest") + platform_spec(no_jobs) + platform_spec({
233-
"linux:amd64:jdk-latest" : tier3,
234-
}),
235223
"python-graalvm": gpgate + platform_spec(no_jobs) + platform_spec({
236224
"linux:amd64:jdk-latest" : tier3 + require(GRAAL_JDK_LATEST),
237225
"linux:aarch64:jdk-latest" : tier3 + require(GRAAL_JDK_LATEST),
@@ -289,7 +277,6 @@
289277
},
290278

291279
local need_pgo = task_spec({runAfter: ["python-pgo-profile-post_merge-linux-amd64-jdk-latest"]}),
292-
local need_bc_pgo = task_spec({runAfter: ["python-pgo-profile-bytecode-dsl-post_merge-linux-amd64-jdk-latest"]}),
293280
local forks_warmup = forks("./mx.graalpython/warmup-fork-counts.json"),
294281
local forks_meso = forks("meso.json"),
295282
local raw_results = task_spec({
@@ -316,12 +303,6 @@
316303
"vm_name:pypy" : {"linux:amd64:jdk-latest" : on_demand + t("04:00:00")},
317304
}),
318305
for bench in ["micro", "meso", "macro"]
319-
} + {
320-
[bench + "-bytecode-dsl"]: bench_task(bench) + bytecode_dsl_bench + platform_spec(no_jobs) + bench_variants({
321-
"vm_name:graalvm_ee_default_bc_dsl" : {"linux:amd64:jdk-latest" : daily + t("08:00:00")},
322-
"vm_name:graalpython_enterprise_bc_dsl" : {"linux:amd64:jdk-latest" : daily + t("08:00:00")},
323-
}),
324-
for bench in ["micro", "meso", "macro"]
325306
} + {
326307
[bench]: bench_task(bench) + platform_spec(no_jobs) + bench_variants({
327308
"vm_name:graalvm_ce_default" : {"linux:amd64:jdk-latest" : on_demand + t("08:00:00")},
@@ -351,12 +332,6 @@
351332
"vm_name:cpython" : {"linux:amd64:jdk-latest" : weekly + t("02:00:00")},
352333
}),
353334
for bench in ["micro_small", "meso_small"]
354-
} + {
355-
[bench + "-bytecode-dsl"]: bench_task(bench) + bytecode_dsl_bench + platform_spec(no_jobs) + bench_variants({
356-
"vm_name:graalvm_ee_default_interpreter_bc_dsl" : {"linux:amd64:jdk-latest" : daily + t("04:00:00")},
357-
"vm_name:graalpython_enterprise_interpreter_bc_dsl" : {"linux:amd64:jdk-latest" : weekly + t("04:00:00")},
358-
}),
359-
for bench in ["micro_small", "meso_small"]
360335
} + {
361336
// benchmarks executed via Java embedding driver
362337
[bench]: bench_task(bench) + platform_spec(no_jobs) + bench_variants({
@@ -384,25 +359,13 @@
384359
"vm_name:pypy" : {"linux:amd64:jdk-latest" : on_demand + t("01:00:00")},
385360
}),
386361
for bench in ["warmup"]
387-
} + {
388-
[bench + "-bytecode-dsl"]: bench_task(bench) + bytecode_dsl_bench + platform_spec(no_jobs) + bench_variants({
389-
"vm_name:graalvm_ee_default_bc_dsl" : {"linux:amd64:jdk-latest" : on_demand + t("05:00:00") + forks_warmup},
390-
"vm_name:graalpython_enterprise_bc_dsl" : {"linux:amd64:jdk-latest" : on_demand + t("05:00:00") + forks_warmup},
391-
}),
392-
for bench in ["warmup"]
393362
} + {
394363
[bench]: bench_task(bench) + platform_spec(no_jobs) + bench_variants({
395364
"vm_name:graalvm_ee_default_interpreter" : {"linux:amd64:jdk-latest" : post_merge + t("02:00:00") + need_pgo},
396365
"vm_name:graalpython_enterprise_interpreter" : {"linux:amd64:jdk-latest" : weekly + t("02:00:00")},
397366
"vm_name:cpython" : {"linux:amd64:jdk-latest" : weekly + t("01:00:00")},
398367
}),
399368
for bench in ["heap", "micro_small_heap"]
400-
} + {
401-
[bench + "-bytecode-dsl"]: bench_task(bench) + bytecode_dsl_bench + platform_spec(no_jobs) + bench_variants({
402-
"vm_name:graalvm_ee_default_interpreter_bc_dsl" : {"linux:amd64:jdk-latest" : post_merge + t("02:00:00") + need_bc_pgo},
403-
"vm_name:graalpython_enterprise_interpreter_bc_dsl" : {"linux:amd64:jdk-latest" : weekly + t("02:00:00")},
404-
}),
405-
for bench in ["heap", "micro_small_heap"]
406369
} + {
407370
// interop benchmarks only for graalpython, weekly is enough
408371
[bench]: bench_task(bench) + platform_spec(no_jobs) + bench_variants({
@@ -428,12 +391,6 @@
428391
"vm_name:pypy_launcher" : {"linux:amd64:jdk-latest" : on_demand + t("08:00:00")},
429392
}),
430393
for bench in ["pyperformance"]
431-
} + {
432-
// Bytecode DSL benchmarks with community benchmark suites for external numbers
433-
[bench + "-bytecode-dsl"]: bench_task(bench, PY_BENCHMARKS) + bytecode_dsl_bench + platform_spec(no_jobs) + raw_results + bench_variants({
434-
"vm_name:graalvm_ee_default_bc_dsl" : {"linux:amd64:jdk-latest" : weekly + t("08:00:00")},
435-
}),
436-
for bench in ["pyperformance"]
437394
} + {
438395
// benchmarks with community benchmark suites for external numbers
439396
[bench]: bench_task(bench, PY_BENCHMARKS) + platform_spec(no_jobs) + raw_results + bench_variants({

0 commit comments

Comments
 (0)