Skip to content
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

Ydoc native image #10783

Merged
merged 23 commits into from
Oct 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
545a8c3
DRAFT: native image
4e6 Aug 9, 2024
341dbba
Cannot use musl on Linux
JaroslavTulach Aug 9, 2024
5f38c34
DRAFT: native image config update
4e6 Aug 9, 2024
3722b83
fix: js resources loading
4e6 Aug 9, 2024
daea3be
add: test helidon native image build
4e6 Aug 12, 2024
50b9ba6
add: helidon native image+js
4e6 Aug 12, 2024
16a10c1
Useful NI debugging options for ydoc-server
JaroslavTulach Aug 15, 2024
ede2794
Debug ydoc server in VSCode
JaroslavTulach Aug 15, 2024
aabf41e
Print stack trace of WebServer initialization exception
JaroslavTulach Aug 15, 2024
c032d9d
Use Thread.ofPlatform() to workaround native image artificial limitat…
JaroslavTulach Sep 20, 2024
7f7738b
Adjusting to future Helidon changes accepted in https://github.com/he…
JaroslavTulach Sep 24, 2024
546ac9c
Making the ExecutorsFactory substitutions conditional
JaroslavTulach Sep 24, 2024
f87d467
Avoid non-substitution fields in Target_ExecutorsFactory
JaroslavTulach Sep 24, 2024
ee82801
Updating to Helidon 4.1.2 fixes ydoc-server/buildNativeImage
JaroslavTulach Oct 7, 2024
3fe6861
Resolving conflicts with develop
JaroslavTulach Oct 7, 2024
ac023d7
Legal review for Helidon 4.1.2
JaroslavTulach Oct 7, 2024
a6af5c3
Merge branch 'develop' into wip/db/10757-ydoc-native-image
4e6 Oct 29, 2024
d0b954b
fix: after merge
4e6 Oct 30, 2024
f8c878c
update: native-image configs
4e6 Oct 30, 2024
b3df0a8
fix: override helidon-client loom executor
4e6 Oct 30, 2024
5440ed6
misc: cleanup
4e6 Oct 30, 2024
e272cb1
update: legal review
4e6 Oct 30, 2024
d5a0c6c
misc: cleanup
4e6 Oct 30, 2024
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
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
Loading