-
Notifications
You must be signed in to change notification settings - Fork 332
Update to GraalVM 25 #14019
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Update to GraalVM 25 #14019
Conversation
Otherwise engine-runner NI build fails.
Otherwise, NI build fails with "Substitution target for com.oracle.svm.core.posix.darwin.Target_java_util_prefs_FileSystemPreferences is not loaded".
NI build of So just by upgrading to GraalVM 25.0.0, the NI size decreased by roughly 6%. |
Failure in Fixed by bumping Mockito version in 6ac2d05 |
Which supports Java 25.
#14019 is blocked by this - the current google java format version is failing because it tries to call remove method from JDK - see https://github.com/enso-org/enso/actions/runs/17916525266/job/50940077628?pr=14019#step:5:245 # Important Notes The only notable change is in ff3fec5 . Every thing else is just automatic `sbt javafmtAll` formatting.
Object[] arguments, | ||
EnsoHashMap warnings, | ||
@Shared("loopNode") @Cached(value = "createLoopNode()", allowUncached = true) LoopNode loopNode) { | ||
@Shared("loopNode") @Cached(value = "createLoopNode()", uncached = "createUncachedLoopNode()") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- It is surprising we need a change like this
- isn't it regression?
- Something to be reported to GraalVM guys?
In Standard Library Native Tests (windows, amd64), 4 test suites ( |
I asked @jdunkerley to reproduce. He was able to reproduce the problem on his Windows by running
The entire output is in message.txt EDIT: There was no |
The stacktrace indicates a problem while storing
remains to be seen. However running without caches is the simplest check to make. |
|
Caches are not stored on the CI. All the tests are executed with Index: engine/runtime/src/main/java/org/enso/interpreter/caches/Cache.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/engine/runtime/src/main/java/org/enso/interpreter/caches/Cache.java b/engine/runtime/src/main/java/org/enso/interpreter/caches/Cache.java
--- a/engine/runtime/src/main/java/org/enso/interpreter/caches/Cache.java (revision 3d9986b8e62fd416d681c0e7e6cfa27b71383321)
+++ b/engine/runtime/src/main/java/org/enso/interpreter/caches/Cache.java (date 1759233097083)
@@ -104,6 +104,7 @@
* @throws IOException if something goes wrong
*/
public final TruffleFile save(T entry, EnsoContext context) throws IOException {
+ System.out.printf("[%s] Saving cache %n", logName);
TruffleLogger logger = context.getLogger(this.getClass());
for (var root : spi.getCacheRoots(context)) {
if (saveCacheTo(context, root, entry, logger)) {
@@ -176,6 +177,7 @@
* @return the cached data if possible, and [[None]] if it could not load a valid cache
*/
public final Optional<T> load(EnsoContext context) {
+ System.out.printf("[%s] Loading cache %n", logName);
var logger = context.getLogger(this.getClass());
var collected = new ArrayList<IOException>();
synchronized (LOCK) {
that when you run |
I beg your pardon. What is being stored here?
I'd bet that |
This output was copied from James. And for the first time, James executed the command without --no-ir-caches. See the EDIT section in that comment. |
OK, now I get it. |
Reaching out to GraalVM slack for help - https://graalvm.slack.com/archives/CN9KSFB40/p1759317558077949 |
To reproduce this error on local Windows machine:
|
With e1251ac, I have confirmed that the "Memory Access Violation" error happens even without saving or loading any caches. There is no "Saving cache", neither "Loading cache" output in https://github.com/enso-org/enso/actions/runs/18104093889/job/51517127762?pr=14019 |
With 8cdb45c, EDIT: The output in https://github.com/enso-org/enso/actions/runs/18160937708/job/51694612696 is useless. There is just a lot of output from the compiler. It is still not clear from the error is encountered. Let's also print the currently running test in 8262f97 |
Received suggestions from the GraalVM team how to debug the issue:
|
CI uses Ignore_Progress_Reporter.
How to reproduce the Memory Access Violation error?After debugging session with @jdunkerley, we observed that:
The snippets that @jdunkerley confirmed to work properly without error:
|
With: enso> git diff
diff --git a/engine/runtime/src/main/java/org/enso/interpreter/runtime/data/EnsoFile.java b/engine/runtime/src/main/java/org/enso/interpreter/runtime/data/EnsoFile.java
index 5c449f716f..aa43c25199 100644
--- a/engine/runtime/src/main/java/org/enso/interpreter/runtime/data/EnsoFile.java
+++ b/engine/runtime/src/main/java/org/enso/interpreter/runtime/data/EnsoFile.java
@@ -697,17 +697,27 @@ public final class EnsoFile extends BuiltinObject {
if (recursive && file.truffleFile.isDirectory(LinkOption.NOFOLLOW_LINKS)) {
deleteRecursively(file.truffleFile);
} else {
+ System.err.println("simple delete: " + file.truffleFile);
file.truffleFile.delete();
}
}
+ @TruffleBoundary
private static void deleteRecursively(TruffleFile file) throws IOException {
+ System.err.println("deleteRecursively: " + file);
if (file.isDirectory(LinkOption.NOFOLLOW_LINKS)) {
for (TruffleFile child : file.list()) {
deleteRecursively(child);
}
}
- file.delete();
+ System.err.println("do delete: " + file);
+ try {
+ file.delete();
+ } catch (Throwable t) {
+ t.printStackTrace();
+ throw t;
+ }
+ System.err.println(" - OK");
}
@Builtin.Method(name = "copy_builtin", description = "Copy this file to a target destination") enso$ ENSO_LAUNCHER=native,-ls,fast sbt
sbt:enso> runEngineDistribution --no-ir-caches --run test/Base_Tests/src/System/File_Spec.enso should.allow.creating.a.directory
(1 / 1) File Operations: should allow creating a directory
simple delete: S:\windows\enso\test\Base_Tests\data\good_dir
simple delete: S:\windows\enso\test\Base_Tests\data\good_dir\bar\baz
simple delete: S:\windows\enso\test\Base_Tests\data\good_dir\bar
deleteRecursively: S:\windows\enso\test\Base_Tests\data\good_dir
[warn] built-distribution\enso-engine-0.0.0-dev-windows-amd64\enso-0.0.0-dev\bin\enso.exe finished with exit code -1073741819
|
…e (if possible) and checking children there
# Conflicts: # build.sbt
Closes #13918
Pull Request Description
Update GraalVM from 24.0.1 to 25.0.0.
Important Notes
Highlights from GraalVM 25 release notes:
Arena.ofShared
-H:+JDWP
flag.Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:
Scala,
Java,
TypeScript,
and
Rust
style guides. In case you are using a language not listed above, follow the Rust style guide.
or the Snowflake database integration, a run of the Extra Tests has been scheduled.