LLVM ist a mess
LLVM ist a mess
Posted Mar 17, 2024 9:59 UTC (Sun) by khim (subscriber, #9252)In reply to: LLVM ist a mess by Curan
Parent article: Cranelift code generation comes to Rust
> if you need to break core concepts this often, you probably made a lot of mistakes in the past
Nope. Linux kernel breaks internal interfaces pretty often, too. The only problem of LLVM is that it's advertised as something of a separate project while in reality it's only half of many projects.
If all these projects would have lived in one repo and people would have changed everything in sync it wouldn't have even been visible.
> LLVM ist just not a stable platform you can develop againstThat's the core issue: it was never designed as such. Clang/LLVM developers even explicitly said that you shouldn't try to use it as a stable platform. But lots of companies wanted stable compiler platform and they decreed that LLVM is it against developer's wishes and insistence.
> a lot of LLVM feels like it is a test environment to try out new things for the compiler spaceWhich is precisely what LLVM was designed for. Just open Wikipedia and read: LLVM was originally developed as a research infrastructure to investigate dynamic compilation techniques for static and dynamic programming languages. From what you are saying LLVM works and acts like it was designed to work and act so why is that an issue?
> but then it shouldn't be the basis of anything elseBuild “better basis for anything else”, isn't that the right solution? Maybe as LLVM fork or write from scratch.
I was told in no-uncertain terms in somewhat tangetially related discussion just over there that you have zero right to complain since LLVM is free.
> The one thing I'll never understand is how so many parts of the Khronos/Mesa ecosystem (and others, including Rust and WebAssembly) can depend on such an unstable platform.License. Writing compilers is hard and time-consuming process. Thus there are, realistically, only two choices: LLVM and gcc (via libgccjit). And pointy-haired-bosses out there don't like GPL so LLVM was chosen. Initially they even mandated the use bitcode which produced many stillborn projects (pNaCl, RenderScript and bitcode iOS apps, to name a few), after they realized that developers weren't joking and they couldn't force them to do what they never promised to do bitcode use was abandoned, but since no replacement was available LLVM use continued.
