Apple is the biggest developer of LLVM, after it hired Chris Lattner who developed it at the University of Illinois. LLVM (http://llvm.org/
) is really aimed at optimizing code as part of the compilation strategy, and is partly what Apple will use to replace gcc. gcc, while it has been fabulous, is showing its age, in that it has a lot of difficult code to maintain and improve, and it's easy to break things. Apple realized that if they rely on gcc as a compiler, there's not going to be revolutionary improvements in the produced code. So instead, they decided they needed a new back end for compilation, and that's llvm. They have also decided they need a new front end, which is the actual code parsing itself. Currently llvm relies on gcc for this, but Apple is developing a new compiler, called clang (http://clang.llvm.org/
) which is already showing useful performance gains, though is early in its development. Looking at the sessions at WWDC, one of them on compiler technologies says:
"Xcode 3.1 introduces two new compilers for Mac OS X: GCC 4.2 and LLVM-GCC. Learn how the new security and performance improvements in GCC 4.2 can help you produce better applications. Understand the innovations in LLVM-GCC, and find out how you can use it in your own testing and development. Finally, get a preview of future compiler developments"
I suspect that Snow Leopard will be completely compiled by LLVM, though not sure whether they will have clang ready to act as the front end, so it may use gcc for that part. The result will end up being dramatically faster executables, even with no changes made to source code of the applications. However, given the APIs that they are developing for taking better advantage of the multiple cores and graphics chips, apps that take advantage of those (e.g. Quicktime X) will show even more dramatic performance gains. Another interesting thing about LLVM, is that you could ship code that is partway compiled, and then have the compilation finish on the target machine, meaning that it is optimized for a user's particular hardware (this is similar to what Gentoo Linux does, though you get the source in that case, rather than some intermediate compiled form). If it knows about your processor, and your graphics card, then there are certain additional optimizations that can be made at compile time, rather than having to figure out what code path to take at runtime.
While there may be no new "user visible features", as in a new app, or new UI, or new paradigm such as Expose, the amount of work that will have to go into developing Snow Leopard will be no less than the amount of effort that has gone into past releases. This is much more than a 10.5.x release - I'm expecting *some* applications to show more than 2x increases in performance. If you offered me a processor that was twice as fast for the cost of an OS update (who knows what or if it will cost, but it will certainly be no more than $129), I would buy it in an instant. I believe Snow Leopard will be just as good an investment.