Search code examples
macosclangmacports

What is the difference between "clang" and "Apple clang"?


I just upgraded to OS X 10.8.2, which comes with clang. The output of clang -v is:

Apple clang version 4.1 (tags/Apple/clang-421.11.65) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin12.2.0
Thread model: posix

On macports, there are several different versions of clang available (port search clang):

clang @2.9 (lang)
    C, C++, Objective C and Objective C++ compiler
clang-2.9 @2.9 (lang)
    C, C++, Objective C and Objective C++ compiler
clang-3.0 @3.0 (lang)
    C, C++, Objective C and Objective C++ compiler
clang-3.1 @3.1 (lang)
    C, C++, Objective C and Objective C++ compiler
clang-3.2 @3.2-r164372 (lang)
    C, C++, Objective C and Objective C++ compiler

Is the "Apple clang 4.1" that comes with OS X the same (nearly or exactly) as clang-3.1 from macports?

Also, what is different in 3.2 as compared to 3.1?


Solution

  • LLVM 3.1svn means that it was branched sometime after 3.1 was released but before 3.2 (which has not been released yet). Apple doesn't work off of released versions of LLVM/Clang.

    The changes from clang 3.1 to 3.2 (as well as future versions) can be found in the Release Notes.

    Note that since 3.2 has not been released, the release notes will not contain a complete list of the changes.