I was taking a look at Docker and I was inspired to dream about self
contained pharo packages that package their dependencies with them,
essentially being isolated and independent , bootstrap is more than
welcomed. Keep up the great work :)

On Tue, Jan 19, 2016 at 8:54 PM Pavel Krivanek <[email protected]>
wrote:

> Hi,
>
> amazing! Do you have any idea how to speed up it? The bootstrap process is
> now running on my machine about one and half hour and it is still far from
> finish.
>
> Cheers,
> -- Pavel
>
> 2016-01-19 15:29 GMT+01:00 Christophe Demarey <[email protected]
> >:
>
>> Hi all,
>>
>> In case you do not know, we work on bootstrapping Pharo, i.e. create a
>> Pharo image from sources, not based on a previous image (well, we use a
>> pharo image to produce it but no code / state from it).
>>
>> This process will allow to define a minimal Pharo kernel (currently 52
>> packages but we could have it far smaller) and to modularize the whole
>> image (currently packages have too much dependencies on packages already
>> loaded into the image).
>> The bootstrap process also allows to write down the recipe to initialize
>> a new image from scratch (some code is missing in the image or is wrong).
>> In addition, I think we will clean a lot of historical objects that are not
>> used anymore.
>>
>> With the amazing work done by Guillermo Polito during his Phd (around
>> Espell, Oz):
>> https://guillep.github.io/files/publications/Poli15Thesis.pdf, *we
>> succeeded to get a first prototype of a bootstraped Pharo 5 image (from
>> 5.392)*.
>> This prototype is able to run an eval command line handler and to log
>> output / errors. Not all classes are yet initialized and you cannot yet
>> save / restart this image but it is a big step forward.
>> It is a 4 mb image (could be half the size without unicode data). You can
>> download it at:
>> http://chercheurs.lille.inria.fr/~demarey/pmwiki/pub/pharo-bootstrap/pharo-bootstrap.zip
>> .
>>
>> Next steps are to have a bootstrapped image fully working, then to load
>> packages on top of it (like network, sunit) to produce a minimal image.
>> Then, we need to implement an Oz VM on top of Spur.
>> After that, we need to work on a reliable way to build the bootstrap (not
>> too sensitive to changes in the image).
>>
>> Christophe.
>>
>> -------
>> demarey@193-51-236-143:~/dev/rmod/bootstrap/bootstrap-2016-01-19$
>> ../pharo bootstrap.image --no-default-preferences eval "1 + 1"
>> 2
>> demarey@193-51-236-143:~/dev/rmod/bootstrap/bootstrap-2016-01-19$
>> ../pharo bootstrap.image --no-default-preferences eval "'a' , 'b'"
>> 'ab'
>> demarey@193-51-236-143:~/dev/rmod/bootstrap/bootstrap-2016-01-19$
>> ../pharo bootstrap.image --no-default-preferences eval "1 / 0"
>> ZeroDivide
>> SmallInteger>>/
>> UndefinedObject>>DoIt
>> OpalCompiler>>evaluate
>> OpalCompiler(AbstractCompiler)>>evaluate:
>> SmalltalkImage>>evaluate:
>>
>> EvaluateCommandLineHandler>>no (source is Undeclared)
>> no source in EvaluateCommandLineHandler>>evaluate: in Block: no source
>> BlockClosure>>on:do:
>> EvaluateCommandLineHandler>>evaluate:
>> EvaluateCommandLineHandler>>evaluateArguments
>> EvaluateCommandLineHandler>>activate
>> EvaluateCommandLineHandler class(CommandLineHandler class)>>activateWith:
>>
>> BasicCommandLineHandler>>no (source is Undeclared)
>> no source in
>> PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: in
>> Block: no source
>> BlockClosure>>on:do:
>> PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
>> PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
>> PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
>>
>> BasicCommandLineHandler>>no (source is Undeclared)
>> no source in PharoCommandLineHandler(BasicCommandLineHandler)>>activate
>> in Block: no source
>> BlockClosure>>on:do:
>> PharoCommandLineHandler(BasicCommandLineHandler)>>activate
>> PharoCommandLineHandler>>activate
>> PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:
>>
>> PharoCommandLineHandler class>>no (source is Undeclared)
>> no source in PharoCommandLineHandler class>>activateWith: in Block: no
>> source
>> NonInteractiveUIManager(UIManager)>>defer:
>> PharoCommandLineHandler class>>activateWith:
>> no source in BasicCommandLineHandler>>activateSubCommand: in Block: no
>> source
>> BlockClosure>>on:do:
>> BasicCommandLineHandler>>activateSubCommand:
>> BasicCommandLineHandler>>handleSubcommand
>> BasicCommandLineHandler>>handleArgument:
>> no source in BasicCommandLineHandler>>activate in Block: no source
>>
>> SmallInteger>>no (source is Undeclared)
>>
>> UndefinedObject>>no (source is Undeclared)
>>
>> AbstractCompiler>>no (source is Undeclared)
>>
>> SmalltalkImage>>no (source is Undeclared)
>>
>> BlockClosure>>no (source is Undeclared)
>>
>> EvaluateCommandLineHandler>>no (source is Undeclared)
>>
>> EvaluateCommandLineHandler>>no (source is Undeclared)
>>
>> CommandLineHandler class>>no (source is Undeclared)
>>
>> BasicCommandLineHandler>>no (source is Undeclared)
>>
>> BasicCommandLineHandler>>no (source is Undeclared)
>>
>> PharoCommandLineHandler>>no (source is Undeclared)
>>
>> UIManager>>no (source is Undeclared)
>>
>> UndefinedObject>>no (source is Undeclared)
>>
>> CommandLineUIManager>>no (source is Undeclared)
>>
>> SmalltalkImage>>no (source is Undeclared)
>>
>> DelayMicrosecondScheduler>>no (source is Undeclared)
>>
>> BlockClosure>>no (source is Undeclared)
>>
>> SmalltalkImage>>no (source is Undeclared)
>>
>> WeakArray class>>no (source is Undeclared)
>>
>>
>> ps: source cannot be displayed because there is no formatter available in
>> the bootstrap
>>
>>
>

Reply via email to