[Self-interest] future of the Self VM

David Ungar ungar at mac.com
Sun Aug 1 22:33:09 UTC 2021

> On Jul 31, 2021, at 9:54 PM, Russell Allen <mail at russell-allen.com> wrote:
> Hi Jecel
>> On 1 Aug 2021, at 12:42 pm, Jecel Assumpcao Jr <jecel at merlintec.com> wrote:
>> Russell's talk this past Wednesday was really great! I liked the idea of
>> starting of with a demo building a slide viewer to use for the rest of
>> the talk.
> Thanks, I had fun interacting with you and David and the others, and it was great to see interest in Self.

It was great fun, and deeply gratifying for me to see your talk and to interact with "my people"!

>> One of the slides was about options for moving the VM forward. I
>> remember at least some of the alternatives - please add any that I
>> forgot.
> I think that each of the VM options have pluses and minuses.


> The routes which require the least resources are probably a port to Cog or Truffle/Graal. 

Could be.
> 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.

> On the other hand, a Klein or neo-Klein makes Self in control of its own destiny, but at the expense of doing it all itself. (I suspect that we would want to create something new with the lessons of Klein, rather than base the new VM on Klein itself.)

Sounds about right.

> “Inverse Klein” is not really a thing, it’s just something I made up to describe some work I did a while back where you could create primitives within Self at runtime, by filling a byteVector with machine code then marking it as executable for the VM. The point was that instead of writing a Self VM - and then all the primitives - you could gradually rewrite the existing VM by moving primitives into Self and removing them from C++. The end of this is a smaller cleaner VM which reduces what is left to rewrite, and on the way you probably will have built a bunch of useful tools - compilers, assemblers etc.

I like this idea, too.

>> The OOPSLA 2005 paper on Klein (available to ACM members) include the
>> video fo the talk by David Ungar, Alex Ausch and Adam Spitz (available
>> to everyone):
>> https://dl.acm.org/doi/10.1145/1094855.1094865
> I didn’t know about this video - thanks!
> Russell
> _______________________________________________
> Self-interest mailing list
> Self-interest at lists.selflanguage.org
> http://lists.selflanguage.org/mailman/listinfo/self-interest

More information about the Self-interest mailing list