Tinycc on NaCl

http://shinh.skr.jp/nacltcc/tinycc.htmlNative Client がリリースされてから、ブラウザで C のコード即実行できたらキモいよなーと思ってました。ただ Native Client がなかなか JIT 対応してくれなかったから遊べなかったのですが、なんか最近見直したら …

x86-64 最適化勉強会2

http://atnd.org/events/19140前回同様楽しかった。「x86/x64最適化」とかいう極めて限定的なタイトルで第2回とかになったことにびっくりですが、驚くべきことに第3回をやるつもりらしいですね…奥が深い。 86 か最適化のどっちか落としてもキツそうなのに…ど…

Fault Detection in Multi-Threaded C++ Server Applications

http://valgrind.org/docs/muehlenfeld2006.pdfを読みました。 helgrind をちょっとよくしたよ、って人が書いた論文、だと思います。先に結論書いておくと、わりとがっかりな感じでした。 race detector がどう動いてるかわかったのは収穫ですが、もうちょい…

atomic operation どころか mutex もわかってなかったという話

read write lock ってものがあります。 pthread だと pthread_rwlock_t 。コレの私の思ってたセマンティクスは以下のようなもんです。 writer lock を取ると普通の mutex lock みたいな感じ。その thread が unlock するまで、以降の reader lock と writer …

開発環境勉強会

http://partake.in/events/afe6657b-b54c-44d2-8af5-d39e98e6f2bdで、どうでもいい話をしました。http://shinh.skr.jp/slide/env/000.html質問で受けた「いじっていると環境を同期させるのが大変ではないか」って質問はなかなか面白い話だと思う。後で話して…

valgrind 論文読んだメモ

時々 valgrind はオーパーツだとかそういう主張をしてたりします。コードとか論文とかチラ見くらいはしてたのですが、まあちゃんと眺めてみたのでメモ。Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentationhttp://valgrind.org/docs/valg…

ICFPC 2011

http://www.icfpcontest.org問題は例年通り面白い…とかいう次元じゃなくて無茶苦茶よくできてるなーと思った。感動的に。L:tG とかいう対戦型カードゲームの AI を書く。 M:tG に名前似てるけど、デッキとか作る感じではなくて、15枚のカードをいつでも使え…

TCO Marathon Match Round 2

70-80位くらいなので一応 Round 3 にはいけるかな、って感じ? 全力を尽くしたかっていうとそんなことないけど、しかしそれなりに時間使ったわりにはイマイチだった…問題は適当に大量の点が与えられるから、それをつないで正多角形に近いものをたくさん作るこ…

Mach-O と maloader の話

を会社でしたんでスライド置いておきます。しかしオブジェクトフォーマットがどうなってるかとかって、基本的に当たり前の情報が入ってるだけだからあんま面白くないよね…http://shinh.skr.jp/slide/ldmac/000.htmlMach-O ってのはなんかよく考えられてるの…

maloader - a mach-o loader for linux

https://github.com/shinh/maloaderLinux で動く Mach-O loader を書いています。何ができるかというと、 Mac のバイナリが Linux でそれなりに動きます。今のところ、 gcc 、 otool 、 nm などの、いくつかのコマンドラインツールと、その gcc が生成した簡…

TLE 優勝

最初から最後まで全力でがんばりました。8問あって、1問は誰も解けなかったので全7問で、そのうち6問がトップなので割と文句なく1位です。最初の方は期間が2日しか無い予定だったのでとりあえず問題を全部解くのを重視してやってて、後の方は3日に期限がのび…

アトキンのふるい

http://cr.yp.to/papers/primesieves.pdfを斜め読みしました。ドメインからわかる通り、 djb が共著なんですよね…アトキンさんが考えたふるいを djb が実装した、って感じですかね、たぶん。N までの素数を高速に求める方法、って言うと誰でも思いつくのはア…

dissimilar cyclic quine

以下の ruby コード A を実行すると別の ruby コード B を出力します。で、その出力されたコード B を実行するとまた元のコード A を出力します。かつ、コード A とコード B は同じキャラクタを含んでいません。 eval q=%q(puts ('DIGGB%sB'%(('eval q=%q('+…

raw_write.h

よく、 libc の関数呼べるかどうかはあやしい部分を printf デバッグしたいことがあると思います。あるんですよ!そういう時にシステムコールってどう呼ぶんだっけ…みたいなことを調べたり、ええと数字を出力したい…とかいうのは結構かったるいので、 #includ…

πのケタ数世界記録の話

TCC の作者であるところの Fabrice Bellard という人は何やらものすごくて、 TCC のスライドにも書いたように、 qemu とか ffmpeg の作者であると同時に、πの任意桁を比較的高速に求めるアルゴリズムを開発したり、πをたくさんの桁数計算して、8ヶ月ほど世界…

TCC の話の追記

http://d.hatena.ne.jp/shinichiro_h/20101217#1292521642のスライドは ELF のあたりから前の晩に適当に書いたとかなので、正直気合い入ってないというかグダグダというか ELF の話をすると言いつつ ELF の話が無かったりして、ひどかったです。まあやってか…

TCC とか x86-64 とかの話

を会社でしたのでそのスライドを置いておきます。http://shinh.skr.jp/slide/tcc64/000.htmlいつかこういうのまとめたいなあと思っていたのですが、特に後半とか色々グダグダになったり、記憶が消し飛んでて何に苦労したか忘れていたりと、まぁ色々適当にな…

GCC Compile Server

http://per.bothner.com/papers/GccSummit03/gcc-server.pdfを読んでみました。7年前の話で、かつ今実現してる気配がないので失敗したんでしょうけど、まぁコンパイラの state を再利用するには何をしなければならなくて、何が難しいか、みたいなことがざっ…

中二病の話の続き

そこはかとなくどうでもいいことを色々。まとめるとか大変なので、関係あること無いこと散慢と。 バカさが重要という話 よく話してるバカさが重要ですよねーという話とかと近いなあと思った。年喰うと経験積んだおかげで要領良くなるけど、バカな時にあった…

傲慢

気付いたけど傲慢な人は職業プログラマとしては傲慢さを抑えないといけないシーンがありますね。自分としてはまだ満足いってないんだけど、納期は数ヶ月前に…みたいな。仕事なんだから中途半端ではなくて面倒で時間のかかる最後の仕上げやテストも書かないと…

中二病と三大美徳とプロプログラマ

プログラマに取って重要な能力というか気質として、中二病というのがあるんじゃないかなーとかふと思ったのだった。なんかちょっとしたことを達成した時に、「おおなんてこったオレすげー!!やばいオレ新世界の神だ!!!」みたいなことを思ったことがある…

StringPiece というライブラリの話

例えばこう、ディレクトリの名前とその中のファイル名を / でくぎって結合する関数を書くとします。引数が std::string でも使いたいし const char* でも使いたい、ということで、たいていは void JoinFilePathStr(const string& dir, const string& base, s…

MikuMikuDance 遊び

MikuMikuDance のデータについて結構 web に情報があるみたいだったので、適当に parser 書いて 2D canvas とか WebGL で動かして遊んでみて、 SDL off 2010 summer で紹介してみたりしました。で、動く URL にリンクはろうかと思ったんですが、よく考えると…

wake 続き

http://shinh.skr.jp/wake/なんか忘れてた $+ を足しました。一番最後にマッチした正規表現をひっかけるアレ。 primitive brainfuck code 書いてて忘れてたことに気付いた。eban さんに文字列の外でも \ でエスケープできた方が空白含むアクションとか作れて…

bfint.wake

書けた。ただ、 \xab とかをサポートしてないのでバイナリが混じってしまった。http://shinh.skr.jp/wake/bfint.wakeあと num.wake もパッケージの外に置いておいた。今思うに、意外と sub が一番大変だった気がする。あとたぶん mul は高速化できると思う。…

wake 続き

http://d.hatena.ne.jp/shinichiro_h/20100709#1278603483の続き。ドキュメントとか書きました。http://shinh.skr.jp/wake/パッケージもアップデートしました。http://shinh.skr.jp/wake/wake.tgz変更点は C++ 実装のインタプリタ (PCRE に依存) を追加した…

alphabet only quine

も簡単。 s zz xor print lc q ys ZZy xor print xor print lc q yZy xor printz xor print lc q ys ZZy xor print xor print lc q yZy xor print

s XXchr length q YThisPerlCodeConvertsAnyPerlCodeIntY Xe xor s XXchr length q Y ThisPerlCodeConvertsAnyPerlCodeIntoAlphabetOnlyPerlCodeThisPerlCodeConvertsAnyP erlCodeIntoAlphabetOn Y Xe xor s XXchr length q YThisPerlCodeConvertsAnyP erlCo…

s XXchr length q YThisPerlCodeConvertsAnyPerlCodeIntY Xe xor s XXchr length q YThisPerlCodeConvertsAnyPerlCodeIntoAlphabetOnlyPerlCodeThisPerlCodeCon vertsAnyPerlCodeIntoAlphabetOnlyPerlCY Xe xor s XXchr length q YThisPerlC odeConvertsAnyP…

プログラム言語 wake

Makefile と正規表現とパターンマッチを混ぜたような、トイ言語を作ってみました。http://shinh.skr.jp/wake/wake.tgz Hello, world! all: "Hello, world!" wake のプログラムは Makefile のように書きます。つまり、 : で区切って左辺にターゲットを書いて…

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h