[Ann] bootstrapping tools

I released a first version of the bootstrapping tools in https://github.com/carolahp/pharo/tree/candle

Follow the instructions in the readme for generating the environment for bootstrapping small kernels.
Once you build your development environment, two windows are shown in Pharo by default, each for bootstrapping a different small image: one is Pharo Candle, a tiny image that weights around 160kb and which logs some small benchmarks in a log.txt file. The second one is our minimal image of Pharo, which weights 1.7MB and is able to load precompiled code  using a tool called Hermes. (The generated images will initially have a size of 30mb, and will be resized after executing them for the firs time with the VM, this is a bug that I will fix soon)
The images are generated taking as input the source code of all the classes that will belong to the system (in tonel format) and they are located in the folders pharo/src for the sources of Pharo minimal and pharo/bootstrap/scripts/pharo/PharoCandleSrc for Pharo Candle.
You can check the content of these source files using the button show sources and you can export them in tonel format using the link “export to Tonel” shown in the Calypso view. (If you do that, you need to close the tool and open it again .. I will add an auto refresh soon :p )
When you click the button write , generated images are saved in the folder pharo/bootstrap/scripts/pharo/bootstrapped . You can execute these images using the pharo headless vm 32 bits (you can use the one in pharo/bootstrap/scripts/pharo/.pharo
The current tool also allows you to execute and debug code in the generated image after generating it and before writing it to disk (it has some limitations whose cause and extent I need to explore in the future), and it also allows you to inspect an already generated image (inspect button), showing you it’s special objects array for now.
This is just an early version, but it already allows to play with the bootstrapping in a more friendly way
%d bloggers like this: