Oh yes!
You cannot imagine all the cleanings that (we they are doing behind your back :) A bootstrap is really a kick in the ass to produce a much much better system.

Thanks you guys for making my dream becoming true.

Stef

Le 19/1/16 16:05, [email protected] a écrit :
Keep up the good work, this is a huge step in making the whole thing a crystal clear box!

Phil

On Tue, Jan 19, 2016 at 3:29 PM, Christophe Demarey <[email protected] <mailto:[email protected]>> wrote:

    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
    
<http://chercheurs.lille.inria.fr/%7Edemarey/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