perl585delta - perl v5.8.5 での変更点
このドキュメントは 5.8.4 リリースと 5.8.5 リリースの変更点を記述しています。
(互換性のない変更)
5.8.4 と互換性のない変更はありません。
(Core の拡張)
Perl の正規表現エンジンは、二つの Unicode 文字クラスの intersection の マッチングに対応しました。 また、ユーザー定義文字クラスの中から他のユーザー定義文字クラスを 参照できるようになりました。
(モジュールとプラグマ)
Carp は Safe とうまく動くように改良されました。 Carp のメッセージから例外がなくなりました - 常に行番号情報が出力されます。
CGI はバージョン 3.05 に更新されました。
charnames は $_ を上書きしなくなりました。
Digest はバージョン 1.08 に更新されました。
Encode はバージョン 2.01 に更新されました。
FileCache はバージョン 1.04 に更新されました。
libnet はバージョン 1.19 に更新されました。
Pod::Parser はバージョン 1.28 に更新されました。
Pod::Perldoc はバージョン 3.13 に更新されました。
Pod::LaTeX はバージョン 0.57 に更新されました。
Safe は Carp と同時にうまく動くようになりました。
Scalar-List-Utils はバージョン 1.14 に更新されました。
Shell のドキュメントが書き直され、 歴史的なコマンド引数の部分的な自動クォートは無効化されました。
Test はバージョン 1.25 に更新されました。
Test::Harness はバージョン 2.42 に更新されました。
Time::Local はバージョン 1.10 に更新されました。
Unicode::Collate はバージョン 0.40 に更新されました。
Unicode::Normalize はバージョン 0.30 に更新されました。
(ツールの変更)
(Perl デバッガ)
デバッガは逆方向のステップ実行をエミュレートするようになりました。 これは再起動して、保存されたコマンド履歴を全て再実行することで実現しています。
h2ph は非常に制限された形ではありますが C インライン関数を理解するように なりました -- 基本的に、インライン関数は CPP マクロのように見えます。 これは最新版の glibc のヘッダのいくつかを扱えるように導入されました。 標準の警告は依然として適用されます; h2ph のドキュメントを クォートするためには、生成されたファイルとやりとりする必要があるかもしれません。
(インストールと設定の改良)
Perl 5.8.5 は LynxOS でソースからきれいにビルドできるはずです。
(バグ修正の抜粋)
5.8.4 で導入された組み込みのソート最適化にはバグがありました。 例えば、以下のようなコードでは:
@a = sort ($b, @a)
結果に $b の値が含まれないことがあります。これは修正されました。
5.8.4 で導入された、不要な代入に関する最適化では 誤った警告が出ることがありました。これは修正されました。
Perl は、 BOM 付きと BOM なしの UTF-16(両方のエンディアンのもの)の スクリプトを正しく判定して読み込むようになったはずです。
弱リファレンスがある場合の新しいスレッドの作成にはバグがあり、 しばしばインタプリタの破壊時に警告を出していました。 この既知の問題は修正されました。
Unicode 文字列を substr で操作するときのいくつかの目立たないバグが
修正されました。
以前は、Perl のファイルグロブ関数がオープンする権限のないディレクトリに 出会うと直ちに返るので、結果リストが予定外に切り詰められていました。 これは修正され、Unix シェルのグロブの振る舞いと一貫性がある形になりました。
スレッドの作成時間は実行毎に大きく異なっていました。 これはスレッドをクローン化するルーチンのハッシュアルゴリズムが 貧弱だったからですが、これは修正されました。
iスレッド実装の内部では OS レベルのスレッド作成が失敗したかどうかを
チェックしていませんでした。
スレッド作成に失敗した場合も perl をクラッシュさせることはなくなり、
threads->create() が undef を返すようになりました。
(新しい、または変更された診断メッセージ)
Perl -V はいくつかの改良が行われました:
組み込みコードの断片やその他の混乱させる文字が含まれた ローカルパッチ名を正しく出力します。
-V の引数が正規表現のように見える場合、複数行の出力が出ます。
末尾にコロンをつけることで改行と ';' 終端文字が抑制されるので、 問い合わせをシェルコマンドに埋め込むことが出来ます。
先頭にコロンをつけることで結果の 'name=' の部分が取り除かれるので、 好きな名前に割り当てられます。
perl が指定されたスクリプトを見つけられなかった場合、
-S フラグを使うように示唆するメッセージが2 行目に出力されます。
$ perl5.8.5 missing.pl
Can't open perl script "missing.pl": No such file or directory.
Use -S to search $PATH for it.
(内部の変更)
正規表現エンジンが使う Unicode 文字クラスファイルは、 今までは予め作成して配布していましたが、 ビルド時に Unicode consortium データファイルから作成するようになりました。 これにより圧縮した Perl ソースアーカイブは約 200K 小さくなりました。 副作用として、 lib/unicore 内のファイル配置が変更になりました。
(既知の問題)
退行テスト t/uni/class.t はかなり多くのテストを行うようになったので、 速いマシンでも数分掛かることがあります。
(プラットフォーム固有の問題)
このリリースは Windows 95 ではビルドできないことが分かっています。
もしバグと思われるものが見つかったら、 comp.lang.perl.misc ニュースグループに 最近投稿された記事や http://bugs.perl.org にある perl バグデータベースを 確認してください。 Perl ホームページ、http://www.perl.org にも情報があります。
もしまだ報告されていないバグだと確信したら、そのリリースに含まれている perlbug プログラムをを実行してください。 バグの再現スクリプトを十分小さく、しかし有効なコードに切りつめることを 意識してください。バグレポートは perl -V の出力と一緒に perlbug@perl.org に送られ Perl porting チームによって解析されます。 Perl 5 のバグについては http://bugs.perl.org/ で閲覧及び 検索することができます。
Changes ファイルに変更点の完全な詳細があります。
INSTALL ファイルに Perl のビルド方法があります。
README ファイルに一般的なことがあります。
Artistic 及び Copying ファイルに著作権情報があります。