spoofax-shell-2017 / spoofax-shell

Apache License 2.0
0 stars 0 forks source link

Languages cannot be dynamically registered, require a 'reload' command #5

Open Pathemeous opened 7 years ago

Pathemeous commented 7 years ago

JVM and GraalVM cannot hotswap the java code of the language interpreter, meaning that a new JVM must be run for each new build of the language.

To trigger this, we could start simple with a :reload user command, that spins a new JVM with the currently build interpreter.

justinvdk commented 7 years ago

Find out how to boot a new JVM from within Java Trivial case not that hard. Challenge: how do we load up the new jvm with the correct classes.

Pathemeous commented 7 years ago

With the StrategoEvaluationStrategy this no longer poses an issue, because GraalVM is not used there.

Correct @justinvdk? We can close this.

hendrikvanantwerpen commented 7 years ago

Note that you do need to recreate the Spoofax interpreter after the language is rebuilt.

justinvdk commented 7 years ago

recreate the Spoofax interpreter

This is part of the build process right? I think what @Pathemeous means is that we don't have to reload the language definition in the shell at runtime, a rebuild is all that is needed to make use of a new interpeter.