Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
fb4e679
Graal Version can be just a single number
Akirathan Sep 17, 2025
2646d45
Upgrade graalVersion and graalMavenPackageVersion in build.sbt
Akirathan Sep 17, 2025
3a87b30
Lift graal dir name assumption
Akirathan Sep 18, 2025
af234fd
Add truffle-nfi-panama dependency of graalpy
Akirathan Sep 19, 2025
ad58ce5
Remove deprecated RunReachabilityHandlersConcurrently option
Akirathan Sep 19, 2025
ee49cb2
Add deps for native image
Akirathan Sep 19, 2025
77beb2d
Fix module path for small jdk
Akirathan Sep 19, 2025
61195c0
Exclude gax-grpc NI config file
Akirathan Sep 22, 2025
612cda1
svm must not be included in the class-path.
Akirathan Sep 22, 2025
e9d2d4d
java.prefs module is added in small jdk for NI.
Akirathan Sep 22, 2025
821bef2
jdk.attach module is added in small jdk for NI.
Akirathan Sep 22, 2025
e7270f3
Use Graalvm 25.0.0 in all CI workflows
Akirathan Sep 22, 2025
6ac2d05
Bump Mockito version.
Akirathan Sep 22, 2025
e63ac6a
Mockito tests are run with `-javaagent` cmdline option
Akirathan Sep 22, 2025
15b518f
Fix native lib versions in native_libs.json golden test file
Akirathan Sep 23, 2025
68294bc
Update expected error message when parsing foreign python method
Akirathan Sep 23, 2025
27f791d
Merge branch 'develop' into wip/akirathan/13918-update-graal-25
Akirathan Sep 23, 2025
9377972
Verify licenses
Akirathan Sep 23, 2025
a1e76be
Update Bazel GraalVM toolchain to version 25
Akirathan Sep 23, 2025
682e62b
Update bazel lock file
Akirathan Sep 23, 2025
c0b4a1f
java.prefs is only required for NI build
Akirathan Sep 24, 2025
19a3d5a
changelog
Akirathan Sep 24, 2025
dd1073c
fmt
Akirathan Sep 24, 2025
e1233fa
Fix GenerateUncached warnings
Akirathan Sep 26, 2025
5277f33
Don't include nativeimage.configure module in small JDK for NI.
Akirathan Sep 26, 2025
ba380df
Allow uncached loop node.
Akirathan Sep 28, 2025
b085b1c
Fix os-environemnt tests on Mac - get canonical path to tmp dir
Akirathan Sep 29, 2025
0f06013
Fix native-access warning when running os-environment/test
Akirathan Sep 29, 2025
2f9f697
Fix native-access warning when creating stdlib indexes
Akirathan Sep 29, 2025
7268b15
Specify download link when GraalVM version mismatches.
Akirathan Sep 30, 2025
3d9986b
typo
Akirathan Sep 30, 2025
e1251ac
[WIP] Print saving and loading cache
Akirathan Sep 30, 2025
8cdb45c
[WIP] Run only Base_Tests with --log-level TRACE on CI
Akirathan Oct 1, 2025
70a1622
Revert "[WIP] Print saving and loading cache"
Akirathan Oct 1, 2025
8262f97
[WIP] Print test name before it is executed.
Akirathan Oct 1, 2025
5d6779f
[WIP] Print test name before it is executed.
Akirathan Oct 2, 2025
f448073
Workaround Memory Access Violation error by converting to java.io.Fil…
JaroslavTulach Oct 3, 2025
e747690
Merge branch 'develop' into wip/akirathan/13918-update-graal-25
Akirathan Oct 3, 2025
ca502ad
Workarounding Windows FileSystem problems by catching NPE
JaroslavTulach Oct 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@ common --@aspect_rules_ts//ts:default_to_tsc_transpiler
startup --host_jvm_args=-DBAZEL_TRACK_SOURCE_DIRECTORIES=1

## GraalVM versions
common --tool_java_runtime_version=graalvm_24
common --tool_java_language_version=24
common --tool_java_runtime_version=graalvm_25
common --tool_java_language_version=25

common --java_runtime_version=graalvm_24
common --java_language_version=24
common --java_runtime_version=graalvm_25
common --java_language_version=25

## Rust
startup --windows_enable_symlinks
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/enso4igv.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ jobs:

- uses: graalvm/setup-graalvm@v1
with:
java-version: "24.0.1"
java-version: "25.0.0"
distribution: "graalvm-community"

- name: Publish Enso Libraries to Local Maven Repository
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/formatting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:

env:
# Please ensure that this is in sync with graalVersion in build.sbt
javaVersion: 24.0.1
javaVersion: 25.0.0
# Please ensure that this is in sync with project/build.properties
sbtVersion: 1.10.6

Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
- [Autocompletion for table expression builtin functions in table
expressions][13914]
- [Autocompletion for table expression operators and operands][13917]
- [Update to GraalVM 25][14019]

[14017]: https://github.com/enso-org/enso/pull/14017
[14003]: https://github.com/enso-org/enso/pull/14003
Expand All @@ -58,6 +59,7 @@
[13909]: https://github.com/enso-org/enso/pull/13909
[13914]: https://github.com/enso-org/enso/pull/13914
[13917]: https://github.com/enso-org/enso/pull/13917
[14019]: https://github.com/enso-org/enso/pull/14019

# Enso 2025.2

Expand Down
6 changes: 3 additions & 3 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ git_override(
commit = "81fc9b2de33c0429b716f1bfcd3223a82c0e1085",
patch_strip = 1,
patches = [
"patches/rules_graalvm_java24.patch",
"patches/rules_graalvm_java25.patch",
"patches/rules_graalvm_tool_toolchain.patch",
],
remote = "https://github.com/sgammon/rules_graalvm.git",
Expand All @@ -157,8 +157,8 @@ gvm = use_extension("@rules_graalvm//:extensions.bzl", "graalvm")
gvm.graalvm(
name = "graalvm",
distribution = "ce", # `oracle`, `ce`, or `community`
java_version = "24", # `17`, `20`, `21`, or `22` as supported by the version provided
version = "24.0.1", # gvm sdk version format like `24.x.x` also supported
java_version = "25", # `17`, `20`, `21`, or `22` as supported by the version provided
version = "25.0.0", # gvm sdk version format like `24.x.x` also supported
)
use_repo(gvm, "graalvm")

Expand Down
10 changes: 5 additions & 5 deletions MODULE.bazel.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

51 changes: 47 additions & 4 deletions build.sbt
Copy link
Member

Choose a reason for hiding this comment

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

I've just tried:

enso.master$ ENSO_LAUNCHER=shell sbt --java-home /home/devel/NetBeansProjects/graalvm/graal/vm/latest_graalvm_home 
sbt:enso> runEngineDistribution --run test/Base_Tests
[WARN] [2025-09-26T12:19:30+02:00] [python.com.oracle.graal.python.runtime.PythonContext] could not determine Graal.Python's C API library path. You need to pass --python.CAPI if you want to use the C extension modules.

    - [FAILED] should allow to find start/end of a Date_Period containing the current datetime [14ms]
        Reason: An unexpected dataflow error ((Time_Error.Error ModuleNotFoundError("No module named '_pydatetime'") Nothing)) has been matched (at Base_Tests/src/Data/Time/Date_Time_Spec.enso:430:13-80).
        at <enso> Date_Time_Spec.python_datetime.z(/home/devel/NetBeansProjects/enso/enso.master/test/Base_Tests/src/Data/Time/Date_Time_Spec.enso:779:9-50)


    - [FAILED] should allow to find start/end of a Time_Period containing the current datetime [15ms]
        Reason: An unexpected dataflow error ((Time_Error.Error ModuleNotFoundError("No module named '_pydatetime'") Nothing)) has been matched (at Base_Tests/src/Data/Time/Date_Time_Spec.enso:487:13-90).
        at <enso> Date_Time_Spec.python_datetime.z(/home/devel/NetBeansProjects/enso/enso.master/test/Base_Tests/src/Data/Time/Date_Time_Spec.enso:779:9-50)


2970 tests succeeded.
78 tests failed.
39 tests skipped.
10 groups skipped.

Failed tests: 'should.create.local.time|should.format.local.time.using.provided.pattern|should.support.display_text|should.format.using.provided.pattern.and.locale|should.format.local.time.using.default.pattern|should.convert.to.Enso.code|should.convert.to.Json|should.parse.default.time.format|should.parse.local.time|should.parse.custom.format'
(Displaying only first 10 failed tests)

e.g. a lot of Python related tests is failing. If that's real (e.g. not just my hallucination) then it deserves to be fixed. Running test/Base_Tests is my primary test that Enso is working, it shouldn't be failing...

Copy link
Member Author

Choose a reason for hiding this comment

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

test/Base_Tests works on my machine, as well as on the CI. The only thing that is failing on the CI is Native stdlib Windows which is failing on some cryptic NPE.

Original file line number Diff line number Diff line change
Expand Up @@ -583,6 +583,36 @@ lazy val modularFatJarWrapperSettings = frgaalJavaCompilerSetting ++ Seq(
Compile / exportedModule := (Compile / exportedModuleBin).value
)

/** Mockito agent needs to be explicitly set as `-javaagent` to the JVM.
* Note that starting agent programatically was deprecated in JDK 21 and is scheduled to be removed.
* See https://javadoc.io/doc/org.mockito/mockito-core/latest/org.mockito/org/mockito/Mockito.html#0.3
*/
lazy val mockitoAgentSettings: SettingsDefinition = Seq(
libraryDependencies ++= Seq(
"org.mockito" % "mockito-core" % mockitoJavaVersion % Test
),
Test / javaOptions += {
val logger = streams.value.log
val mockitoJar = JPMSUtils.filterModulesFromUpdate(
update.value,
Seq(
"org.mockito" % "mockito-core" % mockitoJavaVersion
),
logger,
moduleName.value,
scalaBinaryVersion.value,
shouldContainAll = true
)
if (mockitoJar.length != 1) {
logger.error(
s"Expected exactly one mockito-core jar on the classpath, found: ${mockitoJar.map(_.name).mkString(", ")}"
)
}
val mockitoJarPath = mockitoJar.head.getAbsolutePath
s"-javaagent:$mockitoJarPath"
}
)

// ============================================================================
// === Internal Libraries =====================================================
// ============================================================================
Expand Down Expand Up @@ -3365,6 +3395,7 @@ lazy val `runtime-compiler` =
scalaModuleDependencySetting,
mixedJavaScalaProjectSetting,
annotationProcSetting,
mockitoAgentSettings,
inConfig(Test)(truffleRunOptionsSettings),
commands += WithDebugCommand.withDebug,
javaModuleName := "org.enso.runtime.compiler",
Expand Down Expand Up @@ -3830,6 +3861,7 @@ lazy val `engine-runner` = project
val fullCp = (runnerCp ++ runtimeCp).distinct
val modulePath = componentModulesPaths.value
Seq(
"--enable-native-access=org.graalvm.truffle",
"--module-path",
modulePath.map(_.getAbsolutePath).mkString(File.pathSeparator),
"-m",
Expand Down Expand Up @@ -3969,6 +4001,10 @@ lazy val `engine-runner` = project
"org.enso.microsoft.nativeimage.AzureNativeImageFeature"
val databaseFeature =
"org.enso.database.nativeimage.SqliteJdbcPatchedFeature"
// Features from gax-grpc-2.31.0
val grpcFeatures =
"com.google.api.gax.grpc.nativeimage.ProtobufMessageFeature," +
"com.google.api.gax.grpc.nativeimage.GrpcNettyFeature"
var features = Seq(
"org.enso.interpreter.runtime.nativeimage.NativeLibraryFeature"
)
Expand Down Expand Up @@ -4011,14 +4047,14 @@ lazy val `engine-runner` = project
// native library from the jar.
excludeConfigs = Seq(
s".*sqlite-jdbc-.*\\.jar,META-INF/native-image/org\\.xerial/sqlite-jdbc/native-image\\.properties",
s".*snowflake-jdbc-.*\\.jar,META-INF/native-image/.*"
s".*snowflake-jdbc-.*\\.jar,META-INF/native-image/.*",
".*gax-grpc-.*\\.jar,META-INF/native-image/com.google.api/gax-grpc/native-image.properties"
),
modulePath = mp,
additionalOptions = Seq(
"-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog",
"-H:+AddAllCharsets",
"-H:+IncludeAllLocales",
"-H:+RunReachabilityHandlersConcurrently",
"-R:-InstallSegfaultHandler",
// Workaround a problem with build-/runtime-initialization conflict
// by disabling this service provider
Expand All @@ -4028,7 +4064,9 @@ lazy val `engine-runner` = project
// Needed for the NativeLibraryFeature
"--add-opens=org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk=ALL-UNNAMED",
// Snowflake uses Apache Arrow (equivalent of #9664 in native-image setup)
"--add-opens=java.base/java.nio=ALL-UNNAMED"
"--add-opens=java.base/java.nio=ALL-UNNAMED",
// Needed for grpc-gax
"--add-opens=java.base/java.time=ALL-UNNAMED"
) ++ enableHeapDumpOpts ++ debugOpts,
mainModule = Some("org.enso.runner"),
mainClass = Some("org.enso.runner.Main"),
Expand Down Expand Up @@ -4438,7 +4476,11 @@ lazy val `os-environment` =
(Test / target).value / ("test-os-env" + exeSuffix)
val binPath = exeFile.getAbsolutePath
val res =
Process(Seq(binPath), None, "JAVA_TOOL_OPTIONS" -> "") ! logger
Process(
Seq(binPath),
None,
"JAVA_TOOL_OPTIONS" -> "--enable-native-access=org.enso.jvm.channel"
) ! logger
if (res != 0) {
logger.error("Some test in os-environment failed")
throw new TestsFailedException()
Expand Down Expand Up @@ -5194,6 +5236,7 @@ lazy val `std-table` = project
.enablePlugins(Antlr4Plugin)
.settings(
frgaalJavaCompilerSetting,
mockitoAgentSettings,
autoScalaLibrary := false,
Compile / compile / compileInputs := (Compile / compile / compileInputs)
.dependsOn(SPIHelpers.ensureSPIConsistency)
Expand Down
2 changes: 1 addition & 1 deletion build_tools/ci_utils/src/cache/goodie/graalvm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ impl Goodie for GraalVM {
let dir_name = graalvm_dir.file_name();
let dir_name = dir_name.as_str();
ensure!(dir_name.contains("graalvm"));
ensure!(dir_name.contains(self.graal_version.to_string_core().as_str()));
ensure!(dir_name.contains(self.graal_version.major.to_string().as_str()));
let root = match TARGET_OS {
OS::MacOS => graalvm_dir.path().join_iter(["Contents", "Home"]),
_ => graalvm_dir.path(),
Expand Down
6 changes: 4 additions & 2 deletions build_tools/cli/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -430,10 +430,12 @@ impl Processor {
}
Tests::StandardLibraryInNative => {
config.test_standard_library =
Some(StandardLibraryTestsSelection::blacklist(vec![
"Microsoft_Tests".to_string(),
Some(StandardLibraryTestsSelection::whitelist(vec![
"Base_Tests".to_string(),
]));
config.use_native_runner = true;
config.add_engine_runner_arg("--log-level");
config.add_engine_runner_arg("TRACE");
}
Tests::StdSnowflake => {
config.test_standard_library =
Expand Down
Loading
Loading