“Today, Clang completed its first complete self-host! We built all of LLVM and Clang with Clang (over 550k lines of C++ code). The resulting binaries passed all of Clang and LLVM’s regression test suites, and the Clang-built Clang could then build all of LLVM and Clang again. The third-stage Clang was also fully-functional, completing the bootstrap.”
A HUGE, from the deepest of my geeky heart, CONGRATULATIONS for all CLang developers. You guys are doing an awesome, and important, work!
And, to top it up, a huge THANK YOU!
Congrats to the LLVM folks, that’s a massive thing when a compiler can host itself perfectly. Awesome job! Those guys are a lot smarter than I’ll ever be.
This is awesome news. Good job to the Clang/LLVM team!
I have waited so long for this. It means that Clang finally has reasonable C++ support!
Now I really can’t wait until I can compile the Linux kernel with it. That should be even easier, since it is just C, which has been supported quite well for a long time. (I think the problem is all the inline asm and other platform dependent stuff that basically only kernels ever use.)
Just imagine an entire Linux system compiled with Clang/LLVM…
It would take less than half the time as with GCC. Gentoo would actually be usable.
Unless CLANG includes all the GCC extensions, then you won’t be able to compile the Linux kernel for a while. The kernel devs use a lot of GCC extensions.
I kind of wonder what kind of effect using LLVM as a GCC plugin will have when 4.5 is released with the completed plug-in API. I assume those extensions will still be functional when LLVM runs as a plugin?
Download the plugin version of LLVM and find out at http://dragonegg.llvm.org/ . Note: Dragonegg only works on POSIX systems so it won’t work on Windows.
GNUstep + ObjC should be top priority.
Objective-C is already stable and mature, even for the GNU runtime. The only reason the compiler couldn’t bootstrap until now is that the compiler was written in C++ that, while it scales better than C and is probably faster than ObjC for this kind of job, requires a complex compiler and libraries to compile at all.
As for GNUStep… Well, it hadn’t much following back when it was created, it hasn’t now. You can’t force people to improve it.
It has support for a lot of them and work is obviously being done at a rapid pace to add support for the rest. You didn’t have the foresight to think of compiling Linux before any Clang developer did, you know.
There were a few LLVM features missing necessary to implement certain GCC extensions (and so Clang couldn’t even try to implement them), but they are definitely being actively addressed.
I have yet to test it myself:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-February/029103.htm…
Hey Phoenix, you seem to be pretty up to date on the FreeBSD front, hear anything about how close they are to being able to compile with Clang?
Edited 2010-02-06 04:20 UTC
http://lists.freebsd.org/pipermail/freebsd-announce/2009-October/00…
There is a lot of work being done to get LLVM to the point where it can replace GCC within the *BSD’s. Hopefully we’ll start to see such a transition within the next couple of years as more components of the *BSD system are replaced with *BSD licensed technologies.
Hopefully there will also be a move to making LLVM the default compiler for Mac OS X in the not too distant future given that there will be better integration between XCode and the compiler so that more fruitful feedback can be given to the developer when something goes pear shaped.
Xcode was built with LLVM 2.6.
I’d expect with the release of LLVM 2.8 and Clang 1.2 or 2.0 [whatever they call it] that the move will be made, though GCC-4.5 obviously is supported via the DragonEgg project as a GCC-4.5-LLVM frontend.
LLVM 2.7 is already being tagged for an end of March release.
Edited 2010-02-06 21:09 UTC
No – it was compiled using LLVM with a GCC front end – what I am talking about is a complete LLVM replacement for the GNU toolchain which is currently in development; not just LLVM but Clang and the GNU bintools replacement which is in development
I do hope that there is a push to move developers away from using GNU extensions in favour of using standards based C/C++ – if that means by default displaying big ugly messages that their code is crap and to re-write it in standard C/C++ then hopefully we’ll see projects become more platform independent than the current situation of software in the open source world being solely written for Linux.
Edited 2010-02-07 03:11 UTC
funny to think of OSS software moving away from GNU lockin. Extensions, what?
http://llvm.org/Users.html
Well, there is not really that much “non-BSD” stuff in modern BSD systems. Gcc, linker and binutils, and groff. That’s pretty much it. The last one is being replaced AFAIr and the first group presumably goes out if a new compiler is brought in full-time.
http://clang.llvm.org/cxx_status.html
February 5, 2010.
Some libraries (e.g., Boost.MPL) successfully build and pass regression tests, the majority still fail.
http://clang.llvm.org/cxx_status.html
Cmake
Compiles, passes regression tests (debug build) February 9, 2010
Qt
Partially compiles; miscompilation of uic prevents complete compilation, qmake works, some small examples also. February 9, 2010 [Tracking bug: PR5881]
New additions: AST