LLVM True Lies

I like the deeply articles from Stefan Kanthak and would like to share his inside deep-dive into LLVM titled: “True Lies – or What LLVM Claims, but Fails to Deliver”

I don’t have the expertise to evaluate this article but any missive that’s chock-a-block full of angry words and phrases like “brain dead” isn’t exactly impressive as a dispassionate discussion of the relative merits. Scanning the article, the thesis seems to be there’s only downside and no upside.

Well… that’s an interesting… whatever it is.

Since I’m working with LLVM for Buoy, I thought I’d make some comments.

First of all, like every other open-source project that’s been running for over 20 years, llvm is bound to have some baggage:

LLVM began in 2000 as a research project at the University of Illinois at Urbana-Champaign, led by Chris Lattner under advisor Vikram Adve. The first public release (LLVM 1.0) came in 2003.

Does it have bugs? Sure it does. I ran into a fun one recently with the debugger where Apple has fixed the issue for Xcode but the changes haven’t been integrated back into the source. I happen to know a guy that works on llvm so I’ll send him a detailed bug report and see if we can get it fixed for everyone.

My feeling, after reading the first ¼ of that article is that he started a project that needed a compiler and used llvm assuming it would be perfect. IMHO, anyone that does that with open-source software is disillusioning themselves. LLVM is a huge project and there are bound to be issues.

To this guy’s point about LLVM stealing gcc code, he really should read the release notes. They added a GCC plugin around 2009.

Is LLVM perfect? Heck no. Is it the only game in town? Heck no. But if you’re looking for a one-stop-shop that can build binary code for just about everything, that takes reproducible user bug reports seriously, LLVM is a good place to start.

I’m truly sorry he’s having trouble with it, but in my experience ranting in a blog post doesn’t get those things addressed. Why not put all that energy into filing good bug reports and helping the llvm team triage them. Then sit back with the understanding that if your issues don’t actually cause any major issues, they may still be closed as “won’t fix”.

If he’s still pissed-off after all that, maybe he should start his own fork and fix all those bugs himself… or start over and write his own.