2010-12-12 10 views
5

AppleはLLVMとClangをたくさん推進しています。噂によると、アップル社はGPLv3ライセンスの問題のためにGCCを落とし、Clangに移行したいからだ。C++ iPhoneプロジェクトでClang/LLVMのターゲット設定を開始する必要がありますか?

誰がいつ起きるのか考えていますか?

私はiPhoneに移植する予定のC++プロジェクトを開始していますが、C++ 0x機能(少なくともClangでサポートされている機能)を使用する必要があるかどうか、 GCC 4.1と互換性のコード...

+0

これまでのところ、ClangはいくつかのC++ 0x機能しかサポートしていませんが、GCCがサポートしていない機能は何もサポートしていないと思います。 – delnan

+0

AppleはGCC 4.1を使用しており、ClangはGCC 4.1よりも成熟しています(少なくともサポートされている機能)。 – peoro

+0

AppleはGCC 4.2.1ではなく4.1を使用しています。 – jer

答えて

13

噂は、Appleが(原因GPLv3の ライセンスの問題のため)に ドロップGCCを望んでいるからだと言うと、クランに切り替えます。

これは噂ではありません。これはアップルが述べた位置です。 GCCのGPLライセンスは、Appleが開発ツール内にコンパイラ/パーサーを完全に統合するのを妨げています。 Clang/LLVMでは、そのような制限はなく、ツール(Xcode 3.2の統合されたClang Static Analyzerから始まり、Xcode 4を使用してさらに進んでいきます)ではるかに多くのことを実行できます。

Clang/LLVMはGCCよりもはるかに高速で、アップルのベンチマークでもGCCよりも優れた実行ファイルを作成します。それははるかに役に立つエラーメッセージも生成します。モジュラー方式で構築されているため、今後もGCCよりも保守や拡張が容易になります。

アップルは、エクスポートされたテンプレートを除くすべてのC++機能が、今後のXcode 4のLLVM Compiler 2.0でサポートされていると述べています。コンパイラは現在少しずつ自己ホスティングしています。待つことができない場合、またはXcode 4の開発者プレビューを試したくない場合は、main LLVM siteからソースコードを取得して、コンパイラをすぐにチェックアウトすることができます。

自由に利用できるWWDC 2010 videosのセッション300 - 「開発者ツールの状態」とセッション312 - 「LLVMコンパイラの新機能」を見て、LLVMコンパイラで現在作業していることを説明してください。 。

タイミングを考えれば、アップルだけが何かをするときを教えてくれるだけで、何かがプライムタイムの準備ができているかを正確に知ることさえできません。 Xcodeデベロッパーのプレビューの改善軌道に基づいて、推測された推測を行うことができますが、それだけです。しかし、Clang/LLVMは、Appleのやり方ではありません。そのために計画してみませんか?

+0

すばらしい答え。さらに、Xcode 3.2.5ではLLVM 1.6を使用しています(これまでの3.2.xビルドでは1.5以上)。 – rjstelling

+0

実際、Phoronixのベンチマークからは、gcc 4.6で生成されたバイナリが優れたマージンを持ってClangより優れているようです。しかし、私は希望がある:) –

+0

@Matthieu - Mac上のAppleのOpenSSLベンチマーク(GCCと比較して5〜25%のパフォーマンス向上を示す)とiPhoneの12%〜60%のパフォーマンス向上)。 AppleはカスタマイズされたGCCビルドを使用しているので、おそらく最新のコンパイラバージョンに対応していないかもしれません。あるいは、Phoronixのセットアップに関する何かの違いがあったかもしれません。 Phoronix自身が批判を受けているようにも見えます。http://www.osnews.com/thread?449249、私はテストで明らかに間違ったことは何も見ません。 –

関連する問題