Stackless/microthreads merge news

Edward Jason Riedy ejr at lotus.CS.Berkeley.EDU
Tue May 9 18:15:32 EDT 2000


And Jeff Senn writes:
 - 
 - Several times I have considered what it would be like to have a
 - 'simple-unified-VM' that supported continuations (if not full
 - continuations -- then at least micro-threading) and could run Python,
 - Java Script, Ruby, ... [Visual] Basic?, Perl??, ... Java????...

Like a Virtual Virtual Machine? See http://www-sor.inria.fr/projects/vvm/ .

Other people might say that the x86 is the unified VM.  It doesn't
necessarily need to run on x86 hardware, as Transmeta and IBM
have shown (www.transmeta.com, http://www.research.ibm.com/daisy/).
Bochs is kinda in this space, too.

And yet other people might eschew virtual machines for intermediate
representations that can be compiled quickly while keeping the
information necessary for advanced optimizations (see the slim binary
work at http://www.ics.uci.edu/~franz/SlimBinaries.html and the
pubs under publications.html).

And then there are those folks who have been working on a Scheme
interpreter to serve precisely this role, Guile.

So lots of people have thought about this.  Which of these approaches
make sense?  I'm not at all sure.  Having bytecode-like format that
can be efficiently compiled and optimized (and recompiled and 
reoptimized) while still being ok to run directly would be nice.
Once upon a time, some of the Guile developers pondered a threaded
tree coding, one that might be like crossing byte-code with the
slim binary approach, but I don't know what became of that.  If I
weren't a lazy bastard, I'd look into something like that myself.

The compilation to whatever hardware is running under it is key for
high-performance, though.  And recompilation is the best way (imho)
to beat on the abstraction and dynamic typing penalties.  A system
designed with those in mind should prove useful.

Jason



More information about the Python-list mailing list