Alternative VM implementation based on C++, LuaJIT and Qt? #1847
rochus-keller
started this conversation in
Yearnings
Replies: 1 comment 2 replies
-
My temptation is to move this to a "discusssion" as a knd of research project that isn't immediately "actionable". |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Is your feature request related to a problem? Please describe.
Maiko apparently works, but the code shows its age and the diversity of authors and the technologies introduced over the years. And there has been a lot of progress in different areas since the code was written. There may come a time (or maybe it's already here) when training new people for work on Maiko, maintaining the code or migrating it to new systems could become more expensive than building a new VM.
Describe the solution you'd like
In recent years, I have had good experiences with reusing LuaJIT and Qt as a platform-independent, reasonably fast backend for programming languages, and was able to use it to renovate several old systems and migrate them to current platforms.
I wonder if combining these technologies would not also be a good alternative solution for an Interlisp VM. The build and dependencies could be significantly simplified, and as a side effect, higher performance could be expected.
At the moment, I can't yet assess the feasibility and the effort for this very well, nor can I say how great the demand for such a solution is. But I think it would be an interesting project and I would be happy to invest some time in it.
The question is whether there is a specification for the bytecode and the other functions expected by the VM clients (i.e. Interlisp code), or whether one has to find out everything oneself through reverse engineering.
Describe alternatives you've considered
Maintaining the original VM would not be affected. Ideally, one could simply replace the executables.
Graal/Truffle would certainly be an interesting alternative technology, but it's not my area.
Additional context
Some of my projects where such a solution was applied: https://github.com/rochus-keller/Smalltalk, https://github.com/rochus-keller/SOM, https://github.com/rochus-keller/Oberon.
Beta Was this translation helpful? Give feedback.
All reactions