GCC 4.8はC ++への移行を完了しました

GCC 4.8.0のリリースにより、GNU Compiler Collectionの開発者は、GCC実装でのC ++への移行を完了しました。 コードベースのC ++への翻訳作業は2008年から継続しており、現在は終了しています。 C ++への移行は、ソースからGCCを構築するために、C ++ 2003コンパイラが必要になったことを意味します。



リチャード・ストールマンは、パスカルの耐え難い方言で1985年にGCCの最初のバージョンを書きました。 1987年、コンパイラはCで書き直され、この形式では2013年まで存在していました。



GCC 4.8の新しいバージョンでは、パフォーマンスが向上し、最適化のほとんどない最適化–Og



が実装され、超高速コンパイルが可能になりました。 Google SanitizerのAddress SanitizerエラーディテクタとThread Sanitizerデータレースディテクタが追加されました。これらは、マルチスレッドアプリケーションの異なるスレッドからの同じデータの共有を検出します。 イノベーションの詳細については、 リリースノートを参照してください。



Address SanitizerディテクターはLinux(IA-32、x86-64、x32、PowerPC、PowerPC64)およびDarwin(x86-64)プラットフォームで使用でき、プログラムの速度は約半分に低下します。



スレッドサニタイザーは約10倍遅くなります。



さらに、C ++ 11のサポートはGCC 4.8で改善され、ARMv8命令セットを備えたプロセッサにはAArch64(ARM64)アーキテクチャのサポートがありますが、この命令セットを備えたデバイスはまだ市場にありません。



GCCはGNUシステムの公式コンパイラーであり、LinuxおよびBSDのさまざまなバージョン、Mac OS X、ReactOS、BeOSなど、他の多くのオペレーティングシステムのメインコンパイラーでもあります。



C ++に移行する理由と、特に加えられた変更の詳細については、 GCC Wiki:C ++ Conversionを参照してください。 一言で言えば、C ++言語の人気の理由と「プラス」のよりクリーンなコード。



ソースコードGCC 4.8.0

公式SVNサーバー

GCCマニュアル



幸いなことに、C ++への切り替えは、GCCコンパイラのパフォーマンスにほとんど影響を与えませんでした。



ランステイラーの2008年のプレゼンテーションからのいくつかの例



















All Articles