Hi,

> On Jan 21, 2016, at 9:48 PM, stepharo <[email protected]> wrote:
> 
> reducing also the number of classes in the kernel could help.
> But first it should work and then we start to optimize
> Now this is true that 10 h is insane :)

It’s not insane. It’s a first solution :)

Doru

> 
> Le 20/1/16 09:08, Christophe Demarey a écrit :
>> Hi Pavel,
>> 
>> Le 19 janv. 2016 à 19:53, Pavel Krivanek a écrit :
>> 
>>> 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. 
>> 
>> The process is indeed far too long (takes around 10 hours) on the CI server.
>> Reasons are:
>> - we use a stack interpreter VM
>> - we modified it and is a bit slower than a classical stack VM
>> - we use AST interpretation to build the bootstrap and it is very slow. 
>> Guille already did some speed improvements by avoiding to interpret loops by 
>> example.
>> 
>> I did not yet spend time on this point because I first wanted to have 
>> something working.
>> Definitely, this problem will be tackled when we will put in production the 
>> bootstrap.
>> 
>> Cheers,
>> Christophe
>> 
>> 
>>> 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
>>> 
>>> 
>> 
> 

--
www.tudorgirba.com
www.feenk.com

"Not knowing how to do something is not an argument for how it cannot be done."


Reply via email to