
New LLVM C++ Standard Library - pieter
http://blog.llvm.org/2010/05/new-libc-c-standard-library.html
======
wmf
Apple is systematically cutting their dependence on GCC and related code. I
wonder if it's due to GPLv3 or some other reason.

~~~
danudey
Among other reasons, I'd guess this is Apple's attempt at modernization. The
GCC/libc/libstdc++ codebase has been around for ages, and has accumulated
cruft. Starting from scratch isn't always a solution, but in cases like this I
think it can be.

Modernizing the compiler (via clang/LLVM) is a great step forward, but
modernizing the C++ libraries to take advantage of the new compiler
infrastructure is a sensible step 2. If they can in fact speed up compilation
speed and memory requirements (both at compile-time and run-time), as well as
providing link-time and run-time optimization, it could be a big win,
especially for large C++ projects (such as Mozilla, KDE, Qt, etc.).

------
hazzen
I merely glanced at bits of the code without diving into the implementation
that much, but my high-level thoughts:

\+ I love the "synopsis" header in front of all the classes.

\+ I find the style horrible, but still more readable than the SGI-based STL
headers. This is a very good thing.

\+ Only one developer currently? I wonder how many bugs are yet to be found in
this code. Making it ABI-compatible with libstdc++ should make the "swap it
in, does it crash?" test very easy.

------
MikeCapone
Could someone explain: As a person who uses Apple products but doesn't code,
what does this mean for me? Is Apple already using this compiler with OS X?
Does it mean faster and smaller binaries down the line?

Or is it mostly cool stuff for coders, but mostly transparent for end-users?

~~~
Zev
_Is Apple already using this compiler with OS X?_

Its in use for _some_ products in Snow Leopard; Xcode, OpenGL, (and, I
believe) OpenCL and Automator are built with Clang.

 _Or is it mostly cool stuff for coders, but mostly transparent for end-
users?_

Mostly, this. However, the cool things it gives are subtly passed onto the
user. For example, LLVM and Clang have a nice static analyzer to help
developers find and fix memory leaks. There are other optimizations (for the
size of the binary and speed of the program being run) that LLVM is working
on, but they're not ready for primetime yet (or weren't, the last time I
looked).

~~~
MikeCapone
Thanks!

