3 ms·
The reasons are quite clear. Contrary to other bytecode formats, LLVM bitcode is not stable, even across minor releases. So anyone using it as bytecode format
by pjmlp 3mo ago
The reasons are quite clear.
Contrary to other bytecode formats, LLVM bitcode is not stable, even across minor releases.
So anyone using it as bytecode format, like Apple, has to keep their own branch, and eventually it becomes too much work.
Microsoft did the same for DirectX DXIL, as did Khronos with the original SPIR definition, thus SPIR-V came to be as replacement, and recently Microsoft also decided to replace DXIL with SPIR-V.
- inkyoto 3mo agoFunctionally, Bitcode delivers – a .bc file can be compiled into any architecture LLVM supports. I have tested a few supported architecture, and it worked like a charm. Stability of the Bitcode format across releases is orthogonal to the functionality it provides. Given that OS/400's TIMI has been a long-running success, it is possible to put extra effort into stabilising the Bitcode format as well. Benefits would be numerous and significant, ranging from CI/CD to apps taking advantage of new or enhanced ISA extensions.
- pjmlp 3mo agoYeah but that is the thing, for those that care about stability there are better options already. Starting by the hyped WebAssembly, which I reckonignise it is useful, only not as breakthrough as it gets advertised given how many bytecode formats have existed since 1958.