タグ

Clangに関するkawachoのブックマーク (7)

  • PlayStation 4、開発にはLLVM Clang

    LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. 11月6日から7日(米国時間)にかけてサンフランシスコで開催された「2013 LLVM Developers' Meeting」におけるプレゼンテーションのようすがサイトにアップロードされた。Sony Computer EntertainmentのPaul T. Robinson氏がPlayStation 4の開発環境について発表しており、コンパイラインフラストラクチャとしてLLVM Clangを採用していること、採用に至るまでの検討事項や、結果としてどのような利点が得られたかを説明している。 PlayStation 4の開発にはLLVM

    kawacho
    kawacho 2013/12/26
    FreeBSD、LLVM Clang
  • LLVM 3.0登場 - 新レジストリアロケータ実現、さらに高速化

    LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. LLVMプロジェクトは12月1日(米国時間)、LLVMの最新版となる「LLVM 3.0」を公開した。LLVMはOSSとして開発されているコンパイラインフラストラクチャ。当初研究目的でスタートしたプロジェクトだが、以後急速に成長。現在ではC/C++/Objective-Cコンパイラをはじめさまざまなコンパイラやツールチェーン、ライブラリ、サブプロジェクトなどを抱える新進気鋭のプラットフォームとなっている。大手ソフトウェアベンダも活用するなど注目度の高い技術となっている。 LLVM 3.0は2.9から半年の開発期間を経て公開された最新版。主な

    kawacho
    kawacho 2011/12/08
    「llvm-gccフロントエンドのサポートが終了」
  • Xcode 4 でデフォルトになった LLVM って何?

    こんにちは。開発担当の金内です。 Xcode 4 は UI もすっかり変わりましたが、ビルドの要であるコンパイラもデフォルトが変更されています。その新しいコンパイラのキーワードが「LLVM」です。いまいち聞き慣れない方もいると思うので、今回はその LLVM について簡単にご紹介します。 ざっくりとした結論から言ってしまえば、Xcode における LLVM は従来のデフォルトコンパイラである GCC を置き換えるものです。LLVM には次のような特徴があります。 ・コンパイルが速い ・コンパイルされたコードが速い ・エラーメッセージがわかりやすい ・他のツールと連携しやすい いいことばかりですね。 しかし、コンパイラは要となる重要なコンポーネントなので、互換性などへの配慮から、Apple は GCC からの移行を少しずつ段階的に進めています。 実際、Xcode 4.0 でのデフォルトは完全に

    Xcode 4 でデフォルトになった LLVM って何?
  • Clang のコード補完 - Backnumbers: Steps to Phantasien

    Clang のツリーを眺めていたら, "clang-completion-mode.el" というファイルがあった. clang のプログラムを呼び出してコード補完ができるらしい. (使いかたを説明してくれている人もいた.) 以前読んだ時 は気付かなかったけど, 二年前からあったようだ. こんなものがプラグインで書けてしまうなんてさすがモダンなコンパイラは違うなーインデクスはどうするのかなーと 感心しつつコードを見ていたらインデクスのような前処理はないようす. それに全然プラグインじゃない. Clang 組み込みの機能として実装されていた. 以前から Xcode(4) がどんな風に Clang を統合するのか気になっていた. コード補完はそうした取り組みの一環かもしれない. 高々 Emacs のため Clang 組込みの機能を増やすとも思えないからね. というわけでざっとコードを眺めてみよ

  • Cocoaの日々: @synthesize default と Class Extensions Variables

    LLVM と Clang を使うと次のことができるらしい。 ・@synthesize の省略 ・Class Extensions でインスタンス変数定義 元ネタはここから。 M Cubed Software - Blog 設定方法はターゲットのビルド設定を開き2つの設定を行う。 1つはコンパイラの指定。 -Xclang -fobjc-nonfragile-abi2 を指定する。 すると下記のコードがコンパイルできるようになる。 SampleModel.h @interface SampleModel : NSObject { } @end SampleModel.m #import "SampleModel.h" @interface SampleModel() { NSString* name; } @property (nonatomic, copy) NSString* name;

    Cocoaの日々: @synthesize default と Class Extensions Variables
  • LLVMのC/C++コンパイルエラーメッセージはわかりやすい | エンタープライズ | マイコミジャーナル

    LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. CやC++でアプリケーションを開発する場合、またはC/C++で開発されたオープンソースソフトウェアをコンパイルする場合に遭遇するコンパイルエラーや出力されるエラーメッセージは、C/C++に精通していなければ原因を予測しにくいことが多く、C/C++初心者を萎縮させる原因のひとつになっている。移植する段階でインクルードが必要になったとか、typedefを追加するといった簡単な対処でコンパイルできるものが、エラーメッセージの内容が理解できないために解決できないということはままある。 LLVM Project Blog: Amazing feat

  • LLVMのC/C++コンパイラは分かりやすいエラーメッセージを出力 | スラド デベロッパー

    やや旧聞となるかもしれないが、マイコミジャーナルにてLLVMのC/C++フロントエンドのエラーメッセージは分かりやすいという話が紹介されている。元ネタはLLVM Project Blogの「Amazing feats of Clang Error Recovery(LLVMのC/C++フロントエンド「Clang」のおそるべきエラーリカバリ機能)。 LLVMは現在開発が進められているコンパイラ環境で、ソースコードを一旦アーキテクチャ非依存の中間コードに変換、最適化を行った後ネイティブなコードを出力することで、より最適化されたバイナリを生成できるのが特徴。それだけでなく、C/C++フロントエンドである「Clang」は、「GCCと比べコンパイル時に分かりやすいエラーコードを出力する」というのも利点だそうだ。 例えば、Clangでは定義されていない型を使った場合、エラーメッセージ中で「unknow

  • 1