A bit tangential to the main topic of the post. They mention that they are working on another optimizing compiler Ion which will replace the cranelift compiler (which is still in nightly) as the new compiler for WebAssembly.
They link the issue [1] tracking the change which also speaks about disabling cranelift.
To my knowledge cranelift was made for the purpose of compiling WebAssembly in Firefox, so I am not sure if I am missing something here (it's not yet production ready maybe). The Cranelift README[2] mentions that it will be a backend for IonMonkey.
I am a complete layman here so I am curious if someone here has a better understanding.
Cranelift was originally started as a project to make a new backend for wasm in SpiderMonkey. It took on a life of its own, and has been transferred by the Bytecode Alliance (which Mozilla is a part of). At the moment it's not mature enough for us to use in production (both in terms of performance and in terms of code churn). We're hopeful that will change over the next few years, but we need to ship wasm support now, so we're sticking with our existing backend.
(We intend to keep Cranelift working behind a compile-time flag.)
> They mention that they are working on another optimizing compiler Ion which will replace the cranelift compiler (which is still in nightly) as the new compiler for WebAssembly.
Ion (nee IonMonkey) predates Cranelift, being the natural evolution of Mozilla's previous SpiderMonkey JITs. From your link:
"Prototyping work (bug 1678097) has demonstrated that Ion can generate good code quickly for wasm on ARM64, and given that Ion has good stability and we know it well, we will ship it as the initial optimizing compiler for wasm on that platform."
The keyword being "initial"; it appears to just be saying that Ion is good enough to enable, with support for Cranelift being retained in the event that it ever surpasses IonMonkey in capability.
So Firefox on Apple Silicon got Cranelift first, but only in nightlies, and will soon get Ion in release builds - "become the new default" means it will replace the baseline compiler.
They link the issue [1] tracking the change which also speaks about disabling cranelift.
To my knowledge cranelift was made for the purpose of compiling WebAssembly in Firefox, so I am not sure if I am missing something here (it's not yet production ready maybe). The Cranelift README[2] mentions that it will be a backend for IonMonkey.
I am a complete layman here so I am curious if someone here has a better understanding.
[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1687626
[2] https://github.com/bytecodealliance/wasmtime/tree/main/crane...