[Squeakfoundation]base image distribution

Stephen Pair squeakfoundation@lists.squeakfoundation.org
Mon, 9 Dec 2002 10:30:18 -0500


Rob Withers wrote:
> I completely agree, almost.  :)   What is the smallest 
> feature set for the
> base stripped image?  Is there a swiki page on this?

Could we get the tiny image down to 1 object?  I'm actually kind of
serious here.  I'm sure couldn't do it in 1 object, but the idea I'm
trying to convey is that the base image should ultimately consist of an
*extremely* small number of objects.  What those objects are, it's
probably pre-mature to waste time at this point trying to figure out.
But, if we set a goal of trying to shrink the base image with every
release...we should come up with something very small in the long run.

> The multicast events are not a new feature but a refinement 
> of an existing
> feature that compliments the #update:/#changed: mechanism.   
> I can imagine
> that we may want to include this in the base raw image along 
> with exceptions, #perform:, a file system, and the compiler.

Sure, but perhaps the update:/changed: mechanism shouldn't be there
either.

> SqueakMap won't work without networking, so this base image 
> wont be bootstrapable from the net.  I also start thinking 
> about the MobVM when we look at the smallest bootstrapable unit.

In order to get the SqueakMap features, you'll need an image with the
minimal set of packages loaded that will support SqueakMap.  I consider
this to be a Squeak distribution (the SqueakMap distro if you
will...which will ultimately be a subset of the SqC distro).  

I don't think the base image should know anything about SqueakMap, or
networking, or the display, or MVC, or Morphic, and maybe not even
streams, large integers, etc.  I am not suggesting that this is going to
happen overnight; I'm merely throwing this out there to get people
thinking about the future so that we can make better judgements about
the decisions that we are faced with right now.

> Here is what I see as the base image distro.
>     - basic vm with file system support, perhaps MobVM 
> enabled - deal with dll locations, blah
>     - basic image with enough juice to read a startup script
>         - no gui, no network,
>         - incl compiler, fs, evaluation, collections, 
> metamodel, magnatude
>     - base changesets and plugins to add the bare minimum for 
> gui (MVC or Morphic?), network, SqueakMap
>     - optional local SqueakMap repository with a snapshot of 
> base extension packages (as differentiated from application packages)
>     - optional local SqueakMap repository with the entire 
> universe (and then
> some) in it.  (for those of us without even a 1 Baud 
> connection to the net

I think its pre-mature to think about what a base image should or shold
not have.  All we need to be concerned with is: "what is the next thing
that we can throw out of the base image?"  Eventually, we will get to a
very tiny base image that way and we won't waste a lot of time arguing
whether this or that belongs in it (because such arguments can only take
place in hypothetical land right now)
 
- Stephen