-
Notifications
You must be signed in to change notification settings - Fork 323
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
Support for --jvm option in Enso runner #10374
Conversation
var loc = Main.class.getProtectionDomain().getCodeSource().getLocation(); | ||
println("Location: " + loc); | ||
var commandAndArgs = new ArrayList<String>(); | ||
if (jvm == null) { |
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.
The JVM_OPTION
takes zero or one argument. If the argument is present, it should be a path to the GraalVM to use to execute Enso process. The code below uses ProcessBuilder
to construct such process - more or less the code is a copy of what is in bin/enso
and bin/enso.bat
files.
When the --jvm
option is used without additional argument, then we should somehow locate the GraalVM in the installation. CCing @4e6 and @radeusgd (as author of enso launcher which deals with similar issues) to guide this part of the implementation.
…linux-amd64/enso-0.0.0-dev/bin/enso on Linux
Jaroslav Tulach reports a new STANDUP for yesterday (2024-06-26): Progress: - create PR for the
|
The current status. Why I run a simple program via
what can be wrong? When I use the
These two results are from Windows and Mac - they both work on Linux - I probably have proper symlink setup there since I used it daily. But we want to get this working out of the box, without any setup, right? Anyway right now we are back in a mode when the Enso runtime tries to download something... |
Downloading Enso Bundle Linux to understand the layout of such a distribution. Áááá:
isn't the |
7a7c0b5
to
54bb7d8
Compare
lib/scala/edition-updater/src/main/scala/org/enso/editions/updater/EditionManager.scala
Outdated
Show resolved
Hide resolved
Jaroslav Tulach reports a new STANDUP for yesterday (2024-06-27): Progress: - integrated: #10380
|
We still have one failure:
probably fixed by 59f3087 as we cannot wrap binary file |
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.
Approving tentatively but documentation for native-image
has become significantly outdated. Please make sure it is in line with your recent changes.
Co-authored-by: Kaz Wesley <[email protected]>
Co-authored-by: Kaz Wesley <[email protected]>
Co-authored-by: Kaz Wesley <[email protected]>
Co-authored-by: Kaz Wesley <[email protected]>
Jaroslav Tulach reports a new 🔴 DELAY for yesterday (2024-07-05): Summary: There is 5 days delay in implementation of the Support for --jvm option in Enso runner (#10374) task. Already being integrated Delay Cause: I was on vacation mostly, working intermittently. Possible solutions: Just integrate |
Jaroslav Tulach reports a new STANDUP for yesterday (2024-07-05): Progress: - discussing
|
Pull Request Description
Addresses one of two concerns of #5298 - adds support for
--jvm
argument to allow us to switch from native image built Enso binary (as developed by #10126) to regular JVM based Enso execution. This change doesn't affect production builds. The native executable continues to be only built byengine-runner/buildNativeImage
which is tested on CI, but not in the production jobs.Typical Usecase
With e67cc87 one can build:
and then the
bin/enso
launcher is going to be a native executable (of a huge size):The
bin/enso
file is native executable with built in support for executingStandard.Base
library (because of #10296). However, should there be an Enso fileshort.enso
likethen executing it with prebuilt native executable fails because it imports some class not used by
Standard.Base
and thus not compiled into the executable:at that moment one can use the
--jvm
attribute and then the execution succeeds:Native executable gives us instant startup. The
--jvm
switch gives us compatibility with the JVM mode.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.