Minimal images [was: Re: [ANN] Spaghetti Tracer (0.4)]

Alan Kay Alan.Kay at squeakland.org
Mon Nov 4 17:44:10 UTC 2002


Also, a much much much smaller compiler could be written for many 
purposes incuding bootstrapping.

Cheers,

Alan

------

At 4:36 PM +0100 11/4/02, Andreas Raab wrote:
>Dan,
>
>>  This is an interesting question.  I've been thinking about it
>>  recently while contemplating the ST72 and ST76 kernels (which
>>  are both under 100k of source).
>
>It's relatively simple to make a rough cut at 300-400k in Squeak "as a
>useful small system", e.g., without doing a lot of careful crafting and
>still be able to do about everything you can imagine. At this size you
>end up with basically the following stuff:
>a) Kernel (Object, Boolean, Behavior, Class etc)
>b) Processes (Process, Delay, ProcessorScheduler etc)
>c) Execution (CompiledMethod, Contexts, Exceptions)
>d) Magnitudes
>e) Collections (the basic ones; String, BA, Set, Dict, Array, OC etc)
>f) Streams (the basic internal ones)
>g) Files (directories, streams)
>h) Compiler
>
>With the above, you are actually able to have a cross-platform Squeak
>with a quite reasonable size and no limits of what you can do. I think
>it'd be much harder to get any less than that - if you look at the above
>everything from a) to e) is pretty much required and only very careful
>crafting could remove any of these. The best additional candidates would
>probably be g) and h) by which you'd give up cross-platform and the
>ability to "get more" into Squeak (which might be handled by a compiled
>byte code loader). There are probably more support methods that could be
>removed once those are gone but that again would require very careful
>preparation in order to get to this point. My personal guess is that the
>critical size is somewhere around 100k or so. Put that on top of a 100k
>VM (which is quite reasonable too) and you end up at 200k overall. Hey,
>this should run on MSDOS, too ;-)
>
>>  I can imagine a source-only "image" that could be executed by
>>  a VM that did dynamic translation (into bytecodes or beyond).
>>  This relieves the need for a compiler in the image (other
>>  than something that just adds new source to a method
>>  dictionary (or simple list!)).  I think the essence that is
>>  required of a minimal "complete" image is just enough to make
>>  the source code meaningful, not necessarily efficient.
>
>This would be quite an interesting exercise but it wouldn't help with
>a)-g). There is lots more to running Squeak than the compiler and its
>size isn't actually that bad.
>
>Cheers,
>   - Andreas


-- 



More information about the Squeak-dev mailing list