[Self-interest] future of the Self VM
mario at wolczko.com
Mon Aug 2 01:00:20 UTC 2021
>> My understanding is that Truffle Squeak is behaving a bit like Self before v4 - ie it is very fast but you get random and noticeable pauses in the GUI while the JIT does its thing. I’m sure that will be fixed at some point but the downside of basing yourself on someone else’s huge mass of code is that you at the mercy of their priorities.
> Interesting! You might want to ask Mario Wolczko about it. He's at Oracle and was involved with Truffle.
I feel duty-bound to have a go at making a Truffle implementation. I’m uniquely positioned to do this: besides familiarity with both Self and Truffle (the latter a little dated, but I did build a [toy] language implementation for my VM course 6 years ago), I also have access to Dave’s Self parser in Java (which he did in Klein days and was never released by Sun/Oracle). I almost embarked on an implementation after my course, since I had been using Truffle and got re-familiarized with Self, but then got busy with other things.
I would likely build just the language core. I would not execute bytecodes at all, just directly interpret/compile ASTs. That means either a mapping would be needed between bytecodes and ASTs (eg for debugging) or the parts that interact with bytecode would have to be rewritten to use ASTs (my preference).
My feeling is that the UI should be redone so that it’s not dependent on X-Windows. One idea is to split the system in two, to separate the development environment from an “application”. There are a few reasons for this: One exciting prospect with Truffle is the creation of small efficient binaries using GraalVM Native Image. Second, I think Self would make a great polyglot glue language for GraalVM.
Another idea is to host either apps or the environment on a tablet (or even a phone). Running the env on a tablet, the app could be on a different machine, using mirrors across a network. That would make the environment have fixed functionality, which (I hope) would be enough to have Apple allow it on iOS. One instance of the environment could be used to develop the environment itself, running remotely in another instance. This would make the primary environment largely insensitive to development errors.
Anyhow, these are all just dreams right now, especially that previous paragraph, but I’d love to get your reactions.
Sorry I missed the talk but I look forward to watching the recording.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Self-interest