-
Notifications
You must be signed in to change notification settings - Fork 331
Labels
Description
- since Handle
--jvm
flag in process with JNI instantiated JVM #12843 - there is a way to load JVM inside of the same process as NI
- there is an effort to make
enso
executable smaller - Make native `enso` launcher smaller! #12446 - by small steps: Remove embedded native libraries from JARs #13150
- but what we need is:
Dual Execution Mode
Design a system where we can load a class from NI (as is done regularly since 2025.1 release) as well as from the embedded HotSpot JVM (as introduced by #12843). We need:
- Sending interop messages via
byte[]
boundary between two JVMs- probably reuse
Persistance
to serde -Channel
connecting twoJVM
instances #13206 - need a separate/own persistance pool independent from the existing ones - done in
Persistable.Pool
to group related instances into pool #13201 - deal with two memory arenas
- probably reuse
- Remote Object references in two GCs needed - outline of the work
- deal with two garbage collectors in two JVMs (e.g. SVM and HotSpot VM)
- System to launch a JVM or ClassLoader or ModuleLayer per a library
When we have this system, we can avoid compiling every Standard.
library into NI and leave those less likely to use to be loaded by JVM only.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
🟢 Accepted