LLVM 3.1がリリースされました

5月22日は、モジュールベースで構築されたコンパイラツールのファミリーであるLLVM 3.1のリリースでした 。 このプロジェクトは、AppleやGoogleなどの企業によるGCCの代替として積極的に開発されています。



最も注目すべき変更には、新しいC ++ '11 Clang '標準のサポートの改善 (ラムダ、初期化リスト、定数式、ユーザーリテラル、アトミックを含む)が含まれます。 AddressSanitizerの外観-メモリでエラーを動的にキャッチするツール。 コンパイル時間の大幅な改善とARMアーキテクチャの新機能の外観。 MIPSアーキテクチャ(MIPS64を含む)のサポートが大幅に改善されました。

画像



詳細に興味がある人のために-猫へようこそ。



メインのLLVMツールは、Macプラットフォーム用のネイティブC / C ++ / Objective C言語コンパイラであるClangであり、他の主要プラットフォーム(LinuxおよびWindows)でも利用できることを思い出してください。 確かに、Windowsのサポートはまだ実験的です。 このコンパイラは、動作速度と強力で正確なエラー診断において競合他社と比較して有利です。 GCCに代わるものを探しているが、オープンソース製品を放棄したくない人にとって、新しいリリースはこのコンパイラを試す大きな理由です。



おそらく、LLVM 3.1の主な興味深い機能は、標準ツールの中にAddressSanitizerが登場することです。これは、メモリの操作でエラーを動的に検索するためのツールです。 Googleの腸内で生まれたこのツールを使用すると、バッファオーバーフロー(ヒープ、スタック、グローバル)と解放後使用エラーをキャッチでき、実行速度は比較的わずか(約2倍)になります。 これは、既存のClang Static Analyzer静的コード検証ツールへの非常に優れたアドオンです。



LLVM 3.1には、gccオプティマイザーをLLVMコードジェネレーターに置き換えるGCCプラグインであるDragonEggも含まれています。 新しいリリースはGCC 4.5および4.6を完全にサポートし、部分的にリリースされた4.7のみです。 言語Ada、C、C ++およびFortranは完全にサポートされており、部分的にGo、Java、Obj-CおよびObj-C ++です。 ご覧のように、GCCフロントエンドがLLVMのメインエンドでなくなったとしても、このサブプロジェクトは引き続き活発に開発されています。



変更点の完全なリストはリリースノートに記載されています 。 そして、コンパイラを試してください-プロジェクトサイトからバイナリまたはsorsでダウンロードしてください。



All Articles