Skip to content

Conversation

@Akirathan
Copy link
Member

@Akirathan Akirathan commented Sep 17, 2025

Closes #13918

Pull Request Description

Update GraalVM from no longer supported 24.0.1 to 25.0.0 - e.g. the LTS version.

Important Notes

Highlights from GraalVM 25 release notes:

  • FFM API support on aarch64
  • Implemented Arena.ofShared
  • Experimental Native image tracing agent
  • Experimental -H:+JDWP flag.

Checklist

Please ensure that the following checklist has been satisfied before submitting the PR:

  • The documentation has been updated, if necessary.
  • Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.
  • All code follows the
    Scala,
    Java,
    TypeScript,
    and
    Rust
    style guides. In case you are using a language not listed above, follow the Rust style guide.
  • Unit tests have been written where possible.
  • If meaningful changes were made to logic or tests affecting Enso Cloud integration in the libraries,
    or the Snowflake database integration, a run of the Extra Tests has been scheduled.
    • If applicable, it is suggested to paste a link to a successful run of the Extra Tests.

@Akirathan Akirathan self-assigned this Sep 17, 2025
@Akirathan Akirathan added the CI: Clean build required CI runners will be cleaned before and after this PR is built. label Sep 17, 2025
@Akirathan
Copy link
Member Author

NI build of engine-runner is successful. Its size is 533 MB. The previous size (for example built here) was 568 MB.

So just by upgrading to GraalVM 25.0.0, the NI size decreased by roughly 6%.

@Akirathan
Copy link
Member Author

Akirathan commented Sep 22, 2025

Failure in std-table/test: Mockito failure: "Java 25 not supported" at https://github.com/enso-org/enso/actions/runs/17914034971/job/50933411374?pr=14019#step:14:2018.

Fixed by bumping Mockito version in 6ac2d05

mergify bot pushed a commit that referenced this pull request Sep 23, 2025
#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.
@Akirathan Akirathan marked this pull request as ready for review September 23, 2025 17:07
Copy link
Collaborator

@hubertp hubertp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

enso.{def,exp,lib} files must not be in the top directory. It's a packaging thing so probably somewhere in the distribution/resources directory?
Instructions to generate them should also be added either as a comment in the files (probably not possible) or in some docs related to distribution. PR comment is not really enough.

@JaroslavTulach
Copy link
Member

JaroslavTulach commented Oct 28, 2025

enso.{def,exp,lib} files must not be in the top directory. It's a packaging thing so probably somewhere in the distribution/resources directory?

  • Maybe next to the shell scripts - these files are kind of same beasts...
  • I was also considering to download it form github resources like we do with pictures
  • moved in 2d4d19e

Instructions to generate ... PR comment is not really enough.

Right. PR comment is certainly not enough.... I cannot find it right now. Done in 0e2e247

Copy link
Member

@JaroslavTulach JaroslavTulach left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • CI seems to be green
  • the hack with enso.lib has been reviewed by Hubert
  • let's move on and switch to LTS version of GraalVM

@JaroslavTulach JaroslavTulach removed the CI: Keep up to date Automatically update this PR to the latest develop. label Oct 28, 2025
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -0,0 +1,40 @@
NAME "enso.exe"

;
Copy link
Member

@JaroslavTulach JaroslavTulach Oct 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are the instructions to generate enso.exp and enso.def files.

@JaroslavTulach
Copy link
Member

JaroslavTulach commented Oct 28, 2025

@JaroslavTulach
Copy link
Member

JaroslavTulach commented Oct 29, 2025

 Test run org.enso.interpreter.test.NativeLibraryFinderTest finished: 0 failed, 0 ignored, 4 total, 287.39s
 Test org.enso.interpreter.test.PolyglotErrorTest failed: org.enso.test.utils.ContextUtils$FailureWithOutput: Compiler output: , took 0.0 sec
      at org.enso.test.utils.ContextUtils$CustomStatement.evaluate(ContextUtils.java:476)
      ...
 Caused by: java.lang.RuntimeException: org.graalvm.polyglot.PolyglotException: Java heap space: failed reallocation of scalar replaced objects
      at org.enso.test.utils.ContextUtils$CustomStatement.lambda$evaluate$0(ContextUtils.java:468)
      at org.enso.test.utils.ContextUtils.lambda$executeInContext$0(ContextUtils.java:294)
      at org.graalvm.polyglot.Engine$APIAccessImpl.callProxyExecutableExecute(Engine.java:1532)
      at com.oracle.truffle.host.GuestToHostCodeCache$1.executeImpl(GuestToHostCodeCache.java:126)
      at com.oracle.truffle.host.GuestToHostRootNode.execute(GuestToHostRootNode.java:80)

the test itself succeeds when executed locally in isolation with runtime-integration-tests/testOnly *PolyglotErrorTest on my Intel Mac - e.g. it is either random failure or caused by some garbage being allocated by other tests.

@JaroslavTulach
Copy link
Member

JaroslavTulach commented Oct 29, 2025

There is also

[error] Test org.enso.interpreter.test.meta.QualifiedNameTest.qualifiedTypeNameWorks_WhenRunningSingleFile failed: java.lang.AssertionError: 
[error] Expected: is "local.Proj.Main.My_Type"
[error]      but: was "local.Proj.........................private.var.folders.36.74fmy6d51s9ct3v8lskdy07r0000gn.T.junit12491882196538959277.junit2501126755569952691.src.Main.My_Type", took 7.405 sec
[error]     at org.enso.interpreter.test.meta.QualifiedNameTest.lambda$qualifiedTypeNameWorks_WhenRunningSingleFile$0(QualifiedNameTest.java:34)
[error]     at org.enso.test.utils.ProjectUtils.testProjectRun(ProjectUtils.java:137)

failure which is real, isolated and reproducible. Related to some trickery around temporary directory on Mac. Fixed by 8031779

@JaroslavTulach JaroslavTulach added the CI: Ready to merge This PR is eligible for automatic merge label Oct 29, 2025
@JaroslavTulach
Copy link
Member

Running the tests on Mac locally:

sbt:enso> runtime-integration-tests/test
[info] Test run org.enso.interpreter.test.AnyOrStaticTest finished: 0 failed, 0 ignored, 2 total, 1.531s
[info] ScalaTest
[info] Run completed in 9 minutes, 18 seconds.
[info] Total number of tests run: 1372
[info] Suites: completed 101, aborted 0
[info] Tests: succeeded 1372, failed 0, canceled 0, ignored 3, pending 30
[info] All tests passed.
[info] Passed: Total 27280, Failed 0, Errors 0, Passed 27280, Ignored 32, Pending 30
[success] Total time: 571 s (09:31), completed 29. 10. 2025 10:09:06

e.g. things are working and I believe we can integrate regardless of state of Mac CI (which was already almost green). Adding ready to merge label.

@JaroslavTulach JaroslavTulach added the CI: Keep up to date Automatically update this PR to the latest develop. label Oct 29, 2025
@mergify mergify bot merged commit 8c14901 into develop Oct 29, 2025
85 checks passed
@mergify mergify bot deleted the wip/akirathan/13918-update-graal-25 branch October 29, 2025 12:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI: Clean build required CI runners will be cleaned before and after this PR is built. CI: Keep up to date Automatically update this PR to the latest develop. CI: Ready to merge This PR is eligible for automatic merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade to GraalVM 25 LTS

6 participants