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 > >
smime.p7s
Description: S/MIME cryptographic signature
