[#30408] Ruby 1.8.6 preview2 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 preview2 をリリースしました。

20 messages 2007/02/24
[#30414] fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released) — Hidetoshi NAGAI <nagai@...> 2007/02/25

永井@知能.九工大です.

[#30418] Re: fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released) — Nobuyoshi Nakada <nobu@...> 2007/02/25

なかだです。

[ruby-dev:30438] Re: fail to autoload at $SAFE==4

From: Hidetoshi NAGAI <nagai@...>
Date: 2007-02-27 07:28:51 UTC
List: ruby-dev #30438
永井@知能.九工大です.

From: "Nobuyoshi Nakada" <nobu@ruby-lang.org>
Subject: [ruby-dev:30437] Re: fail to autoload at $SAFE==4
Date: Tue, 27 Feb 2007 15:02:33 +0900
Message-ID: <cebd6fd10702262202j5380614dyd3074a0853993c44@mail.gmail.com>
> 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

In This Thread