Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 妙なNMZ.pができる問題



寺西です。

Yukio USUDA wrote:
> 
> > ですね。よく Perl 5.8.1 で問題がおきているとお気づきになったものです。
> >
> > # 私なんて全然気づきませんでした。
> 
> 藤原さんのwebサイトでFedoraで再現しているというのを見かけ
> nkfやOSが原因ではないことがわかりました。

何かの環境依存かなぁ程度にしか思えませんでした。

> > いや、そちらから攻めるのではなくて、Perl 5.8.1 の場合は、
> > 環境変数に PERL_HASH_SEED=0 を設定してください。
> > これは、Perl 5.8.1 で仕様変更された影響を防ぐためです。
> > Perl 5.8.0 および Perl 5.8.2以降でこの環境変数を設定しなくても、
> > 仕様変更の影響を受けません。
> >
> > で良いと思います。(フレーズの話は不要でしょう。フレーズ以外で影響が
> > でない保証はないですし。)
> >
> tutorial.htmlかmanual.htmlに書いておくことになりますかね。

ですね。
プログラム側はそろそろ安定してきたように思いますが、ドキュメント
側がまだ全然進んでいないので、そろそろそちらの修正に力を
いれないといけませんね。

> 仕様であったとしてもNamazuにとっては
> 正しくない検索結果の原因になるという点は致命的な気もします。

はい、そう思います。
 
> また、perl実行後にはこのパラメータが変更できない?ようなので
> 
> if (($ENV{PERL_HASH_SEED} ne 0) && ($] == 5.008001)) {
>     print "Run mknmz with the environment variable PERL_HASH_SEED=0\n";
>     exit 1;
> }
> 
> と終了させてしまってはどうでしょうか。

良いかもしれません。というより、この修正加える方に一票。

この修正をするならFAQに、
"Run mknmz with the environment variable PERL_HASH_SEED=0" 
が表示されて mknmz が終了した場合は、環境変数 PERL_HASH_SEED に
0 を設定してご使用ください。程度のものを追加するだけでいいかも
しれません。

厳密には、Perl 5.8.1 を -DNO_HASH_SEED (とドキュメントに書いてあったが、
もしかすると間違っているかもしれません。)付きでコンパイルしたもので
あった場合には、環境変数 PERL_HASH_SEED は未設定でも正常動作する
可能性はありますが、そこまで厳密に対応する必要を感じないので、
上記の修正で妥当ではないかと思います。

まぁ、あとは Namazu のツール群をどうするかですが、ま、mknmz が
動かない状態でツール群を使うということもないので、ノーチェックで
良いでしょうね。
-- 
=====================================================================
寺西 忠勝(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