So, just for the laughs and giggles, I spent some time playing around with Clang LLVM to see what the fuss is about...Tuxman wrote:...there is still Clang...
Curiously enough, despite a ridiculous install-size of 830Mb it doesn't actually ship with any Windows-compatible includes or libraries - essentially all you get is a compiler (which, I guess, is all it's supposed to be, so fair enough).
Thus, we have to supply libraries and sundry ourselves... ironically by using those from either MSVC or GCC itself. Naturally, I just used the ones from GCC as (at least in my opinion) the goal is to avoid installing the mega-bloat of VC & its SDK's in the first place.
Anyway, aside from being rather pushy with its default set of warnings, and downright cantankerous when it comes to convincing the x64 LLVM to build an x86 binary (building x64 works fine with a few extra linker directives, "out of the box"), I can at least say that it works, and (surprisingly) integrates well enough with CodeBlocks (as IDE), having its own compiler profile (customised options related to Clang, though "under the bonnet" Clang accepts most GCC directives from legacy anyway).
Considering that both GCC and Clang compile Khronos in well under a second, there's not much to compare there, so as a test, I compiled the whole PCRE (RegExp) library, which didn't help much as SSD's and overclocked quadcores pretty much seem to make compile-times irrelevant these days. Just for fun I might try compiling LLVM itself, just to see what its intestines look like. But god, Clang really does like to warn about every little floating piece of dust possible... a very opinionated compiler. Very opinionated.
Ultimately, though, the best I can say of it is that it generated a 6Kb smaller binary than GCC - one assumes that if I recompiled the GCC library sources against LLVM, then the binary could shrink proportionally still more.
But still... the nagging question... why is the incomplete package more than twice the size of GCC which comes replete with full libraries and includes? Very odd.
Have to spend more time testing the actual code produced to see if there are any real runtime benefits, depending on Clang optimisations, so the jury is out, there.
May the militant arm of the Free Software Foundation have mercy on my soul for flirting with this slight indiscretion. Incidentally, the whole reason Apple decided to throw all sorts of money at LLVM (when it used to use GCC exclusively) is because Apple couldn't live with the FSF licensing. Funny how that works... Apple (like MS) has a history of "embrace, welcome, exterminate" when it comes to open-source projects. Give them enough time, and they'll hit the Exterminate phase soon enough (as in "oh, yeah, we're making this proprietary now, so feck off ye freethinkers"). Always just a matter of time with them.
Methinks I'll stick with GCC - it's rough and ready, has about two decades' worth of tested code behind it out in the wild, and doesn't have anywhere near as much evil corporate stink about it.
A fun experiment, though.