From: Hidetoshi NAGAI Date: 2008-04-08T06:10:24+09:00 Subject: [ruby-dev:34268] Re: Ruby1.9 での $SAFE==4 時の autoload 動作 永井@知能.九工大です. From: Nobuyoshi Nakada Subject: [ruby-dev:34267] Re: Ruby1.9 での $SAFE==4 時の autoload 動作 Date: Tue, 8 Apr 2008 03:44:46 +0900 Message-ID: <20080407184445.9065EE0738@mail.bc9.jp> > autoloadに"./"や"../"で始まる相対パスを指定していると、autoload > より先にrequireしたときにエラーになるというバグもあったので、ま > とめて直しました。 ありがとうございます.ですが,まだ直ってはいないようです. ------------------------------------------------------------- autoload :ZZZ, File.join(Dir.pwd, 'zzz.rb') module M; end #p ZZZ.new.hoge ## <--- (*) #p Thread.new{M.instance_eval('$SAFE=4; ZZZ.new.hoge')}.value #p Thread.new{$SAFE=4; M.instance_eval('ZZZ.new.hoge')}.value #p Thread.new{$SAFE=4; eval('ZZZ.new.hoge')}.value #p Thread.new{eval('$SAFE=4; ZZZ.new.hoge')}.value ------------------------------------------------------------- 上記の (*) の行を有効にして,autoload を先に働かせない限り, 以下の 4 行のいずれを有効にしても 'Insecure operation' となります. ついでにですが,多分 Revision: 15915 の修正の結果により, ------------------------------------------------------------- $ /usr/local/bin/ruby19 ./ext/tk/sample/tkhello.rb /usr/local/lib/ruby/1.9.0/tk.rb:2344:in `find': unknown encoding name - binary (ArgumentError) from /usr/local/lib/ruby/1.9.0/tk.rb:2344:in `' from /usr/local/lib/ruby/1.9.0/tk.rb:2328:in `' from /usr/local/lib/ruby/1.9.0/tk.rb:2327:in `' from ./ext/tk/sample/tkhello.rb:1:in `require' from ./ext/tk/sample/tkhello.rb:1:in `
' ------------------------------------------------------------- などというエラーを出すようになりました. 原因はこれから調べようと思いますが, 心当たりがありましたら教えていただけますと助かります. -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp