2005-01-01から1年間の記事一覧

共有ライブラリの名前とロードされたアドレスを取得する (実行時 ldd 相当)

ldd と違ってどのアドレスにロードされているかの情報も欲しい。 Linux だと /proc/self/maps に書いてある情報。 Linux では dl_iterate_phdr でにコールバック関数を渡してやる。 FreeBSD では dlinfo(RTLD_SELF, RTLD_DI_LINKMAP, &lmap) などとして link…

実行時に情報を調べる話のまとめ

このへんの話もーちょい調べたら今度まとめてみたいなとか思うけど何がわかってないのか混乱してきたから、現状のまとめ。

あ、 FreeBSD で完動した。 dlinfo の引数として RTLD_SELF ってのが FreeBSD にはある。アップロードずみ。あと Linux には dl_iterate_phdr とかいう関数があるなぁ…

dlinfo

http://shinh.skr.jp/koneta/#shelang/proc/self/maps 見るとかしなくてもポータブルにできるみたい。 dladdr 見てて、これは関数のアドレスが何か一つ無きゃダメってのがキツいなと思ってたんですが、よく見ると dlinfo という関数がヘッダ内にあるわけでし…

……面倒になったのでコードはって終わり。 #include <ffi.h> ffi_type *get_ffi_type(reflection_type_t type) { switch (type) { case R_CHAR: return &ffi_type_sint8; case R_INT: return &ffi_type_sint32; case R_FLOAT: return &ffi_type_float; case R_PTR: r</ffi.h>…

インストールは gcc-core と gcc-java を散らかして、 gcc-x.x.x/libffi 内で、 $ mkdir obj $ cd obj $ ../configure; make; sudo make installとかすると単体で入っていい感じです。 include/ffitarget.h はインストールされてくれないので手動でコピーし…

libffi

http://shinh.skr.jp/koneta/#shelang更新しないと思ってたけど更新しました。http://d.hatena.ne.jp/shinichiro_h/20051027#1130351251の続きです。 libffi を紹介していただいたので使ってみました。生成されていた 7400行とかあった dispatch.c が完全に…

mod_estraier-0.3.0

http://modestraier.sourceforge.net/http://prdownloads.sourceforge.net/modestraier/mod_estraier-0.3.0.tar.gz?downloadmod_estraier_cache を作ってみたがこの程度の再生能力ではわりとイマイチ。http://shinh.skr.jp/tmp/mod_estraier_cache.html後は …

libbfd

あー。http://shinh.skr.jp/koneta/#shelangシンボルが消された .so 内のロード、あっさりできた。 readelf とか見てたけどそんなこと以前に bfd_*dynamic_symtab* シリーズを使えばオッケー。これならシンボル情報を dynamic セクションから読むってことで…

LangScan::Lua, LangScan::Eiffel

これらも書いてコミットしていたのですが、それらを含んだ LangScan-1.2 が出たとのこと。http://gonzui.sourceforge.net/langscan/Ruby でぐちゃっと書いただけだからたぶん性能はとても悪い。http://shinh.skr.jp/gonzui/gonzui.cgi/markup/testspritetest…

mod_estraier-0.2.1

結局出したくなった。バグ取ったりコードクリーニングしたり。バグは指摘された文字化けしそうな件と、リバースプロキシ時に Content-* を取得できてない場合がある件を。http://modestraier.sourceforge.net/http://prdownloads.sourceforge.net/modestraie…

mod_estraier-0.2.0

もうちょいほいほいと。http://modestraier.sourceforge.net/http://prdownloads.sourceforge.net/modestraier/mod_estraier-0.2.0.tar.gz?download同日リリースってどうなのさと思いつつまぁ肉の日とかいうヤツなんだきっと。んでさっそくバグ報告もらいつ…

mod_estraier-0.1.0

成果報告会 で指摘されたことなんかをひょいひょいと。http://modestraier.sourceforge.net/http://prdownloads.sourceforge.net/modestraier/mod_estraier-0.1.0.tar.gz?downloadまぁいろいろやった。そろそろ Win バイナリセットとか作ってみたいね…暗号み…

しー言語とリフレクションライブラリ

適当にデモ言語を作りました。http://shinh.skr.jp/koneta/shelang.tgzスクリプト言語からコンパイル言語の処理を呼ぶ時は、どうしてもブリッジを書くのが面倒で死にたくなります。そこで、 C で関数名から動的に関数を呼んでやろうという試みです。 puts "h…

やりたかったことに手がつけられたのでうれしい。

LangScan::OCaml

関数関係が出てないのが寂しかったのでクイックハックのつもりがまた割と時間取った…http://shinh.skr.jp/gonzui/gonzui.cgi/markup/telloパターンマッチからんだ場合がめんどう…http://shinh.skr.jp/gonzui/gonzui.cgi/markup/tello/config_file.ml

LangScan::D, LangScan::Io

できた。とりあえず ABAさんのコードでも愛でてみますか。他にもごちゃごちゃ入れてみてた。http://shinh.skr.jp/gonzui/gonzui.cgi/markupD言語の psyno で funcdef:co_resume を検索すると pcl.c のコードが出てきたりしてなんか嬉しいのです。http://shin…

LangScan::Io

http://shinh.skr.jp/tmp/gonzui-io.jpgほとんど全てが関数呼び出しになっちゃうのはしょうがないか…現実逃避終了。

LangScan::D

http://gonzui.sourceforge.net/langscan/http://purple.ie.ariake-nct.ac.jp/~bashi/diary/?date=20051010#p01うあー既にわりといいかんじ。でも詰めると大変なんだろうな。http://shinh.skr.jp/tmp/SDL.htmlhttp://shinh.skr.jp/tmp/bogoyaml.htmlhttp://s…

mod_estraier-0.0.8

成果報告会 に行ってきました。プレゼン資料。今回は頑張るつもりだったのに結局デッチアップ。http://modestraier.sourceforge.net/http://prdownloads.sourceforge.net/modestraier/mod_estraier-0.0.8.tar.gz?download主にバグ修正とか。あと mod_estraie…

最近何やらせても雑さがネックになるなぁ…

音楽シャッフルクイズ

http://www.hyuki.com/d/200510.html#i20051020190000しない。以下 N=size。ありえる順列は N! 個。SWAPの全組み合わせは N^N 。よって N^N/N! 通りの組み合わせができれば正しくシャッフルされていると言える (コメントで指摘いただいた通り、「正しくシャ…

ミルカさんの隣で

http://www.hyuki.com/story/diffsum.html今さらマジメに読んだ。この離散のアンスコ表記って他の関数の場合でもちゃんと機能するっぽい…指数関数の差分を考えてみませう。とでも定義すればいいと思うから、にちゃんとなる。途中式省略しすぎた気がする。つ…

行動監視

自分の行動監視をどうやってやるか、には非常に非常に興味があるのですよ。http://d.hatena.ne.jp/w_o/20051018#p2サックリ自分の環境 RGB=565 にだけ対応。http://shinh.skr.jp/tmp/printscreen_x11.c.diff昔の私は起動してるプロセスの監視+自己申告で自…

brainf*ck.io の続き

#!/usr/local/bin/io doFile("bf.io") >+++++++++[-]+++++++[-]++++++++ [-]+++++++++++[-]++++++++[-]++++++++[-]以下 bf.io vm := List clone for(a, 0, 100, vm push(0)) index := 0 through := method(s, m, if (m, a := m argAt(0) if (a, s doMessage(…

brainf*ck.io

時代は DSL ですよね。 K.INABAさんとこを参考にしました (http://www.kmonos.net/alang/etc/brainfuck.php) vm := List clone for(a, 0, 100, vm push(0)) index := 0 through := method(s, m, if (m, a := m argAt(0) if (a, s doMessage(a)) ) ) setSlot(…

\ ( ' - ' ) /

setSlot("'", write("hello ")) setSlot("-", write("world")) setSlot("/", write("!\n")) setSlot(":-", method(v, if (v == 0, write("hello "), write("world!\n")) )) O := 1 \ ( ' - ' ) / :-0 :-O

if の話も解決できた気がした

Object then = method(v, v) Object elseif = method( self then = method( self then = method(v, v) self ) self ) Object else = method(self) modeStr := "640x480" //modeStr := "800x640" //modeStr := "1024x768" mode := if (modeStr == "640x480") …

Nop いらなくないですか。 Nil に関して。

Nop は Nil じゃない。 if (Nop, write("hoge\n")) if (Nop isNil, write("hige\n")) if (Nop) then(write("hage\n")) これは、 hoge と hige を出力する。うん今度このへんの話まとめて ML で聞いてみよう…

Nop いらなくないですか。 isWaitingFuture に関して。

あと ioNop が使われているのは Future#isWaitingFuture にて。とりあえずhttp://d.hatena.ne.jp/shinichiro_h/20040928#1096336174がうまく動かなくなってた。 Future#? すると Future が即評価されてる。で、ちょっと調べるとむしろ ? がいらない模様。 pi…

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