Program

Yajit (2)

機能は増やさず、 x86 対応と ruby-1.9.0-0 対応と ruby-1.9.0-1 対応、バグ修正と mingw32, Cygwin, Mac OSX 対応などした。http://shinh.skr.jp/tmp/yajit.tgzCygwin は DEBUG つけないとなんか落ちる。 Mac OSX はテストの最中に GC 関係のエラーでコケる…

Yajit

ふと思い立って YARV からの JIT コンパイラを Xbyak で書き始めてみました。 x86 と x86_64 を両方サポートするつもりだったけど、とりあえず適当にやりすぎて x86_64 に依存しまくってしまったのでとりあえず現状そっちだけ。今度 x86 対応はちゃんとやる…

呼び出し規約

常に忘れるよ! x86 EAX, ECX, EDX は破壊して良し。逆に言うと EBX, EDI, ESI は保存すること。引数はスタックで後ろから順に。浮動小数返す時は FPU のスタックトップを使う。渡す時は普通にスタック上で。linux のシステムコールは EAX, EBX, ECX, EDX に…

Hello, world! 統計

なんかまず kernel はどうやったもんかなと思ったのでやめておくことに。端末とかも追わないので不完全ではありますが、趣旨としては、以下の非常に高度な技術が詰め込まれたコードがどれだけ大変なことになって実行されているかというようなことを肌で感じ…

Scala 勉強会

http://cappuccino.jp/scala-ja/?Scala%CA%D9%B6%AF%B2%F1%A1%F7%B4%D8%C5%EC-1いくつか印象に残ったことを。以下なんか勘違いもあるかも。 Scala も Nemerle も研究畑な感じらしい。 意外だった。研究者ってのは関数型言語だけだと思ってた。あるいは Small…

Marathon Match 34

なんかそろそろ下手の横好きだと自覚してきました。9位にすら行かないなんて。http://www.topcoder.com/longcontest/stats/?module=ViewOverview&rd=12200問題はhttp://shinh.skr.jp/tmp/CircuitConstruction.pngというような図を見ればだいたいわかって、つ…

SDLなんちゃら

いいかげん今回はネタをちゃんと公開するのことです。http://shinh.skr.jp/koneta/#SDL_xtermとりあえず colinux & tightVNC だとなんか SDL のアプリが使えないという問題がありまして、それ直す努力しろよって感じもあるんですが、まぁ無理矢理なんとかす…

LiftScheduler, Top Coder Marathon Match 33

結果出たみたい。http://www.topcoder.com/longcontest/stats/?module=ViewOverview&rd=12199なんかまた system test で順位が不自然に増えて9位。また9位かよ!http://www.topcoder.com/longcontest/stats/?module=ViewOverview&rd=11136正直何やったか何が…

hash

http://www.jmuk.org/diary/2008/04/09/0http://www.kt.rim.or.jp/~kbk/zakkicho/08/zakkicho0804a.html#D20080408-2http://www.kmonos.net/wlog/84.html#_1049080409まぁなんかしんどいのでハッシュでも考えるかと思ってたら kinaba さんが素晴らしいことを…

infix to postfix

1年以上前に出題された問題なのですが、当時 kinaba さんの解答を見て、すげーと思って、今でも一番好きな Ruby のコードではないかと思っています。ので思い出したように少し書いてみます。http://www.kmonos.net/wlog/71.html#_2014070301問題は、 (a-b)*c…

thin archive

とかいうファイル形式が GNU binutils に足されてたみたい。http://sourceware.org/ml/binutils/2008-03/msg00150.html 2つ以上の相互依存する .a ファイルがセットで使われるようなケースでは、 --start-group libhoge.a libfuga.a --end-group とか普通は…

AMD Multicore Threadfest

地道にしょぼしょぼやってたけど、なんか最後に失敗したみたいで悲しい。のですがまぁ考えた記録を書いてみます。なんか問題は、こなすべき色んなサイズの job が10万とかあって、それを数十個の性能の異なる machine で適当に全部こなすための scheduling …

うるう年判定

前にうるう年判定するアルゴリズムは x86 だと綺麗だとかいう話を雑談でしました。というわけで地味に綺麗なアルゴリズムシリーズ。(前回はライフゲーム)とりあえずWikipediaさんによると、 1. 西暦年が4で割り切れる年は閏年 2. ただし、西暦年が100で割り…

AMD Multicore Threadfest

よくわからんのだけど、たぶん Top Coder Marathon Match の一部だと思う。http://www.topcoder.com/longcontest/?module=ViewProblemStatement&rd=12166&pm=8708内容はなんかたぶん分散環境のスケジューリングとかで、これはこうまぁ普通に仕事と関係無いけ…

D BOF

で D BOF で話してきました。あとでまとめてあがるみたいだけどとりあえずどうでもいいスライドはこんな感じ。http://www.slideshare.net/shinh/dreflectionhttp://docs.google.com/Presentation?id=dhf5wwff_79g93d9xccまぁなんか色々グダグダだったのはホ…

Haskell Hackathon

とりあえず D BOF は後で。http://shinh.skr.jp/koneta/dhc.tgz眠いなーと思いつつ D BOF の後で行った。たぶん2時くらいについた。なんかみんな飯喰ってたのでだべる。チャットから時間を起こそう。とりあえずパーサとかどうでもいいので構文木を喰わせる実…

backtrace

で、そういう理由でこう、何度目かの backtrace 実装とかしてたんですが、 glibc の backtrace って DWARF2 使う実装とかあるんだなーと気付いた。 GCC ならこれ使うのが一番楽だし、 -fomit-frame-pointer ついてても大丈夫とか偉い。 // They are in libgc…

member functions tracer

なんか ModuleInfo とか ClassInfo あたりまでは reflection できてるのなー、ということで これ をちゃんと実装してみた。http://shinh.skr.jp/d/tracer.tgz % cat example.d import tracer; class C { void f() { g(); } void g() { } } void main() { ini…

ラムダ

http://d.hatena.ne.jp/Cryolite/20080213#p1あれー私は lambda って言っても環境は持たないんだと勝手に思ってたんですが、どうやら本気でクロージャを C++ に入れるのかーと今頃気付きました。でhttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/…

236B ライフゲーム

SDL なんちゃら に行ったところ goruby/SDL とかいう声が囁かれていたのでその場でライフゲームとか書きました。 rq'sdl' S.i(S) s=S::Screen.op(640,480,32,S::SWSURFACE) E=S::Event a=Array.ne(W=3072){rd 2} lp{a=(1..W).m{|i|s.fR(i%64*10,i/64*10,10,1…

human readable digits

http://morihyphen.hp.infoseek.co.jp/log2/200801.html#01310を見て、相変わらず free 読めねー、と思ったので、ちょっと便利そうなものを作ってみました。 #!/usr/bin/ruby -p gsub(/\d+/){"%#{s=$&.size-1}s#{%w(T G M k)[4-s/3]}"%$&[0,s%3+1]} サンプル…

GCC とメタプログラミング

GCC やっぱすごいなぁという話まぁコード生成する類のものは全部メタプログラミングだと考えるとします。当時のkinaba先生世界観。例としては C のコードを cpp で C にするとか、 C のコードを gcc で asm にするとか autotools でほげほげとか。それはとも…

SSL

ずっとある程度まとめて勉強したことが無かった、 SSL について軽く調べてみた。あんま深く調べてないので真に受けんで下さい。

続プログラムは ASCII で書くべき

Z80 ゴルフはなかなか大変だなぁと思ったので命令セットに慣れるためにアルファベットと数字だけで Hello, world! を書いてみました。記号も入ってないので前回よりも偉いかもしれません。 2Hello20world3999999555555F9p555555555F5559V99999px27055ENy2009…

PRIC

http://www.spoj.pl/ranks/PRIC/oxyさんとこ で見たので解いてたんだけどお話になりませんでした。無念。

息を吸うように objdump

このへんで書いた、どうなってるか自信が無いことがあったらとりあえず objdump しちゃえという話…とか言うと「アセンブリは…」みたいな雰囲気になることが多い気がするんですが、正直アセンブリなんか読めなくてもコードがどうなってるかくらいはわかるよん…

UNIX domain socket

なんかしらそれなりにリソース喰う物体はサーバ化しといてみんなでそのリソース使う…っていうのはよくやることかと思います。うちの場合 cmigemo と rdic と w3mcooksrv がそんな感じ。 w3mcooksrv は cookie 共有したいからだけど。で w3mcooksrv 作る時に…

122Byte の Web サーバ

なんとなく小さい Web サーバを書いてみました。 Web サーバというかどんなリクエストでも固定応答するだけ。http://shinh.org:40960/例のごとく 58Byte Hello を参考に。まだ縮むと思うけど飽きた。 BITS 32 ORG 0 DB 0x7F ; e_ident entry: inc ebp ; e_id…

OOM killer

http://mkosaki.blog46.fc2.com/blog-entry-416.htmlこのへん見ててなんか前なんかの拍子に OOM killer をながめたのを思い出しました。場所は mm/oom_kill.c 。こんなかの badness() で各プロセスのメモリに関しての危険度を調べてるんだけど、さっきの swi…

GCC の switch と ishex

http://alohakun.blog7.fc2.com/blog-entry-878.htmlなんかこのへん見て GCC の switch の最適化とか見てたら、単なるテーブルジャンプ以外のちょっと面白い最適化が目につきました。http://shinh.skr.jp/m/?date=20071121#p01でもテーブルルックアップには…

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