To work on Pharo’s virtual machine, you’ll need to set up both the virtual machine you’ll be modifying, as well as a Pharo image. Below are the instructions required to set up the environment. You will need both the VM and the image containing the VM compilation chain (VMMaker
package).
Building the Pharo VM
- Clone the pharo-vm repo (https://github.com/pharo-project/pharo-vm) .
- You may need to switch to a branch different from the default one, depending on top of which version you want to make your changes.
- Check you have all dependencies needed to build the
pharo-vm
- Tip: When working on macOs, you can install Command Line Tools for Xcode, that already contains many of the dependencies you’ll need.
- Build the virtual machine to check everything went correctly:
- To do so, run the following command inside
pharo-vm
‘s root directory:cmake --build . --target install
- If compilation completes without error, you’re good to go!
- To do so, run the following command inside
Configuring the Pharo Image with VMMaker
- Download
PharoLauncher
from http://pharo.org - Create a new Pharo image (if in doubt, choose the latest stable version)
- Set-up
pharo-vm
in Pharo- Open Pharo image
- Add the
pharo-vm
github repository to the Pharo image via Iceberg (Add
>Import from existing clone
) - Right-click repo ->
Metacello
>Install baseline of VMMaker (Default)
- Verify that the installation completed correctly
- Run all
VMMakerTests
test suites - If all tests pass (except from the JIT-related ones), you are good to go!
- Run all
- To run a Pharo image with a specific version of the VM, you can use the following command in the root of
pharo-vm
‘s root directory:build % ./build/dist/Pharo.app/Contents/MacOS/Pharo ~/Documents/Pharo/images/Pharo\ 10.0\ -\ 64bit\ \(stable\)/Pharo\ 10.0\ -\ 64bit\ \(stable\).image --interactive
- Note: the exact path may differ in your case, depending on your Pharo version and OS.
Now you are ready to go and change the VM code and generate a new image.