Can Clang/LLVM rebuild a whole distro like Gentoo from source? If not it's still a toy.
Android bootloader can be "unlocked" by pressing certain buttons while booting. Just saying ..
Can Clang/LLVM rebuild a whole distro like Gentoo from source? If not it's still a toy.
It can rebuild all of FreeBSD, and most of Debian. The only packages that it fails on are those that rely on non-standard GCC extensions: the kernel is one of those packages. But every release gets better, more extensions get support. (There's actually a patch set out right now to both llvm/clang and the kernel that allow clang to build the kernel, so it IS possible) It won't be too long, probably 2 releases from now, when you CAN build all of debian or gentoo, kernel included, with clang without any patches necessary.
Even if it couldn't, it can build 21000 of 24000 3rd party applications in FreeBSD ports.
https://wiki.freebsd.org/PortsAndClang
Those remaining 3000 may have inter-dependencies, so it may not have failed on every single one of those remaining 3000.
Nonsense I say.
- C++: static analyzers
- code re-formatters,
- syntax highlighters
These functions should be done by a separate standalone tool for each task, that is the UNIX/POSIX way of doing things, not the compiler or the compiler backend. A C compiler should produce assembler output, nothing else.
Ofcause full C++11 support is a nice thing to have. But there is no hurry, the C++11 standard is still new.
To follow the UNIX/POSIX way of doing things GCC should consist of at least three modules: front-end, optimizer, back-end. Where you have standalone language specific front-ends and hardware specific back-ends processing/producing an IR. To allow more code sharing and aggressive optimization you may also want to split Linker, Link Time Optimizer, Code Generators.
This is the idea behind LLVM, a compiling library implementing dozens separate components. It simplifies the job of writing compilers. For example, it took only about two weeks to implement a OpenGL/GLSL JIT compiler using LLVM.
Try to do the same with GCC. Static analyzers, re-formatters, highlighters are just the icing on the cake...
I thought that we were talking about WebKit, not WebCore.
We are gradually working toward fixing that. It is not a high priority project though.
Linux, GRUB and glibc are the main things that won't build with Clang. Recent versions of binutils will not build with Clang either. That is due to a bug in Clang.
Go write separate utilities for each and get back to us.