私はclangが付属するOS X 10.8.2にアップグレードしました。出力は次のようにclang -v
なります。
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
macports では、clang のいくつかの異なるバージョンが利用可能です ( 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
OS X に付属する「Apple clang 4.1」は、macports の clang-3.1 と (ほぼまたはまったく) 同じですか?
また、3.2 と 3.1 の違いは何ですか?
ベストアンサー1
Apple は、独自のバージョンの clang を Xcode に同梱しています。つまり、Apple は clang のビルド方法 (ビルド時に使用する設定、有効/無効にするオプション機能など) を決定し、ビルド前に clang のソース コードを必要に応じて修正することもできます。clang は Apache 2.0 ライセンスでリリースされているため、Apple は変更内容をオープン ソースにしたり、公開したりする必要はなく、変更内容、変更方法、変更理由を誰かに伝える必要もありません。
ただし、Apple は GitHub に独自のプロジェクトフォークを持っています。これはオリジナルの LLVM リポジトリです。
https://github.com/llvm/llvm-project
そしてこれが Apple からのフォークです:
https://github.com/apple/llvm-project
したがって、何か変更があった場合は、そこに変更内容が記載されている可能性があります。
デフォルトバージョンでは何も表示されません。
# clang --version
Apple clang version 15.0.0 (clang-1500.1.0.2.4)
これは Apple の内部バージョン スキームに過ぎませんが、Wikipedia にはこれらのバージョンを LLVM リリース バージョンにマッピングするリストがあります。
https://en.wikipedia.org/wiki/Xcode#ツールチェーンバージョン
このリストを更新するには、Apple フォークで適切なリリース タグを見つけて、 を確認しますCMakeLists.txt
。このファイルにより、LLVM のバージョンが明らかになります。
if(NOT DEFINED LLVM_VERSION_MAJOR)
set(LLVM_VERSION_MAJOR 16)
endif()
if(NOT DEFINED LLVM_VERSION_MINOR)
set(LLVM_VERSION_MINOR 0)
endif()
if(NOT DEFINED LLVM_VERSION_PATCH)
set(LLVM_VERSION_PATCH 0)
endif()
これは現在の Xcode 15.1 Beta 2 タグであり、CMake ファイルによると LLVM 16.0.0 に基づいていることがわかります。