[self-interest] Performance?

Jecel Assumpcao Jr jecel at merlintec.com
Mon Jul 5 17:14:34 UTC 2004


A page with lots of meaningless numbers to add to our meaningless 
numbers: http://minnow.cc.gatech.edu/squeak/768

David Ungar mentioned:
> And SPARC should be better than PPC: those wonderful register windows.

Interesting! People keep complaining about register windows in my 
designs and quoting the ECOOP'95 paper by Urs and you as proof that 
this is a bad idea. Of course, that was before the UltraSparc.

Mario Wolczko listed among Self's advantages over HotSpot:
> - has a much faster bytecode verifier ;-)

I understood that to mean "none", but have never actually tried 
generating some bogus bytecodes sequences to see what the compilers 
would do.

On Sunday 04 July 2004 14:38, Jakob Praher wrote:
> * how would you design a self vm from scratch these days?

As you mentioned below, doing it in Self would be the best approach 
(though I am doing it in hardware). Here is a very old message listing 
some objections to doing things this way:

http://www.merlintec.com/old-self-interest/msg00016.html

> * what are the things, learned?
>   -> for instance the heap word structure, with the
> two bit tag fields, were they big problems when introducing 64 bit
> support?

There isn't any 64 bit support, yet. But it should work just fine with 
the two bit tag fields. Of course, it is extremely tempting to use all 
these extra bits to expand the tag to 8 bits (or even more). There was 
an interesting discussion about this in the Squeak VM list since they 
are currently working on a 64 bit port.

> * self-in-self would be interesting (I know the jikes rmv design,
> which is a java vm in java, they use some kind of runtime
> image, which must be created with a java vm once and then gets
> dumped to a file. they use a simple image loader, which produces
> all the runtime data structures for the vm to launch it).
>   -> what are design issues here

Little Smalltalk and the current version of Slate have a similar scheme 
where they have a special "initial image" generation.

Bootstrapping by starting with something that runs on top of Self (like 
my old tinySelf 1) allows you to avoid having to deal with these kind 
of issue until near the very end. You need some planning to be sure 
that you will be able to replace piece by piece the whole underlying 
system to the point of running as a stand alone system.

> I could imagine that a self vm could lay the ground for a vm that is
> capable of different language/runtime systems, like the paper that
> implemented java on top of the self vm. This would especially be
> valuable, given the soup of different languages/runtimes we have today
> (java,python,.net, ... )

I imagine you are talking about this paper (and not the Pepe one):
http://www.merlintec.com/vmworkshop99/sub.pdf

> Are you serious about relaunching a self project
> again? It could be rather interesting...

Don't you consider the release of Self 4.1 back in 2000 after the 
project had been officially closed in 1995 as a relaunch?

In fact, by looking at the O'Reilly programming languages poster you 
would think that Smalltalk is totally dead and has been replaced by 
Self:

http://www.oreilly.com/pub/a/oreilly/news/languageposter_0504.html

-- Jecel



More information about the Self-interest mailing list