Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 妙なNMZ.pができる問題
寺西です。
Tadamasa Teranishi wrote:
>
> $ env PERL_HASH_SEED=0 make check
>
> とすると All 47 tests passed になりました。
>
> どうやら -DNO_HASH_SEED オプション付きでコンパイルされた Perl 5.8.1
> を使うか、環境変数 PERL_HASH_SEED を 0 にして使う必要がありそうです。
>
> # ハッシュのランダム化で影響を受ける部分があったかなぁ!?
直接は影響なさそうです。Perl 5.8.3 で、
$ env PERL_HASH_SEED_DEBUG=1 make check
で HASH_SEED を表示させましたが、ランダムな値が表示されていました。
もちろん、これでテストはパスします。
> ところで、Perl 5.8.3 では、環境変数の設定も -DNO_HASH_SEED オプション
> なしの状態でも All 47 tests passed になります。
> perldelta をきちんと調べていないのですが、5.8.2, 5.8.3 のどこかで
> 元に戻ったのかもしれません。
Perl 5.8.3 では PERL_HASH_SEED は健在で、デフォルトでランダムな値に
なります。
また、ランダムな値でも、PERL_HASH_SEED=0 (別に 0 でなくても良い)と
固定してもテストはパスします。
一方で Perl 5.8.1 だと PERL_HASH_SEED=0 (別に 0 でなくても良い)を
設定しないと、テストはパスしません。
このことから Perl 5.8.1 で HASH_SEED をランダムにした時に
何か他に影響する部分にバグが入ったが、後のバージョン(少なくとも
5.8.3)で修正されたということのようです。
Perl 5.8.1 ならとりあえず PERL_HASH_SEED=0 をつけると、そのバグ
は回避できそうです。(Perl 5.8.2 は不明です。)
# Known Problem に書くことにしましょう。
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E