diff --git a/README.md b/README.md
index f7ebf55ae6..470f7566eb 100644
--- a/README.md
+++ b/README.md
@@ -35,7 +35,7 @@ Also, review the [Code of Conduct](https://www.graalvm.org/community/conduct/) f
* Support for native extension modules is considered experimental, but you can already install [packages](docs/user/Python-Runtime.md#installing-packages) like *NumPy*, *PyTorch*, or *Tensorflow*; run [Hugging Face](https://huggingface.co/) models like *Stable Diffusion* or *GPT*

We run the tests of the [most depended on PyPI packages](https://libraries.io/pypi) every day.
-For 97% of those packages a recent version can be installed on GraalPy and GraalPy passes over 60% of all tests of all packages combined.
+For 93% of those 600 packages a recent version can be installed on GraalPy and GraalPy passes over 65% of all tests of all packages combined.
We assume that CPython not passing 100% of all tests is due to problems in our infrastructure that may also affect GraalPy.
Packages where CPython fails all tests are marked as "not tested" for both CPython and GraalPy.
@@ -44,12 +44,10 @@ Packages where CPython fails all tests are marked as "not tested" for both CPyth
* Pure Python code is often faster than on CPython after JIT compilation
* C extension performance is near CPython, but varies depending on the specific interactions of native and Python code
-* GraalPy is ~4x faster than CPython on the official [Python Performance Benchmark Suite](https://pyperformance.readthedocs.io/)
+* GraalPy is geomean ~4x faster than CPython on the official [Python Performance Benchmark Suite](https://pyperformance.readthedocs.io/)

Benchmarks run via `pip install pyperformance && pyperformance run` on each of CPython and GraalPy.
-Harness and benchmarks were adapted by hand for Jython due to missing Python 3 support.
Each interpreter was installed via [pyenv](https://github.com/pyenv/pyenv).
-Geomean speedup was calculated against CPython on the intersection of benchmarks that run on all interpreters.
## Getting Started
diff --git a/ci/graal/common.json b/ci/graal/common.json
index ae9e8b0cbe..16949c40a8 100644
--- a/ci/graal/common.json
+++ b/ci/graal/common.json
@@ -4,7 +4,7 @@
"Jsonnet files should not include this file directly but use ci/common.jsonnet instead."
],
- "mx_version": "7.83.0",
+ "mx_version": "7.83.3",
"COMMENT.jdks": "When adding or removing JDKs keep in sync with JDKs in ci/common.jsonnet",
"jdks": {
diff --git a/docs/user/assets/mcd-dark.svg b/docs/user/assets/mcd-dark.svg
index d5275e7442..16aa4bd589 100644
--- a/docs/user/assets/mcd-dark.svg
+++ b/docs/user/assets/mcd-dark.svg
@@ -1,4 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/user/assets/mcd.svg b/docs/user/assets/mcd.svg
index c68997811f..c9d23bf5cf 100644
--- a/docs/user/assets/mcd.svg
+++ b/docs/user/assets/mcd.svg
@@ -1,4 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/user/assets/performance-dark.svg b/docs/user/assets/performance-dark.svg
index 7cd8bff8fe..b400dc9595 100644
--- a/docs/user/assets/performance-dark.svg
+++ b/docs/user/assets/performance-dark.svg
@@ -1,4 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/user/assets/performance.svg b/docs/user/assets/performance.svg
index f4485a1ddb..67a9c8d758 100644
--- a/docs/user/assets/performance.svg
+++ b/docs/user/assets/performance.svg
@@ -1,4 +1,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_audit.txt b/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_audit.txt
index 4850b3b9df..541043f221 100644
--- a/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_audit.txt
+++ b/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_audit.txt
@@ -5,3 +5,4 @@ test.test_audit.AuditTest.test_http @ linux-aarch64-github,linux-x86_64-github
test.test_audit.AuditTest.test_mmap @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github
test.test_audit.AuditTest.test_socket @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github
test.test_audit.AuditTest.test_sqlite3 @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github
+test.test_audit.AuditTest.test_sys_getframemodulename @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github
diff --git a/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_compile.txt b/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_compile.txt
index c315d1fe79..3475d6ad20 100644
--- a/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_compile.txt
+++ b/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_compile.txt
@@ -41,7 +41,7 @@ test.test_compile.TestSpecifics.test_literals_with_leading_zeroes @ darwin-arm64
test.test_compile.TestSpecifics.test_mangling @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_compile.TestSpecifics.test_multi_line_lambda_as_argument @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_compile.TestSpecifics.test_no_ending_newline @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
-test.test_compile.TestSpecifics.test_no_wraparound_jump @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64-github
+test.test_compile.TestSpecifics.test_no_wraparound_jump @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_compile.TestSpecifics.test_none_assignment @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_compile.TestSpecifics.test_none_keyword_arg @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_compile.TestSpecifics.test_null_terminated @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
diff --git a/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_nntplib.txt b/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_nntplib.txt
index 1be06dc551..9719c2b556 100644
--- a/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_nntplib.txt
+++ b/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_nntplib.txt
@@ -67,22 +67,22 @@ test.test_nntplib.NNTPv2Tests.test_stat @ darwin-arm64,linux-aarch64,linux-aarch
test.test_nntplib.NNTPv2Tests.test_too_long_lines @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_nntplib.NNTPv2Tests.test_welcome @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_nntplib.NNTPv2Tests.test_xover @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_capabilities @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_date @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_description @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_descriptions @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_group @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_help @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_list @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_list_active @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_newgroups @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_timeout @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_unknown_command @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_welcome @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_with_statement @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_xhdr @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_xover @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_zlogin @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
-test.test_nntplib.NetworkedNNTPTests.test_zzquit @ linux-aarch64-github,linux-x86_64-github,win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_capabilities @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_date @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_description @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_descriptions @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_group @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_help @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_list @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_list_active @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_newgroups @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_timeout @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_unknown_command @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_welcome @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_with_statement @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_xhdr @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_xover @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_zlogin @ win32-AMD64-github
+test.test_nntplib.NetworkedNNTPTests.test_zzquit @ win32-AMD64-github
test.test_nntplib.PublicAPITests.test_module_all_attribute @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_nntplib.SendReaderNNTPv2Tests.test_we_are_in_reader_mode_after_connect @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
diff --git a/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_sys.txt b/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_sys.txt
index 4a98d588e9..dd5366d53b 100644
--- a/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_sys.txt
+++ b/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_sys.txt
@@ -19,7 +19,7 @@ test.test_sys.SysModuleTest.test_exit @ darwin-arm64,linux-aarch64,linux-aarch64
test.test_sys.SysModuleTest.test_getdefaultencoding @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_sys.SysModuleTest.test_getfilesystemencoding @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_sys.SysModuleTest.test_getframe @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
-test.test_sys.SysModuleTest.test_getframemodulename @ linux-x86_64
+test.test_sys.SysModuleTest.test_getframemodulename @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64
test.test_sys.SysModuleTest.test_getrecursionlimit @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_sys.SysModuleTest.test_getwindowsversion @ win32-AMD64,win32-AMD64-github
test.test_sys.SysModuleTest.test_implementation @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
diff --git a/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_uuid.txt b/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_uuid.txt
index 78f72aad21..2bad4df227 100644
--- a/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_uuid.txt
+++ b/graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_uuid.txt
@@ -1,4 +1,3 @@
-test.test_uuid.TestInternalsWithoutExtModule.test_arp_getnode @ darwin-arm64
test.test_uuid.TestInternalsWithoutExtModule.test_find_mac_near_keyword @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_uuid.TestInternalsWithoutExtModule.test_find_under_heading @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_uuid.TestInternalsWithoutExtModule.test_find_under_heading_ipv6 @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
diff --git a/graalpython/python-venvlauncher/src/venvlauncher.c b/graalpython/python-venvlauncher/src/venvlauncher.c
index 8289e36e95..e69e0035f6 100644
--- a/graalpython/python-venvlauncher/src/venvlauncher.c
+++ b/graalpython/python-venvlauncher/src/venvlauncher.c
@@ -201,7 +201,7 @@ launchEnvironment(wchar_t *env, wchar_t *exe)
*** PROCESS CONTROLLER ***
\******************************************************************************/
-#define GRAAL_PYTHON_ARGS L"GRAAL_PYTHON_ARGS="
+#define GRAAL_PYTHON_VM_ARGS L"GRAAL_PYTHON_VM_ARGS="
#define GRAAL_PYTHON_EXE_ARG L"--python.Executable="
#define GRAAL_PYTHON_BASE_EXECUTABLE_ARG L"--python.BaseExecutable="
#define GRAAL_PYTHON_VENVLAUNCHER_COMMAND_ARG L"--python.VenvlauncherCommand="
@@ -376,7 +376,7 @@ wmain(int argc, wchar_t ** argv)
debug(L"base executable: %s\n", baseExecutable);
// calculate the size of the new environment, that is, the size of the previous environment
- // plus the size of the GRAAL_PYTHON_ARGS variable with the arguments to pass on
+ // plus the size of the GRAAL_PYTHON_VM_ARGS variable with the arguments to pass on
env = GetEnvironmentStringsW();
if (env == NULL) {
winerror(0, L"Failed to get current environment");
@@ -389,7 +389,7 @@ wmain(int argc, wchar_t ** argv)
envCur = envCur + i + 1;
}
// env needs room for key=, no \0
- envSize += wcslen(GRAAL_PYTHON_ARGS);
+ envSize += wcslen(GRAAL_PYTHON_VM_ARGS);
// need room to specify original launcher path
envSize += 1 + wcslen(GRAAL_PYTHON_EXE_ARG) + wcslen(currentExecutable);
// need room to specify base executable path
@@ -400,9 +400,9 @@ wmain(int argc, wchar_t ** argv)
// env needs room for \v and arg, no \0
envSize = envSize + 1 + wcslen(argv[i]);
}
- // final \v at the end of GRAAL_PYTHON_ARGS, so it gets purged
+ // final \v at the end of GRAAL_PYTHON_VM_ARGS, so it gets purged
++envSize;
- // \0 at the end of the GRAAL_PYTHON_ARGS variable
+ // \0 at the end of the GRAAL_PYTHON_VM_ARGS variable
++envSize;
// env needs room for \0 at the end
++envSize;
@@ -427,15 +427,15 @@ wmain(int argc, wchar_t ** argv)
envCur = envCur + i + 1;
envSize = envSize - i - 1;
}
- exitCode = wcscpy_s(newEnvCur, envSize, GRAAL_PYTHON_ARGS);
+ exitCode = wcscpy_s(newEnvCur, envSize, GRAAL_PYTHON_VM_ARGS);
if (exitCode) {
- winerror(exitCode, L"Failed to copy GRAAL_PYTHON_ARGS=");
+ winerror(exitCode, L"Failed to copy GRAAL_PYTHON_VM_ARGS=");
goto abort;
}
debug(L"\t%s", newEnvCur);
// move past key=
- envSize = envSize - wcslen(GRAAL_PYTHON_ARGS);
- newEnvCur = newEnvCur + wcslen(GRAAL_PYTHON_ARGS);
+ envSize = envSize - wcslen(GRAAL_PYTHON_VM_ARGS);
+ newEnvCur = newEnvCur + wcslen(GRAAL_PYTHON_VM_ARGS);
// specify launcher executable
newEnvCur[0] = L'\v';
--envSize;
@@ -512,11 +512,11 @@ wmain(int argc, wchar_t ** argv)
envSize = envSize - wcslen(argv[i]);
newEnvCur = newEnvCur + wcslen(argv[i]);
}
- // insert terminating \v for GRAAL_PYTHON_ARGS
+ // insert terminating \v for GRAAL_PYTHON_VM_ARGS
newEnvCur[0] = L'\v';
--envSize;
++newEnvCur;
- // insert terminating \0 for GRAAL_PYTHON_ARGS
+ // insert terminating \0 for GRAAL_PYTHON_VM_ARGS
newEnvCur[0] = L'\0';
--envSize;
++newEnvCur;
diff --git a/mx.graalpython/graalos_versions.json b/mx.graalpython/graalos_versions.json
index 30265e4b0b..df6a66558c 100644
--- a/mx.graalpython/graalos_versions.json
+++ b/mx.graalpython/graalos_versions.json
@@ -1,4 +1,4 @@
{
- "runtime": "graalos/graalos_prod_pkeyson_sandboxon-runtime-2026_06_26_v1.0.0_13219_g1edbd6bbd855-1.el8.x86_64.tar.gz",
- "toolchain": "graal/graalvm-graalos-java25-linux-amd64-25.2.4-dev-g449946c.tar.gz"
+ "runtime": "graalos/graalos_prod_pkeyson_sandboxon-runtime-2026_07_13_v1.0.0_13349_g17b356ae80b6-1.el8.x86_64.tar.gz",
+ "toolchain": "graal/graalvm-graalos-java25-linux-amd64-25.2.4-dev-ge60c82c.tar.gz"
}
diff --git a/mx.graalpython/suite.py b/mx.graalpython/suite.py
index 1d3cfd9b74..db2cf41f2c 100644
--- a/mx.graalpython/suite.py
+++ b/mx.graalpython/suite.py
@@ -53,7 +53,7 @@
},
{
"name": "tools",
- "version": "b8a290a5d5e364074ab03ed0f29987ca773b9c9f",
+ "version": "7f0cb575a3f77f695185b16cb5e6ed355cc68a03",
"subdir": True,
"urls": [
{"url": "https://github.com/oracle/graal", "kind": "git"},
@@ -61,7 +61,7 @@
},
{
"name": "regex",
- "version": "b8a290a5d5e364074ab03ed0f29987ca773b9c9f",
+ "version": "7f0cb575a3f77f695185b16cb5e6ed355cc68a03",
"subdir": True,
"urls": [
{"url": "https://github.com/oracle/graal", "kind": "git"},