From: Hidetoshi NAGAI Date: 2007-02-27T16:28:51+09:00 Subject: [ruby-dev:30438] Re: fail to autoload at $SAFE==4 永井@知能.九工大です. From: "Nobuyoshi Nakada" Subject: [ruby-dev:30437] Re: fail to autoload at $SAFE==4 Date: Tue, 27 Feb 2007 15:02:33 +0900 Message-ID: > At Tue, 27 Feb 2007 11:45:40 +0900, > Hidetoshi NAGAI wrote in [ruby-dev:30435]: > > > ということで考えたのが、以下の二つの案です。 > > > (1) safe_levelを指定して探してくれるrb_provided()を追加する > > > (2) rb_provided()は拡張ライブラリについてはあきらめる > > もう一つ考えました。 > > (3) autoloadを指定したときに実際にロードされるはずのライブラリを > 探し、.rbか.soか確定してしまう ^^^^^^^^^^^^^^フルパスで? autoload を定義する時点で,きっとどのファイルかは 想定していると思えるので,個人的にはこれでも十分な気はします. ですが,確かに動的な変更 ($LOAD_PATH 変更を含む) を 想定している可能性も 0 ではないですよね.(^_^; autoload の仕様として, * autoload 呼び出し時にロードされるファイルを確定させる. * 実際にロードする時点でファイルのタイムスタンプが変化していたら 例外 (SecurityError ?) とする. というのは「あり」でしょうか? # 「あり」だとしても,1.8 での変更はダメですね. それはそれとして,作業コストと互換性とを考えると, 1.8 ではやはり (2) を選択するのが妥当となるのでしょうか? -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp