[pod] [xml]

NAME

perl584delta - perl v5.8.4 での変更点

DESCRIPTION

このドキュメントは 5.8.3 リリースと 5.8.4 リリースの変更点を記述しています。

Incompatible Changes

(互換性のない変更)

多くの細かいバグが修正されました。以前の間違った振る舞いに偶然にも 依存していたスクリプトはこれら修正が互換性のない変更と 考えるかもしれません:-)。このリリースを製品に組み入れる前に、 バグ修正が影響を与えないことを確認するために十分な受け入れテストを することをお勧めします。

Carp の診断出力がわずかに変更され、引数の間のカンマの後にスペースが 追加されました。これにより web ブラウザのようなツールが自動折り返しを 行うのがとても容易になりましたが、Carp の出力を詳細にパースする自動ツールを 混乱させるかもしれません。

内部ダンプ出力は改良され、改行やバックスペースと言った表示できない文字は 8 進数表記ではなく \x 表記になりました。 これは Devel::Peek といったモジュールの出力をパースする堅牢でない ツールを混乱させるかもしれません。

Core Enhancements

(Core の拡張)

Malloc wrapping

異常に大きなメモリブロックを確保しようとするのを検出するように ビルドできるようになりました。以前はこのような確保はサイズ計算時に 整数が桁あふれして間違った割り当てを引き起こしました。 これは perl をクラッシュさせ、理論的には「スタック破壊」攻撃に利用できました。 ラッピングのデフォルトは、これが動作すると知っているプラットフォーム (AIX のほとんどの設定, BSDi, Darwin, DEC OSF/1, FreeBSD, HP/UX, GNU Linux, OpenBSD, Solaris, VMS, ほとんどの Win32 コンパイラ)では有効、 それ以外のプラットフォームではデフォルトでは無効になっています。

Unicode Character Database 4.0.1

Perl 5.8 に含まれている Unicode Character Database は 4.0.0 から 4.0.1 に 更新されました。

suidperl less insecure

Paul Szabo は suidperl を解析し、知られている脆弱性を取り除くための パッチを当てました。現在のところ suidperl に知られている脆弱性は ありませんが、過去の経験から言うと、これがずっと続く自信はありません。 もはや set uid された perl を直接起動することはなく、 #!/usr/bin/suidperl を起動するスクリプトの過去互換性を維持するための 唯一の set uid されたバイナリは sperl5.8.n です このリリースでは(sperl5.8.4)。 suidperlperl のハードリンクとしてインストールされます; suidperlperl は両方とも set uid されたバイナリである sperl5.8.4を起動します。従ってこの変更は完全に透過のはずです。

新しいプロジェクトのためには、suidperl よりむしろ、sudoのような専用で 単一目的のセキュリティツールを使うことをコア perl チームは強く勧めます。

format

バグ修正に加えて、format の機能が拡張されました。 perlform を参照して下さい。

Modules and Pragmata

(モジュールとプラグマ)

コアモジュールとドキュメントでの /tmp の(誤)使用は整理されました。 Perl コア内と独立した CPAN と両方に存在するモジュール ("dual-life modules")ではまだこれらの変更は適用されていません。 変更は CPAN のモジュールが更新された時点で将来の安定版リリースの perl に 統合されます。

Updated modules

(更新されたモジュール)

Performance Enhancements

(性能の向上)

Utility Changes

(ツールの変更)

Perl デバッガ (lib/perl5db.pl) は後で利用するために全てのデバッガコマンドを 保存できるようになり、また与えられたクラスの親継承木を表示できるように なりました。

Installation and Configuration Improvements

(インストールと設定の改良)

VMS と Windows でのビルドプロセスはいくつか細かい改良が行われました。 Windows Borland C コンパイラで、PerlIO と USE_LARGE_FILES を有効にして コンパイルできるようになりました。

Windows の perl.exe は「ラクダ」ロゴアイコンを持つようになりました。 Perl に関してラクダを使うことは O'Reilly and Associates Inc. の商標であり、 その許可の基に使用(ソースの配布、そこからの Windows 実行ファイルの コンパイル、その実行ファイルのローカルでの使用)しています。 perl の実行ファイルのアイコンとして以外のこのラクダの使用については 含まれていないので、このアイコンと 共に perl バイナリを再配布したい人は 予め O'Reilly に直接確認するべきです。

Perl は Stratus VOS でもう一度クリーンにビルドできるべきです。

Selected Bug Fixes

(バグ修正の抜粋)

より多くの utf8 バグが修正されました。特に chomp, chop, send, syswrite と utf8 データとの相互作用が 修正されました。use bytes;スコープ内での文字連結が正しく 働くようになりました。

プラグマが正規表現の (?{...}) 構造の中に正しく伝播するようになりました。

   my $x = qr{ ... (??{ $x }) ... };

のようなコードは use strict の環境では(正しく)失敗します (内部の $x は常に $::x として扱われるからです)。

「無効コンテキストでの定数」警告は 5 || print; のような、 最適化によって除去される真偽値表現での定数に関しては 抑制されるようになりました。

ミスにより、perl -ifchmod(stdin) できるようになっていました。 これは標準入力が端末に接続され、perl が root で実行されているときに 重大な問題でした。この問題は修正されました。

New or Changed Diagnostics

(新しい、または変更された診断メッセージ)

CarpDevel::Peek で用いられている内部診断ルーチンは /Incompatible Changes で記述されているようにより明確になりました。

Changed Internals

(内部の変更)

ハッシュの内部表現に関するいくつかのバグが修正されました。 制限ハッシュとそのプレースホルダは少し異なるタイミングで割り当て及び 削除されますが、これはユーザーコードからは見えないはずです。

Future Directions

(将来の方向性)

次のメンテナンスリリース(5.8.5)は 2004 年 6 月 30 日にコードフリーズされ、 7 月中旬までにリリースされる予定です。

Platform Specific Problems

(プラットフォーム固有の問題)

このリリースは Windows 95 ではビルドできないことがわかっています。

Reporting Bugs

もしバグと思われるものが見つかったら、 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/ で閲覧及び 検索することができます。

SEE ALSO

Changes ファイルに変更点の完全な詳細があります。

INSTALL ファイルに Perl のビルド方法があります。

README ファイルに一般的なことがあります。

Artistic 及び Copying ファイルに著作権情報があります。