[self-interest] Re: VM plug-in

Jecel Assumpcao Jr jecel at lsi.usp.br
Fri Nov 6 18:40:29 UTC 1998


Steve Dekorte wrote:
> Jecel Assumpcao Jr <jecel at lsi.usp.br> wrote:
> > There are easy (but slow) ways and there are hard (but a little
> > less slow) ways to do it. Many people have asked me to do this
> > over the years, so I looked into it.
> 
> I'm interested in the details of the hard way. I see a problem with
> the slow way - If Java is 10x slower than C, and a JSelf within Java
> is 10x slower than Java, then it's use will be limited to simple
> scripting which isn't very interesting.

Even a simple Self interpreter written in C would be to slow for
pratical use. On page 31 of Urs' thesis there is a discussion of
the peformance of a Self interpreter and mentions one written in
Oberon-2 that was about 500 times slower than Oberon-2 itself.

Does anyone here have any experience with the Self 1.0 interepreter
written in Smalltalk? It was called Ultimardrev. Now that a free
version of the ParcPlace Smalltalk is available for Linux, I might
try it out.

About the hard way, it is the one Diego Deck listed as step "c" of
the JSelf project. It is essentially doing a full Self 4-like
virtual machine but using Java bytecodes instead of Sparc machine
language as a target.

> > Why not a plug-in?
> 
> A plug-in is fine, as long as it's just as easy to install.
> With a COM object, installation = 1 or 2 button clicks.
> The last plug-in I tried to install was Cocoa and it wasn't easy.

My experience with Netscape 3 is that if a page includes an object
that needs a plug-in you don't have, you can be redirected to a page
at Netscape that lists all plug-ins available for your platform. You
just click on the right one and it is downloaded and installed. The
original page now works. The last time I did this was a long time ago,
so my memory is not to be trusted on this.

I have no idea how things are on the Internet Explorer side of things.

> > One problem with a Self or Smalltalk VM plug-in is that it needs
> > a rather complete image to work with (see Dolphin Smalltalk for
> > an example). What we need is a way to split up the image into
> > tiny pieces that can be loaded on demand.
> 
> NewtonScript soups did this. I didn't like some of the details
> of their implementation but it's worth taking a look at.

I never saw any technical details on Newton soups, so I can't comment
on them. On the Merlin pages, I describe two different designs for
persistent objects store, but the one I intend to implement in tinySelf
is a little different in that there is no garbage collection at all for
old objects. I have this silly idea that disk space is growing at such
a rate that the horrible distributed GC problem is no longer worth
solving!

-- Jecel

------------------------------------------------------------------------
Free Web-based e-mail groups -- http://www.eGroups.com




More information about the Self-interest mailing list