TL;DR; I propose we start testing the latest VMs on PRs to the Pharo repository in a "semi-random” way. The idea is to earn some confidence while having a small impact on all of you.
We need to slowly start pushing the latest VM version, right now hosted in the pharoX branch of the VM repository.
This branch so far has all our latest work on the VM for at least one year. Some highlights
Interpreter variable auto-localization (Feat/automatic localization pharo-vm#371 https://github.com/pharo-project/pharo-vm/pull/371)
Slang cleanups and improvements (Clean slang warnings pharo-vm#413 https://github.com/pharo-project/pharo-vm/pull/413, Fix while statement printing pharo-vm#265 https://github.com/pharo-project/pharo-vm/pull/265, Cast pharo-vm#230 https://github.com/pharo-project/pharo-vm/pull/230, Clean slang warnings pharo-vm#413 https://github.com/pharo-project/pharo-vm/pull/413, Switch translation to CAST, and tests pharo-vm#311 https://github.com/pharo-project/pharo-vm/pull/311, Add several CAST translations and tests pharo-vm#307 https://github.com/pharo-project/pharo-vm/pull/307, Fix type inference tests pharo-vm#291 https://github.com/pharo-project/pharo-vm/pull/291)
SIMD support in the JIT (Speed up object initialization in AArch64 using SIMD instructions pharo-vm#421 https://github.com/pharo-project/pharo-vm/pull/421, SIMD bytecodes pharo-vm#444 https://github.com/pharo-project/pharo-vm/pull/444)
Initial work on the perm space (Composed image format pharo-vm#377 https://github.com/pharo-project/pharo-vm/pull/377, Composed image format: C translation pharo-vm#388 https://github.com/pharo-project/pharo-vm/pull/388, Refactoring of Snapshot and Loading of Images pharo-vm#372 https://github.com/pharo-project/pharo-vm/pull/372, Perm space on image pharo-vm#416 https://github.com/pharo-project/pharo-vm/pull/416, New & old remembered sets pharo-vm#418 https://github.com/pharo-project/pharo-vm/pull/418)
Many many bugfixes
To not disrupt anybody’s work, I propose to make some kind of AB testing on the CI, only impacting PRs to the Pharo repository.
odd builds (1,3,5,…) use the latest VM
even builds (2,4,6,…) use the stable VM
This will make sure that:
the latest VM will be tested in a complex scenario (load code, run tests…)
people that have a problem can re-run their builds to get a stable run
I’ve made the following PR that follows this idea https://github.com/pharo-project/pharo/pull/11678