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.