[#44925] [Backport93 - Backport #5702][Open] backport r33935 — Yusuke Endoh <mame@...>

19 messages 2011/12/03

[#44940] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode. — Tanaka Akira <akr@...>

2011/12/6 <naruse@ruby-lang.org>:

9 messages 2011/12/05
[#44941] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode. — KOSAKI Motohiro <kosaki.motohiro@...> 2011/12/05

2011年12月5日16:56 Tanaka Akira <akr@fsij.org>:

[#44942] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode. — KOSAKI Motohiro <kosaki.motohiro@...> 2011/12/05

> おかしいな。gdbmは勝手にcreateフラグを立ててしまうので当該2つの

[#44985] [ruby-trunk - Bug #5757][Open] main threadがreadやselectで待っていると、^C でなかなか死なない — Yui NARUSE <naruse@...>

12 messages 2011/12/13

[#45021] [ruby-trunk - Bug #5786][Open] LoadError: cannot load such file -- openssl — Kazuhiro NISHIYAMA <redmine@...>

11 messages 2011/12/21

[#45057] [ruby-trunk - Feature #5820][Assigned] Merge Onigmo to Ruby 2.0 — Yui NARUSE <naruse@...>

21 messages 2011/12/28

[ruby-dev:45027] Re: [ruby-trunk - Bug #5786] LoadError: cannot load such file -- openssl

From: Nobuyoshi Nakada <nobu@...>
Date: 2011-12-22 01:18:09 UTC
List: ruby-dev #45027
なかだです。

(11/12/22 0:32), Kazuhiro NISHIYAMA wrote:
> % git grep -n 'autoload.*openssl'        
> lib/net/http.rb:24:autoload :OpenSSL, 'openssl'
> %
> で autoload が設定されていて、
> lib/securerandom.rb:59:    if defined? OpenSSL::Random
> の defined? で LoadError になってしまうのが原因のようです。
> autoload と defined? の組み合わせは以下のようにバージョン毎に微妙に挙動が違うようです。
> 
> % cat /tmp/test.rb    
> autoload :OpenSSL, 'openssl'
> p defined?(OpenSSL)
> p defined?(OpenSSL::Random)
> % ./ruby -v /tmp/test.rb
> ruby 1.8.7 (2011-12-10 patchlevel 356) [x86_64-linux]
> "constant"
> "constant"
> % cd $(\ls -1d /home/chkbuild/tmp/build/ruby-1.9.2/*|tail -n1)/bin
> % ./ruby -v /tmp/test.rb                                          
> ruby 1.9.2p312 (2011-12-18 revision 34062) [x86_64-linux]
> nil
> nil
> % cd $(\ls -1d /home/chkbuild/tmp/build/ruby-1.9.3/*|tail -n1)/bin
> % ./ruby -v /tmp/test.rb                                          
> ruby 1.9.3p6 (2011-12-20 revision 34080) [x86_64-linux]
> "constant"
> "constant"
> % cd $(\ls -1d /home/chkbuild/tmp/build/ruby-trunk/*|tail -n1)/bin
> % ./ruby -v /tmp/test.rb
> ruby 2.0.0dev (2011-12-21 trunk 34088) [x86_64-linux]
> "constant"
> "constant"

これは、1.9からautoloadされる定数がdefined?でnilになるというバグがあっ
たので1.9.3で直したのですが、そのときに定数のdefined?で例外が起きないと
いう(1.9.0で導入された誤った)仮定にそぐわなくなったためです。おそらく最
右辺以外の定数参照にISEQ_TYPE_DEFINED_GUARDを付ける必要があるのではない
かと思います。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread