From: Yukihiro Matsumoto Date: 2010-07-02T11:51:36+09:00 Subject: [ruby-dev:41777] Re: 動的ローディングの仕様について まつもと ゆきひろです In message "Re: [ruby-dev:41774] 動的ローディングの仕様について" on Fri, 2 Jul 2010 07:21:46 +0900, Hidetoshi NAGAI writes: |明確な規定をうまく見付けることができなかったので, |ruby のダイナミックリンクライブラリの読み込みについてお尋ねします. | |現状では,".../aaa.bbb.so" というようなファイルを読み込んだ場合, |rb_sourcefile() は ".../aaa.bbb.so" で, |エントリポイントとして呼ばれる関数は Init_aaa() となるように思います. |これは「仕様」であると考えていいでしょうか. |例えば「特定の OS 環境では動作が異なったりはしないか」とか |「Init_aaa_bbb() を呼ぶように変更されたりはしないか」とかです. Init_xxxという関数名を生成する部分は、Ruby側で実装しています から、プラットフォームによって変化することはないと思います。 今、ソースを見たら init_funcname マクロの中でALLOCAとxmalloc の両方を使ってますね。これはxmallocを減らせそう。 |まだ利用するかどうかを具体的に考えているわけではないのですが, |必要となったときに bbb 部分の違いで動作を切替えたり |複数バージョンを置いたりが (仕様なら安心して) できるかなと思いまして. とはいえ、仕様として保証したつもりはないので、「安心して」利 用するのはどうかと。 まつもと ゆきひろ /:|)