Bin

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

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

dlinfo

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

libffi

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

libbfd

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

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

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

g++ がコンストラクタ二つ作る件

高林さんのとこでチラっと出ていたコンストラクタの実体が二つある件について。http://namazu.org/~satoru/blog/archives/000061.html コンストラクタ Tax::Tax() が 2つあるのは、片方はオブジェクトの作成用、もう片方は継承されたとき用のようです。 ここ…

ポータブルなコルーチンライブラリ

が書けた! #include <assert.h> #include <boost/preprocessor.hpp> #define GOTOC_CASE_GOTO_(Z, I, DATA) \ case BOOST_PP_ADD(I, 1): \ goto BOOST_PP_CAT(gotoc_label_, BOOST_PP_ADD(I, 1)); #define GOTOC_FUNC(NUM) \ static int gotoc_call_cnt_ = 0; \ switch (gotoc_call_cnt_) { \ </boost/preprocessor.hpp></assert.h>…

確かに C++ に静的コンストラクタ・デストラクタはあるとは言えないが

無いとも言えないと思います。http://pc5.2ch.net/test/read.cgi/tech/1091185216/821 #define STATIC_THIS_DECL() static void __tmpmethod(); struct __tmp { __tmp() { __tmpmethod(); } }; static __tmp __tmpval #define STATIC_THIS(klass, func) void…

PCL のちゃんと動くパッチ

ごにいさん にパッチが腐ってるとの指摘を受け、直し方も示唆していただきました。というわけで FIX して再アップしておきました。http://shinh.skr.jp/dat_dir/pcl_ioarch.patch雑はやめようぜぇ、と思ったので、一応私が身近に持っている全ての環境で試し…

D での開発に関する最近のはなしのメモ

モノが出てくるのはどうせ先になりそうだし、そもそも私はモノを作るよりその周りを作る方が楽しいような人間でモノなんで本当に出てくるかもあやしい。ゆえに思ったことは思った時に書いた方がいい。しかしまぁいつにもましてニッチの狭げなはなし。

スタックトレース

D言語/スタックトレース(http://tinyurl.com/5ougv) via http://d.hatena.ne.jp/ABA/20041102#p1このへんの与太話が生きているようなのが嬉しい。なるほどメソッドの行さえ見えればそれなりに使えるのか。 mlpp で各行ごとに行番号をインクリメントして…なん…

AspectD 気分

なんか最近どんどんこういう頭の悪い方向に走ってるわけなのですけど。言語をそのままで楽しめなくなってるのかな。デバッグの時に dump を適度に埋めるデバッグ手法は printf デバッグなどと言われみんなに愛されているわけですが、アスペクト指向の言語だ…

reflection.d on Windows

http://shinh.skr.jp/d/reflection.tar.bz2YTさんにリンカの/MAPオプションを教えてもらったので、頭悪めのリフレクションライブラリをWindows でも動くようにしました。 build_win.sh が実行するためのコマンドです。binutils の ld と DigitalMars の link…

reflection.d

D で Reflection 。言語の助けは借りない。今までの謎の作業の集大成的なもの。(参考: ccall_direct,gdcc,dfilt)http://shinh.skr.jp/d/reflection.tar.bz2 class Test { void test_func1() { std.stream.stdout.writeLine("func1"); } void test_func2() { …

ccall_direct

もうちょいいじってから、と思ったけど取りあえずもういいや。http://shinh.skr.jp/io/ccall_direct.tar.bz2Lua やらなんやらで自分のソフトにスクリプト言語を組み込んだ経験のある人は、その組み込む言語に関数を提供するために登録する作業がめんどうだと…

gdcc - D を C から触るブリッジというかなんというか

C から D を呼びたい場合、が仮にあるとすれば、まあ常識的には C 向けインターフェイスを書くわけです。ただその際インターフェイスのコードによるほんの少しの速度低下とコード増大と、それなりに発生する手間というオーバヘッドがあります。手間を削減す…

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