Skip to content

Detailed Development Guide

Hernán Morales Durand edited this page Feb 25, 2023 · 1 revision

Editing the VM code in your image

You can load the Pharo code of the VM using Pharo's git client Iceberg. You can do so by cloning directly this repository from Iceberg, or by adding an already existing clone to it.

Alternatively, if you're building the VM using the instructions above, the build process does already generate a Pharo image with the VM code loaded. You'll find such image at ./build/vmmaker/image/VMMaker.image inside your build directory.

Compiling a new VM

The build process is described above, so in order to generate a new PharoVM with your changes, there is different approaches.

  • Commit your changes (with Iceberg) into the local git repository you cloned then run from the building directory

    make -B install

    This will force a rebuild of a new VMMaker image by loading your new code and all its Pharo dependencies into the basic Pharo image. Downloaded are things are cached and not downloaded again. Note: this rebuild starts at the step 3 vmmaker.

  • Save your image (or overwrite the VMMaker.image file), then run in the building directory:

    cmake . -DGENERATE_VMMAKER=OFF -DVMMAKER_IMAGE=$IMAGEPATH && make install

    where $IMAGEPATH is the path of your image or, if you just overwrote the image:

    cmake . -DGENERATE_VMMAKER=OFF && make install

    Note: this disable the generation of the vmmaker image. The rebuild starts at the step 4 generate-source.

  • Generate the C files yourself somewhere (in a Pharo playground for instance):

    PharoVMMaker generate: #CoInterpreter outputDirectory: '/a/path/'

    then run the following shell command in the outputDirectory given above:

    cmake -S "$PHAROVM" -B "$PWD" -DGENERATE_SOURCES=OFF && make install

    where $PHAROVM is the root of the pharo-vm project (your local git repository for instance).

    Note: this rebuild starts at the step 5 all. Here a fresh building directory can be used.

Clone this wiki locally