This repository contains sources of the Pharo language. Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback (think IDE and OS rolled into one).
To download the Pharo stable version for your platform, please visit:
This repository contains only sources of the Pharo image. The virtual machine source code is managed in a separate repository:
The minimal image contains the basic Pharo packages without the graphical user interface. It is useful as a base for server-side applications deployment.
Bootstrapping Pharo from sources
To bootstrap a new Pharo image you need the latest stable version of Pharo. For more information about bootstrapping, refer to guillep/PharoBootstrap.
The bootstrapping can be done on a properly-named branch using the following script:
BUILD_NUMBER=42 BOOTSTRAP_ARCH=32 bash ./bootstrap/scripts/bootstrap.sh
This will generate and archive images at various stages of the bootstrap process up to the full image in Pharo8.0-32bit-hhhhhhh.zip where hhhhhhh is the hash of the current checkout.
Additional information on the stages of the bootstrap and how to snapshot during the process are provided as comments in bootstrap.sh.
Tip: You can set
BOOTSTRAP_CACHE environment variables to do the bootstrap outside of the source repository.
Note: If you are on a branch that doesn't follow the expected naming convention ('
PharoX.Y'), then the script will pick an appropriate default (such as
Pharo7.0). To build Pharo8.0 from a custom branch, you need to set
BRANCH_NAME=Pharo8.0 before the bootstrap script is run.
This source code repository is exported in Tonel format. In this format, packages are represented as directories and each class is inside a single file.
How to contribute
Pharo is an opensource project very friendly to contributions of the users. See the document CONTRIBUTING how you can help to improve Pharo.