[Self-interest] future of the Self VM

Randy Smith randy.smith at gmail.com
Sun Aug 1 18:52:05 UTC 2021


Russel et. Al. --

I'm so sorry I missed this presentation! I signed up, but had a conflict that, as I had worried, went long. 

I love the idea of building a slide viewer in which to present the talk!

Was this recorded? Would love to see it even post facto.

--Randy

On 7/31/21, 9:55 PM, "Self-interest on behalf of Russell Allen" <self-interest-bounces at lists.selflanguage.org on behalf of 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.

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

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.

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.)

“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.

> 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