After receiving the new Apple Mini with the M1 processor, we are producing the first version of the Pharo VM. This version, is a base version that lacks JIT optimizations and requires external libraries (it is not build as a bundle). However, it is a good step forward to have a working version in this new combination of architecture and OS. Also, this VM, even without JIT, has better performance than the VM with JIT using Rosetta 2.
We are going to start soon the final stroke in the development of the new version including the JIT, as mostly of it reuses the one already done for Linux ARM64 and Windows ARM64. The required changes are linked with changes done by Apple in the Operating System API, and some “Security improvements” of the new OS.
In this first version, it is required to have installed some libraries with Brew (https://brew.sh/). These requirements will be removed in next versions.
The packages to install are:
Pharo 9 is expecting to use LibGit2 1.0.1 or 0.25, but Brew includes the version 1.1.0. To fix this problem we can link the version 1.1.0 as 1.01. This is a temporal hack as the correct version will be shipped in a release of the VM.
For doing so, we need to execute:
cd /opt/homebrew/lib ln -s libgit220.127.116.11.dylib libgit18.104.22.168.dylib
Downloading the VM
The VM is available in Pharo file server at: http://files.pharo.org/vm/pharo-spur64-headless/Darwin-arm64/PharoVM-9.0.0-ef1fc42b8-Darwin-arm64-bin.tar.gz
You can download and execute it. Watch out, this VM is for Pharo 9 images.
To correctly find the libraries provided by Brew, we need to execute the VM from the terminal with (is a single command):
In case the VM is not open because it has been put in quarantine (as it is not signed), you can allow execution of it doing:
xattr -d com.apple.quarantine Pharo.app
In the following weeks, we are going to provide a complete version of the Pharo VM integrated in the system and running as the one for Intel X64.