A/B Testing the latest VM on the Pharo repository PRs

GP
Guillermo Polito
Wed, Sep 14, 2022 6:22 AM

Hi all,

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

G

Hi all, 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 G