タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

gccに関するtakkan_mのブックマーク (5)

  • ホワット・ア・ワンダフル・ワールド OSC 2008 do 終了

    今年は,運営の方から微妙に関わらせていただき (ほんとに何も協力できませんでしたが…),スタッフも微妙にやったりやらなかったりしました.あと,セミナー発表の機会もいただきました. いろいろあったけど,終わってしまったら一瞬だったなぁ,ってのが素直な感想です. 大変良い思い出になりました.みなさまお疲れ様でした! セミナー資料は,OSC 事務局に PDF 形式で送れば公開してくれるらしいのですが,OSC 事務局のメールアドレスがよくわからないという… しかも,slideshare に,何回投稿しても失敗してしまいます… Sorry, your file failed to convert. Here's how to solve this: - There's a big chance this is just a temporary/random glitch with our serve

  • GCCの評価順序 - sumiiのブログ

    ひょっとしたら知っている人には当たり前かもしれませんが… C言語の関数引数の評価順序といえば未規定動作*1の典型ですが、学生さんとの研究の関係で確認したら、GCCで #include <stdio.h> void foo(int x, int y, int z) { } int main() { foo(printf("1"),printf("2"),printf("3")); return 0; }を実行すると、当に > gcc -Wall -O0 hoge.c -o hoge > ./hoge 321> gcc -Wall -O3 hoge.c -o hoge > ./hoge 123> gcc -v Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.6/specs Configured with: ../configure

    GCCの評価順序 - sumiiのブログ
    takkan_m
    takkan_m 2008/03/09
  • Omicron gccの拡張機能

    C コンパイラ標準の機能ではなく,gcc 独自の拡張機能(文法)について. Extensions to the C Language Family (gcc 4.1.1) 翻訳 Extensions to the C++ Language (gcc 4.1.1) 翻訳 gccの拡張文法 GNU拡張を使う (スピード狂のための道標) アプリケーション屋さんはそれほど深刻じゃないかもしれないけど(性能もよい商用コンパイラがあるし),カーネル屋にとっては(ほぼ)必須なコンパイラ.Linux カーネルだけでなく,ITRON でも gcc に依存しちゃっているカーネルが多いみたいだね. ポータブルにするには #ifdef __GNUC__ で使いわければよい. Linux カーネルで使われている gcc の拡張機能 Linux カーネルには gcc の拡張機能が結構使われている. 以下に,その例を示

    takkan_m
    takkan_m 2008/02/27
  • ホワット・ア・ワンダフル・ワールド Optimizing direct threaded code by selective inlining

    東大さんで今,mini-python のインタプリタを作るという演習をやっているそうな. んで,今 twitter の柱の hayamizu 氏を筆頭に,空前の VM (仮想マシン) ブームが起きている感じ. ちなみに,仮想マシンので僕が読んで良かったのは,Java 仮想マシン仕様の第二版と,コンパイラとバーチャルマシンってかなぁ (そんなに詳しくない). ところで,仮想マシンの構造ってのは,ナイーブには単純で,ひたすら switch 文で命令を引いて実行するだけ. なので,switch 文をテーブルに展開して,直接命令のコードの場所に goto したりする最適化が非常に効く.というのがこの論文. Optimizing direct threaded code by selective inlining (PDF) # 追記 : あ,ACM ポータルの論文は,北大ドメインからじゃないと

    takkan_m
    takkan_m 2007/11/21
  • C言語のトライ&エラーに最適なrungcc - 計算機と戯れる日々

    最近LLを使っているせいで、irb,gosh,ghci,perlsh・・・そしてrlwrapにお世話になっている。 何が便利かって?関数の挙動忘れてたり、言語の構文忘れてたりしたときのトライ&エラーが出来る点だ。 そこでGaucheのCGIラッパー作る際にお世話になったのがrungccというgccラッパー。 引数を実行 $ rungcc -e 'main(){puts("hello");}' mainを書くのをさぼる場合 $ rungcc -m 'puts("hello")' 返値を整数として表示 $ rungcc -d '1+1' 2 返値を浮動小数として表示 $ rungcc -f '1.0/3.0' 0.333333 例えば、コマンドライン引数の扱い方忘れたなぁと思ったあなた! $ rungcc -s '*(argv+1)' arg1 arg2 arg3 arg1 $ rungcc

    C言語のトライ&エラーに最適なrungcc - 計算機と戯れる日々
    takkan_m
    takkan_m 2007/06/13
  • 1