Namazu-devel-ja(旧)


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

Re: namazu 2.0.13 公開 + 動作チェックに協力していただける方募集



寺西です。

Perl 5.8.0 環境で LANG=en_US.UTF-8 の状態で、mknmz を動かすと、
mailnews.pl の中の EUC-JP 文字列が原因でエラーを起こすことが
わかりました。(おそらく man.pl でも起こるでしょう。)

 Malformed UTF-8 character (unexpected continuation byte 0xb7, with no
preceding
 start byte) at ../filter/mailnews.pl line 186.

Perl 5.8.0 の仕様変更により、
「ロケールに en_US.UTF-8 を指定していたのなら, STDIN 及び STDOUT は
暗黙のうちに binmode(..., ":utf8") を行ったかのように自動的に "UTF-8" 
になります」

http://fleur.hio.jp/perldoc/perl/5.8.1-RC4/perldelta.ja.html

ということでした、これは Perl 5.8.1 からこの機能は撤回されました。
(つまり、Perl 5.8.1 以降は起こらない)

試しに、
Perl 5.8.0 で作成した namazu-2.0.13RC3 で
 $ env LANG=en_US.UTF-8 make check 
を実行すると、mailnews.pl でエラーが発生しますが、
Perl 5.8.1 で作成した namazu-2.0.13RC3 で
 $ env LANG=en_US.UTF-8 PERL_HASH_SEED=0 make check
を実行すると、mailnews.pl のエラーは発生しませんでした。
 
やれやれ、Perl 5.8.0 の時は 5.8.1 の時のように、LANG のチェックを
して、警告を出して停止させますかね。

解決策としては、
・Perl 5.8.0 では C ローケルを使用する。
・Perl 5.8.1 以降を使う。
ということを FAQ にでも書きますか。

# Perl 5.8 系は、5.8.3 以降推奨ですな。
-- 
=====================================================================
寺西 忠勝(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