Image Builder (Re: Mythical small kernel images?)

PhiHo Hoang phiho.hoang at rogers.com
Wed Feb 12 03:05:20 UTC 2003


Alejandro,

> You can know the primitives that the image use and build
>  the VM contaning only this primitives.

    Yes, now I get it. I also thought of Interpreter/InterpreterEx
    and Primitives/PrimitivesEx  plugins ;-)

> Here I attach our very first running image (15kb).
> It only has the quitPrimitive method and do 3+4.
> We use this image to test the proper initialization
>  of running process and context; and it run during
>  the second try!
> It was VERY exiting.
> Debuggin the VM and seen de bytecodes for 3+4
>  was lived as an unique event!

    Thanks a lot. I can't wait to play with your tools.

    Cheers,

    PhiHo.


----- Original Message ----- 
From: "Alejandro F. Reimondo" <aleReimondo at smalltalking.net>
To: "The general-purpose Squeak developers list"
<squeak-dev at lists.squeakfoundation.org>
Sent: Tuesday, February 11, 2003 8:16 PM
Subject: Re: Image Builder (Re: Mythical small kernel images?)


> Hi,
>
> > > Out images can determine the minimum requirements for the VM...
> > > They can also be used to build the minimum VM that can run them.
> >     Would you please elaborate on this.
>
> You can know the primitives that the image use and build
>  the VM contaning only this primitives.
>
> >     BTW, I put your 'sample2.image' thru the analyzer :
> >         1/- There are 124 classes in the image.
>
> They are not the minimal set of classes...
> An image with minimal classes are aprox 15kb.
> Here I attach an image that do a garbageCollect and exit
>  and a "3+4" image (only do 3+4 and exit)
>
> >         1/-  34 classes with 0 instances  (so shouldn't be in the
image):
> >                 - ProtoObject Class
> >                 -ArrayedCollection
> .....
> >                 -Win32Console
> >                 -Win32Handle
>
> Most classes are mantained to preserve Squeak hierarchy.
> The only thing you must preserve is the critic classes shape
>  for the VM to work as usual.
>
> >         2/- Consequently :
> >                 - 33 classes of above classes respectively
> >                     are not needed in the image.
> ........
> >         3/- The rest of the classes (57) and number of instances are:
> >                 (What is that sole instance of Float, Point is doing
> >                   in this sample2.image ?
>
> They are prototipycal instances required by the VM; but they can be
replaced
> by nil in this images because we do not instantiate the classes during
> runtime...
>
> >                   For that matter, would you please verify that these 57
> >                   classes are really needed ?
>
> There are classes that can be removed, but other are really needed to
build
> the image (e.g. MethodDictionary, Array, Symbol)
>
> >and what does Fenix mean ?)
> It is our extension to environments (simple changes to work as we want).
> (Smalltalk is a FenixEnvironment in our image)
>
> >     If you can spare sometime, would you please confirm or deny
> >     the validity of this analysis. It would be very helpful for me
> >     to fine tune the analyzer.
>
> The contents are provably fine, but some classes can´t be
>  removed without breaking the image.
>
> >     Also, if the analysis is correct, can your technology create an
> >     image without 'cruft' and micro-kitchen-sink ;-)
> >
> >     I heard a lot about the '3 + 4' image but never saw one.
>
> Here I attach our very first running image (15kb).
> It only has the quitPrimitive method and do 3+4.
> We use this image to test the proper initialization
>  of running process and context; and it run during
>  the second try!
> It was VERY exiting.
> Debuggin the VM and seen de bytecodes for 3+4
>  was lived as an unique event!
>
> >     Thanks a lot for your time and effort, my dream
> >     of an ImageBuilder is now coming true.
>
> cheers,
> Ale.
>


----------------------------------------------------------------------------
----


>
>



More information about the Squeak-dev mailing list