タグ

clangに関するgfxのブックマーク (9)

  • qrintfの最適化 - 開発日記

    H2Oの内部では,数値,文字列のフォーマッタとしてsprintfが用いられています. 我々は,最近までsprintf専用ソースコード変換器, qrintfのチューニングを行っていました. 稿ではqrintfの概要と今回適応した工夫,そして今後の課題についてまとめておきます. 1. qrintfとは? qrintfとはCコンパイラの1つであるgccのプリプロセッサのラッパーであり,snprintfを高速化するソースコード変換器です. 稿執筆時点でのqrintfの変換対象はsprintfとsnprintfです.以下文中では特にことわりのない限りsprintfと記述した場合sprintf, snprintfの両方を指します. qrintfはソースコードに出現するsprintfで利用するフォーマット文字列を解析し,型ごとに用意された関数呼出にコードを書き換えsprintfの高速化を行います.

    qrintfの最適化 - 開発日記
  • How to use @compatibility_alias to alias classes for previous versions of iOS

    Can somebody tell me how to use @compatibility_alias to take a class, for example, UIActivityViewController, that is new to iOS 6, and use @compatibility_alias to make it work on iOS 5 and iOS 4. Please be specific and say where to put the code, and how to use it.

    How to use @compatibility_alias to alias classes for previous versions of iOS
    gfx
    gfx 2014/07/12
  • Clangにおけるメソッドの戻り値の型の扱い - イグトランスの頭の中

    Clang (Apple LLVMコンパイラ)は、Objective-Cのinitやnewを特別扱いしているようです。 次のコードをコンパイルします。 // clang++ -std=c++11 -fobjc-arc -Wall -Wno-unused-variable \ // -framework Foundation t.mm extern "C" { #import <Foundation/Foundation.h> } int main() { @autoreleasepool { auto s1 = [NSMutableString string]; auto s2 = [NSMutableString new]; auto s3 = [[NSMutableString alloc] init]; } } すると、 t.mm:10:9: warning: 'auto' dedu

    Clangにおけるメソッドの戻り値の型の扱い - イグトランスの頭の中
    gfx
    gfx 2013/07/07
  • Clang のコード補完 - Backnumbers: Steps to Phantasien

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

  • clangのビルド

    さて、Ubuntuの基的な使い方に慣れたので、さっそく環境の構築に入る。まず、GNU/Linuxに移行した最初の目的である、clangを使うことにする。Ubuntuのレポジトリにはclangはあるが、残念ながら古すぎる。面白いことをするには、SVNから最新版を引っ張ってこなければならない。 clangをコンパイルするのは非常に簡単だ。とくに珍しいツールも必要ない。比較的新しいgccとGNU makeがあればいい。テストするには、もうすこしツールが必要だ。基的にはClang - Getting Startedに従えばよい。ただし、SVNから取得すると、デフォルトのビルドがとんでもないことになるので、このままでは使いづらい。もちろん、普通に使うことは想定してないのだから、当然といえば当然だが、clangをハックするのでもなければ、やはり使いづらい。 まず、デフォルトでは、すべてのアーキテク

  • Precompiled Header and Modules Internals — Clang 19.0.0git documentation

    Precompiled Header and Modules Internals¶ This document describes the design and implementation of Clang’s precompiled headers (PCH) and modules. If you are interested in the end-user view, please see the User’s Manual. Using Precompiled Headers with clang¶ The Clang compiler frontend, clang -cc1, supports two command line options for generating and using PCH files. To generate PCH files using cla

    gfx
    gfx 2011/11/02
  • 2011年10月31日 LLVM Clangデフォルトコンパイラ化 - カーネル/ユーザランド視点 | gihyo.jp

    eurobsdcon LLVM Clang as default compiler - from kernel/world view FreeBSDのデフォルトコンパイラをLLVM Clangに変更した場合、ライセンス状のメリットが得られるだけでなく、最新のツールチェーンの機能を利用できるようになるというメリットがあります。LLVM Clangの開発は活発であり、そうした開発の恩恵を受けることができます。 amd64とi386に関してはほぼ問題なく移行が完了するとみられます。課題はそれ以外のアーキテクチャです。ARMやPowerPC系は組み込み用途での採用が期待できるのでLLVM Clangのデフォルト化の効果がもっとも期待できるところですが、amd64やi386ほどにはユーザがいないので、なかなか対応作業が進みにくいアーキテクチャでもあります。 すべてのアーキテクチャが一様にClangビ

    2011年10月31日 LLVM Clangデフォルトコンパイラ化 - カーネル/ユーザランド視点 | gihyo.jp
  • Benchmarks between Clang and GCC about Ruby 1.9.3

    Blogged by Ujihisa. Standard methods of programming and thoughts including Clojure, Vim, LLVM, Haskell, Ruby and Mathematics written by a Japanese programmer. github/ujihisa Since Matz Ruby Implimentation ruby 1.9.3 has been released as preview release, I think that all Rubyists should abandon the ruby they are usually using, ruby 1.9.2, and should use 1.9.3 now. Ruby 1.9.3 also supports clang ins

    gfx
    gfx 2011/08/04
  • FreeBSD Daily Topics:2010年4月19日 FreeBSD GCCを置き換えるLLVM Clang,広くテスト呼びかけ|gihyo.jp … 技術評論社

    FreeBSD Daily Topics 2010年4月19日FreeBSD GCCを置き換えるLLVM Clang、広くテスト呼びかけ src ClangBSD - LLVM Clang Call for Test Roman Divacky氏がメーリングリストにおいてLLVM ClangのFreeBSD統合が一定のレベルに達したとしてコミュニティに広くテストを呼びかけています。LLVM Clangがセルフホストに到達したこと、ClangのC++サポートが向上したこと、i386/amd64のシステムとカーネルのビルドと成功していることなどが背景にあります。 テストはClangBSDのブランチを取得してビルドすることで実施できます。作業の詳しい方法はBuildingFreeBSDWithClang - FreeBSD Wikiにまとまっています。いつ、どのタイミングでメインブランチに取り込

    FreeBSD Daily Topics:2010年4月19日 FreeBSD GCCを置き換えるLLVM Clang,広くテスト呼びかけ|gihyo.jp … 技術評論社
  • 1