2014年08月27日

マニアックなネタが続いて申し訳ありません。またプリプロセッサの話です。

前回:C/C++プリプロセッサの挙動の違い(defined編)
前々回:米Facebook社のC/C++プリプロセッサWarpをWindows環境でビルド

Warp の挙動を調べていて、以下のような、マクロ展開後にコメントが生成されるようなコードが通らない事に気が付きました。
(元は MinGW GCC の x86_64-gdcproject-mingw32/x86_64-gdcproject-mingw32/sysroot/mingw/include/wtypes.h ヘッダ)
$ cat gen_cpp_comment.c
#define _VARIANT_BOOL /##/

$ ./warp.exe --stdout gen_cpp_comment.c
# 1 "gen_cpp_comment.c"
# 1 "i:\test\warp//"
# 1 "<command-line>"
# 1 "gen_cpp_comment.c"
gen_cpp_comment.c(2) : ## cannot appear at end of macro text
続きを読む

2014年08月21日

前回の記事でビルドした Facebook 社の Warp の挙動を調べていた所、#if や #elif 指令中でのみ使用可能な defined 単項演算子の挙動が GCC のプリプロセッサと異なり、GCC 用のヘッダを前処理できない事例を発見したので、その時のメモです。

続きを読む

2014年08月12日

Warp は Facebook 社が D 言語の作者 Walter Bright 氏と協力して開発した C/C++ プリプロセッサで、自社のビルドシステムの高速化のために開発したそうです。D 言語で書かれていて、非常に緩い Boost Software License 1.0 で GitHub に公開されています。

「Under the Hood: warp, a fast C and C++ preprocessor」
https://code.facebook.com/posts/476987592402291/under-the-hood-warp-a-fast-c-and-c-preprocessor/
https://github.com/facebook/warp

Cent OS 6 以外では動作確認されていないそうですが、いろいろ試行錯誤した結果、Windows の MSYS + GDC(D Programming Language for GCC)環境で、とりあえず warp の生成までは成功したので、その時のメモです。(builtin_defines.sh というシェルスクリプトが git リポジトリに入っていないようで、ドライバプログラム warpdrive の生成は失敗しました。)

続きを読む

2014年03月06日

最新の LLVM 3.5(2014/3/6 の git リポジトリ)を MS Windows 環境でビルドしてみました。

続きを読む

2014年01月23日

GCC のリリースノートを眺めていたら、4.7 からトランザクションメモリのサポートが入っていたことに気付いたので、少し調べてみました。

続きを読む

2013年07月17日

GCC はバージョン 4.8 から、実装言語が C++ になりました。というわけで、プラグインも今後は C++ で書きたいところです。また、せっかくなので、gcc ではなく g++ のプラグインを C++ で書いてみました。

続きを読む

2013年06月27日

以前にgccでNEONのSIMD命令を生成させる方法という記事を書きましたが、今はかなり状況が変わっています。コンパイラのオートベクタライズの最適化はずっと進化していて、簡単なコンパイルオプションをつけるだけでNEONのSIMD命令を活用することができるようになっています。

続きを読む

t2koba at 14:33コメント(2)GCCkoba

2013年06月27日

昨日の記事で GCC 4.7 をインストールしたので、ついでに Plugins 機能を試してみました。

続きを読む

2013年06月26日

GCC 4.7 のリリースノートに、新しく追加された -grecord-gcc-switches オプションを付けると、DWARF デバッグ情報の DW_AT_producer 属性文字列にコンパイラのコマンドライン文字列が追加されるよ、と書いてあることに気付いたので、さっそく試してみました。

続きを読む

2013年06月11日

2013年04月24日

だいぶ昔にこのような記事を書いたのですが、その後の調査で理由がわかった(ことを、QEMU 1.1.2 の target-mips/ 以下を確認していて思い出した)ので追記します。
続きを読む

2013年04月19日

QEMU 1.1.2 の target-mips/op_helper.c を眺めていて、
約 3 年前にブログで取り上げた不具合が直っていたことに気付きました。
続きを読む

2013年03月16日

今までCELFテクニカルジャンボリーで話をしたときのリンクを集めてみました。

続きを読む

2013年03月12日

先日3月8日に開催されたテクニカルジャンボリーでmallocの話をしてきました。Embedded Linux Conference 2013では英語で発表したのですが、ここでは気楽に日本語で話しました。 続きを読む

2013年03月07日

先日のKMCセミナーでU-Bootの話をしました。その中から一部をピックアップして紹介します。

続きを読む

記事検索
最新コメント
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード