A naive question about the speed optimization of anthony

Tim Rowledge tim at sumeru.stanford.edu
Wed Apr 2 23:08:54 UTC 2003


first, 
I'm all for optimising Anthony's speed :-) I'd prefer to optimise mine
but senility is probably sufficiently advanced such that it is
impractical.


Daniel Vainsencher <danielv at netvision.net.il> wrote:

> As far as I understand, Anthony has split his original changes (which
> were targeted to VI4) into the following -
> 
> 1. Compatible code changes to 3.4's Contexts, fixing existing bugs, and
> required to support -
I've only tested the first version that didn't need the SmaCC code and
it looked like a good start to me. I'm not personally going to try the
SmaCC related version until it seems there is an agreement about the
licensing issues that appear to be in the way. It would not be an awful
thing to include the required prims in the VM code since they don't get
in the way of anything else so far as I can see. At least it would make
testing easier for non-VM makers.

> 3. Image format changes that create a different representation, allowing
> BC and more speed.
I don't think the proposed image format changes are particularly related
to the BC stuff. The major change in format is to drop the magic format
of CompiledMethods (which appears to improve performance by a couple of
percent, add a little to the memory footprint and makes some JIT related
stuff easier) and the rest is simply tidying up a few header bits. There
are a bunch of other VM changes that might as well be done at the same
time given that they become trivial when dropping backwards
compatability (all the obsoleteNumbered/NamedPrimitive tables for
example).

The big change that was in his early BC system and that was responsible
(I'm pretty certain) for the performance improvement was the different
way of handling the context stack. Unfortunately it was a big barrier to
JIT things. A not entirely dissimilar design can be used which doesn't
have this problem - see Eliot Miranda's old BrouHaHa papers for one
illustration. Anthony's original code broke Deutsch's Dictum "You can
cheat but don't get caught".

A change in image format is a big deal. It means a _break_ in support;
older images will only be able to run on older VMs, new images on new
ones. What does one do about supporting these older images with updates
to solve problems whilst some conversion period runs its course?

tim
-- 
Tim Rowledge, tim at sumeru.stanford.edu, http://sumeru.stanford.edu/tim
Useful Latin Phrases:- Sona si Latine loqueris = Honk if you speak Latin.



More information about the Squeak-dev mailing list