[#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:30321] [ruby_1_8] can't grub Digest::SHAxxx on powerpc-darwin

From: Tadashi Saito <shiba@...2.accsnet.ne.jp>
Date: 2007-02-11 17:20:49 UTC
List: ruby-dev #30321
こんばんは。斎藤と申します。

# どこに付けようか、件名はどうすべきかとか悩んだのですが、
# より適切な方針がありましたら、教えていただければ幸いです

1.8.6のリリーススケジュールを耳にしまして、久しぶりにruby_1_8をMac OS X
でビルドしてみました。以下のようにconfigureした後

$ ../../ruby_1_8/configure --enable-shared --enable-pthread
--program-suffix=_1_8 --prefix=$HOME --with-readline-dir=$HOME

makeしました。インストールまでは問題なく行えたようです。

$ ruby_1_8 -v
ruby 1.8.5 (2007-02-11 patchlevel 5000) [powerpc-darwin8.8.0]

しかしmake testは大丈夫だったのですが、make test-allが通りません
でした。(というよりも、始まりませんでした)

$ make test-all
./miniruby  ../../ruby_1_8/runruby.rb --extout=.ext --
"../../ruby_1_8/test/runner.rb" --basedir="../../ruby_1_8/test"
--runner=console
<HOME>/svn/ruby/o/ruby_1_8/.ext/common/digest.rb:16:in
`const_missing': Digest class not found: Digest::SHA384 (NameError) 
make: *** [test-all] Error 1

digest.rb諸々の修正を思いだし、とりあえずSHA384単体を評価してみた
のですが

$ ruby_1_8 -rdigest -e 'Digest::SHA384'
<HOME>/lib/ruby/1.8/digest.rb:15:in `const_missing':
Digest class not found: Digest::SHA256 (NameError)

とダメでした。しかも

$ ruby_1_8 -rdigest -e 'Digest::SHA256'
<HOME>/lib/ruby/1.8/digest.rb:15:in `const_missing':
Digest class not found: Digest::SHA384 (NameError)

と、ループしているような様子です。require先を変えても結局は同じでした。

$ ruby_1_8 -rdigest/sha2 -e 'Digest::SHA384'
<HOME>/lib/ruby/1.8/digest.rb:15:in `const_missing':
Digest class not found: Digest::SHA256 (NameError)

$ ruby_1_8 -rdigest/sha2.so -e 'Digest::SHA384'
<HOME>/lib/ruby/1.8/digest.rb:15:in `const_missing':
Digest classs not found: Digest::SHA256 (NameError)

ただなぜか、定数として存在しているようには見えます。

$ ruby_1_8 -rdigest -e 'p Digest.constants'
["SHA256", "Base", "SHA512", "SHA384", "Instance", "Class"]

なお下の環境では、Digest::SHA384の評価に問題は出ませんでした。

ruby 1.9.0 (2007-02-10 patchlevel 0) [powerpc-darwin8.8.0]
ruby 1.8.5 (2007-02-11 patchlevel 5000) [i686-linux]
ruby 1.9.0 (2007-02-10 patchlevel 0) [i686-linux]

- -

他にもいろいろ考えたのですが、自分にはお手上げなので調べた限りを報告させ
ていただきました。

なお蛇足かも知れませんが、卜部さんのサイトでも同じことが確認できるようで
す。

http://mput.dip.jp/autobuild/ruby-1.8/latest.html

さらに、同様と思われる問題はdigestの改修が行われた2006/10/26以降、ずっと
起こり続けているようです。 

http://mput.dip.jp/autobuild/ruby-1.8/summary.html

長文ですみませんが、よろしくお願いいたします。

--
斎藤ただし

In This Thread

Prev Next