Skip to content

Commit

Permalink
Ydoc native image (#10783)
Browse files Browse the repository at this point in the history
close #10757

Changelog:
- add: native-image configuration to the `ydoc-server` project
- add: native-image overrides for loom executors replacing them with platform threads
- update: Helidon `4.1.2`
- fix: issues related to the native-image build
  • Loading branch information
4e6 authored and MrFlashAccount committed Nov 1, 2024
1 parent c0630a5 commit 86a5b5d
Show file tree
Hide file tree
Showing 199 changed files with 993 additions and 412 deletions.
27 changes: 22 additions & 5 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -473,7 +473,7 @@ val commons = Seq(

// === Helidon ================================================================
val jakartaVersion = "2.0.1"
val helidonVersion = "4.0.8"
val helidonVersion = "4.1.2"
val helidon = Seq(
"io.helidon" % "helidon" % helidonVersion,
"io.helidon.builder" % "helidon-builder-api" % helidonVersion,
Expand Down Expand Up @@ -1879,7 +1879,7 @@ lazy val `ydoc-server` = project
.enablePlugins(JPMSPlugin)
.configs(Test)
.settings(
frgaalJavaCompilerSetting,
customFrgaalJavaCompilerSettings("21"),
javaModuleName := "org.enso.ydoc",
Compile / exportJars := true,
crossPaths := false,
Expand All @@ -1897,8 +1897,9 @@ lazy val `ydoc-server` = project
),
libraryDependencies ++= Seq(
"org.graalvm.truffle" % "truffle-api" % graalMavenPackagesVersion % "provided",
"org.graalvm.polyglot" % "inspect" % graalMavenPackagesVersion % "runtime",
"org.graalvm.polyglot" % "js" % graalMavenPackagesVersion % "runtime",
"org.graalvm.sdk" % "nativeimage" % graalMavenPackagesVersion % "provided",
"org.graalvm.polyglot" % "inspect-community" % graalMavenPackagesVersion % "runtime",
"org.graalvm.polyglot" % "js-community" % graalMavenPackagesVersion % "runtime",
"org.slf4j" % "slf4j-api" % slf4jVersion,
"io.helidon.webclient" % "helidon-webclient-websocket" % helidonVersion,
"io.helidon.webserver" % "helidon-webserver-websocket" % helidonVersion,
Expand Down Expand Up @@ -1950,9 +1951,25 @@ lazy val `ydoc-server` = project
)
.taskValue
)
.settings(
NativeImage.smallJdk := None,
NativeImage.additionalCp := Seq.empty,
rebuildNativeImage := NativeImage
.buildNativeImage(
"ydoc",
staticOnLinux = false,
mainClass = Some("org.enso.ydoc.Main")
)
.value,
buildNativeImage := NativeImage
.incrementalNativeImageBuild(
rebuildNativeImage,
"ydoc"
)
.value
)
.dependsOn(`syntax-rust-definition`)
.dependsOn(`logging-service-logback`)
.dependsOn(`profiling-utils`)

lazy val `persistance` = (project in file("lib/java/persistance"))
.enablePlugins(JPMSPlugin)
Expand Down
64 changes: 32 additions & 32 deletions distribution/engine/THIRD-PARTY/NOTICE
Original file line number Diff line number Diff line change
Expand Up @@ -208,162 +208,162 @@ Copyright notices related to this dependency can be found in the directory `io.g

'helidon-builder-api', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.builder.helidon-builder-api-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.builder.helidon-builder-api-4.1.2`.


'helidon-common-features', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.features.helidon-common-features-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.features.helidon-common-features-4.1.2`.


'helidon-common-features-api', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.features.helidon-common-features-api-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.features.helidon-common-features-api-4.1.2`.


'helidon-common', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-4.1.2`.


'helidon-common-buffers', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-buffers-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-buffers-4.1.2`.


'helidon-common-config', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-config-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-config-4.1.2`.


'helidon-common-configurable', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-configurable-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-configurable-4.1.2`.


'helidon-common-context', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-context-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-context-4.1.2`.


'helidon-common-key-util', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-key-util-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-key-util-4.1.2`.


'helidon-common-mapper', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-mapper-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-mapper-4.1.2`.


'helidon-common-media-type', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-media-type-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-media-type-4.1.2`.


'helidon-common-parameters', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-parameters-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-parameters-4.1.2`.


'helidon-common-security', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-security-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-security-4.1.2`.


'helidon-common-socket', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-socket-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-socket-4.1.2`.


'helidon-common-task', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-task-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-task-4.1.2`.


'helidon-common-tls', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-tls-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-tls-4.1.2`.


'helidon-common-types', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-types-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-types-4.1.2`.


'helidon-common-uri', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-uri-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.common.helidon-common-uri-4.1.2`.


'helidon-config', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.config.helidon-config-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.config.helidon-config-4.1.2`.


'helidon', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.helidon-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.helidon-4.1.2`.


'helidon-http-encoding', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.encoding.helidon-http-encoding-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.encoding.helidon-http-encoding-4.1.2`.


'helidon-http', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.helidon-http-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.helidon-http-4.1.2`.


'helidon-http-media', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.media.helidon-http-media-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.http.media.helidon-http-media-4.1.2`.


'helidon-inject-api', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.inject.helidon-inject-api-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.inject.helidon-inject-api-4.1.2`.


'helidon-logging-common', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.logging.helidon-logging-common-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.logging.helidon-logging-common-4.1.2`.


'helidon-webclient', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-4.1.2`.


'helidon-webclient-api', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-api-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-api-4.1.2`.


'helidon-webclient-http1', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-http1-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-http1-4.1.2`.


'helidon-webclient-websocket', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-websocket-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webclient.helidon-webclient-websocket-4.1.2`.


'helidon-webserver', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webserver.helidon-webserver-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webserver.helidon-webserver-4.1.2`.


'helidon-webserver-websocket', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webserver.helidon-webserver-websocket-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.webserver.helidon-webserver-websocket-4.1.2`.


'helidon-websocket', licensed under the Apache 2.0, is distributed with the engine.
The license file can be found at `licenses/APACHE2.0`.
Copyright notices related to this dependency can be found in the directory `io.helidon.websocket.helidon-websocket-4.0.8`.
Copyright notices related to this dependency can be found in the directory `io.helidon.websocket.helidon-websocket-4.1.2`.


'directory-watcher', licensed under the Apache-2.0, is distributed with the engine.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@ Copyright (c) 2022 Oracle and/or its affiliates.
Copyright (c) 2022, 2023 Oracle and/or its affiliates.

Copyright (c) 2022, 2024 Oracle and/or its affiliates.

Copyright (c) 2024 Oracle and/or its affiliates.
Original file line number Diff line number Diff line change
@@ -1,16 +1,29 @@
Copyright (c) 2017, 2021 Oracle and/or its affiliates.
Copyright (c) 2017, 2024 Oracle and/or its affiliates.

Copyright (c) 2017, 2022 Oracle and/or its affiliates.
Copyright (c) 2017, 2023 Oracle and/or its affiliates.

Copyright (c) 2017, 2024 Oracle and/or its affiliates.

Copyright (c) 2018, 2021 Oracle and/or its affiliates.

Copyright (c) 2018, 2024 Oracle and/or its affiliates.

Copyright (c) 2019, 2020 Oracle and/or its affiliates.

Copyright (c) 2019, 2021 Oracle and/or its affiliates.

Copyright (c) 2019, 2022 Oracle and/or its affiliates.

Copyright (c) 2019, 2023 Oracle and/or its affiliates.

Copyright (c) 2020 Oracle and/or its affiliates.

Copyright (c) 2021 Oracle and/or its affiliates.

Copyright (c) 2021, 2023 Oracle and/or its affiliates.

Copyright (c) 2022 Oracle and/or its affiliates.

Copyright (c) 2023 Oracle and/or its affiliates.

Copyright (c) 2024 Oracle and/or its affiliates.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ Copyright (c) 2022 Oracle and/or its affiliates.

Copyright (c) 2022, 2023 Oracle and/or its affiliates.

Copyright (c) 2022, 2024 Oracle and/or its affiliates.

Copyright (c) 2023 Oracle and/or its affiliates.

Copyright (c) 2023, 2024 Oracle and/or its affiliates.

Copyright (c) 2024 Oracle and/or its affiliates.
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ Copyright (c) 2019, 2020 Oracle and/or its affiliates.

Copyright (c) 2019, 2021 Oracle and/or its affiliates.

Copyright (c) 2019, 2022 Oracle and/or its affiliates.

Copyright (c) 2019, 2023 Oracle and/or its affiliates.

Copyright (c) 2019, 2024 Oracle and/or its affiliates.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ Copyright (c) 2022, 2023 Oracle and/or its affiliates.

Copyright (c) 2022, 2024 Oracle and/or its affiliates.

Copyright (c) 2023 Oracle and/or its affiliates.

Copyright (c) 2023, 2024 Oracle and/or its affiliates.

Copyright (c) 2024 Oracle and/or its affiliates.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ Copyright (c) 2019, 2021 Oracle and/or its affiliates.

Copyright (c) 2019, 2022 Oracle and/or its affiliates.

Copyright (c) 2019, 2024 Oracle and/or its affiliates.

Copyright (c) 2020 Oracle and/or its affiliates.

Copyright (c) 2020, 2021 Oracle and/or its affiliates.
Expand All @@ -34,6 +36,8 @@ Copyright (c) 2021, 2023 Oracle and/or its affiliates.

Copyright (c) 2022, 2023 Oracle and/or its affiliates.

Copyright (c) 2022, 2024 Oracle and/or its affiliates.

Copyright (c) 2023 Oracle and/or its affiliates.

Copyright (c) 2024 Oracle and/or its affiliates.
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@ Copyright (c) 2020, 2022 Oracle and/or its affiliates.
Copyright (c) 2020, 2023 Oracle and/or its affiliates.

Copyright (c) 2020, 2024 Oracle and/or its affiliates.

Copyright (c) 2024 Oracle and/or its affiliates.
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
<artifactId>helidon-codegen-helidon-copyright</artifactId>

Copyright (c) 2022, 2024 Oracle and/or its affiliates.

Copyright (c) 2023 Oracle and/or its affiliates.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<artifactId>helidon-codegen-helidon-copyright</artifactId>

Copyright (c) 2022, 2023 Oracle and/or its affiliates.

Copyright (c) 2022, 2024 Oracle and/or its affiliates.

Copyright (c) 2023 Oracle and/or its affiliates.

Copyright (c) 2023, 2024 Oracle and/or its affiliates.

Copyright (c) 2024 Oracle and/or its affiliates.
Loading

0 comments on commit 86a5b5d

Please sign in to comment.