名前

perldelta - what is new for perl v5.8.7

perl587delta - perl v5.8.7 での変更点

説明

This document describes differences between the 5.8.6 release and the 5.8.7 release.

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

互換性のない変更

There are no changes incompatible with 5.8.6.

5.8.6 と互換性のない変更はありません。

Core の拡張

Unicode Character Database 4.1.0

The copy of the Unicode Character Database included in Perl 5.8 has been updated to 4.1.0 from 4.0.1. See http://www.unicode.org/versions/Unicode4.1.0/#NotableChanges for the notable changes.

Perl 5.8 に含まれる Unicode Character Database は 4.0.1 から 4.1.0 に 更新されました。 注目するべき変更点については http://www.unicode.org/versions/Unicode4.1.0/#NotableChanges を 参照してください。

suidperl がより安全に

A pair of exploits in suidperl involving debugging code have been closed.

デバッグコードに関する suidperl の 2 つの脆弱性が修正されました。

For new projects the core perl team strongly recommends that you use dedicated, single purpose security tools such as sudo in preference to suidperl.

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

Optional site customization script

The perl interpreter can be built to allow the use of a site customization script. By default this is not enabled, to be consistent with previous perl releases. To use this, add -Dusesitecustomize to the command line flags when running the Configure script. See also "-f" in perlrun.

perl インタプリタはサイトカスタマイズスクリプトを使うように ビルドできるようになりました。 デフォルトでは、以前の perl と同様にこの機能は無効化されています。 これを使うためには、Configure を実行するときに -Dusesitecustomize コマンドラインオプションを追加します。 "-f" in perlrun も参照してください。

Config.pm is now much smaller.

(Config.pm がはるかに小さく)

Config.pm is now about 3K rather than 32K, with the infrequently used code and %Config values loaded on demand. This is transparent to the programmer, but means that most code will save parsing and loading 29K of script (for example, code that uses File::Find).

Config.pm は、あまり使われないコードと %Config の値を オンデマンドで読み込むことで、サイズがおよそ 32K から 3K になりました。 これはプログラマにとっては透過的ですが、ほとんどのコード (例えば、File::Find を使うコード)で 29K のスクリプトを読み込み、 パースする必要がなくなることを意味します。

モジュールとプラグマ

  • B upgraded to version 1.09

    B はバージョン 1.09 に更新されました。

  • base upgraded to version 2.07

    base はバージョン 2.07 に更新されました。

  • bignum upgraded to version 0.17

    bignum はバージョン 0.17 に更新されました。

  • bytes upgraded to version 1.02

    bytes はバージョン 1.02 に更新されました。

  • Carp upgraded to version 1.04

    Carp はバージョン 1.04 に更新されました。

  • CGI upgraded to version 3.10

    CGI はバージョン 3.10 に更新されました。

  • Class::ISA upgraded to version 0.33

    Class::ISA はバージョン 0.33 に更新されました。

  • Data::Dumper upgraded to version 2.121_02

    Data::Dumper はバージョン 2.121_02 に更新されました。

  • DB_File upgraded to version 1.811

    DB_File はバージョン 1.811 に更新されました。

  • Devel::PPPort upgraded to version 3.06

    Devel::PPPort はバージョン 3.06 に更新されました。

  • Digest upgraded to version 1.10

    Digest はバージョン 1.10 に更新されました。

  • Encode upgraded to version 2.10

    Encode はバージョン 2.10 に更新されました。

  • FileCache upgraded to version 1.05

    FileCache はバージョン 1.05 に更新されました。

  • File::Path upgraded to version 1.07

    File::Path はバージョン 1.07 に更新されました。

  • File::Temp upgraded to version 0.16

    File::Temp はバージョン 0.16 に更新されました。

  • IO::File upgraded to version 1.11

    IO::File はバージョン 1.11 に更新されました。

  • IO::Socket upgraded to version 1.28

    IO::Socket はバージョン 1.28 に更新されました。

  • Math::BigInt upgraded to version 1.77

    Math::BigInt はバージョン 1.77 に更新されました。

  • Math::BigRat upgraded to version 0.15

    Math::BigRat はバージョン 0.15 に更新されました。

  • overload upgraded to version 1.03

    overload はバージョン 1.03 に更新されました。

  • PathTools upgraded to version 3.05

    PathTools はバージョン 3.05 に更新されました。

  • Pod::HTML upgraded to version 1.0503

    Pod::HTML はバージョン 1.0503 に更新されました。

  • Pod::Perldoc upgraded to version 3.14

    Pod::Perldoc はバージョン 3.14 に更新されました。

  • Pod::LaTeX upgraded to version 0.58

    Pod::LaTeX はバージョン 0.58 に更新されました。

  • Pod::Parser upgraded to version 1.30

    Pod::Parser はバージョン 1.30 に更新されました。

  • Symbol upgraded to version 1.06

    Symbol はバージョン 1.06 に更新されました。

  • Term::ANSIColor upgraded to version 1.09

    Term::ANSIColor はバージョン 1.09 に更新されました。

  • Test::Harness upgraded to version 2.48

    Test::Harness はバージョン 2.48 に更新されました。

  • Test::Simple upgraded to version 0.54

    Test::Simple はバージョン 0.54 に更新されました。

  • Text::Wrap upgraded to version 2001.09293, to fix a bug when wrap() was called with a non-space separator.

    Text::Wrap はバージョン 2001.09293 に更新され、 warp() が非スペースセパレータで呼ばれた場合のバグが修正されました。

  • threads::shared upgraded to version 0.93

    threads::shared はバージョン 0.93 に更新されました。

  • Time::HiRes upgraded to version 1.66

    Time::HiRes はバージョン 1.66 に更新されました。

  • Time::Local upgraded to version 1.11

    Time::Local はバージョン 1.11 に更新されました。

  • Unicode::Normalize upgraded to version 0.32

    Unicode::Normalize はバージョン 0.32 に更新されました。

  • utf8 upgraded to version 1.05

    utf8 はバージョン 1.05 に更新されました。

  • Win32 upgraded to version 0.24, which provides Win32::GetFileVersion

    Win32 はバージョン 0.24 に更新され、Win32::GetFileVersion が追加されました。

ツールの変更

find2perl の拡張

find2perl has new options -iname, -path and -ipath.

find2perl-iname, -path, -ipath オプションが追加されました。

パフォーマンスの向上

The internal pointer mapping hash used during ithreads cloning now uses an arena for memory allocation. In tests this reduced ithreads cloning time by about 10%.

iスレッドの複製中に使用する内部ポインタマッピングハッシュがメモリ割り当ての アリーナを使うようになりました。 テストによればiスレッドの複製時間は 10% 減少しました。

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

  • The Win32 "dmake" makefile.mk has been updated to make it compatible with the latest versions of dmake.

    Win32 "dmake" の makefile.mk は最新版の dmake との互換性のために 更新されました。

  • PERL_MALLOC, DEBUG_MSTATS, PERL_HASH_SEED_EXPLICIT and NO_HASH_SEED should now work in Win32 makefiles.

    PERL_MALLOC, DEBUG_MSTATS, PERL_HASH_SEED_EXPLICIT, NO_HASH_SEED は Win32 makefile でも動作するようになったはずです。

バグ修正の抜粋

  • The socket() function on Win32 has been fixed so that it is able to use transport providers which specify a protocol of 0 (meaning any protocol is allowed) once more. (This was broken in 5.8.6, and typically caused the use of ICMP sockets to fail.)

    Win32 の socket() 関数は修正され、プロトコルに 0 を指定する (全てのプロトコルを許可することを意味します) 転送プロバイダが再び使えるようになりました。 (これは 5.8.6 で動かなくなっており、典型的には ICMP ソケットの使用に 失敗していました。)

  • Another obscure bug involving substr and UTF-8 caused by bad internal offset caching has been identified and fixed.

    内部オフセットのキャッシュが正しくないことによる、 substr と UTF-8 に関するもう一つの目立たないバグが発見され、 修正されました。

  • A bug involving the loading of UTF-8 tables by the regexp engine has been fixed - code such as "\x{100}" =~ /[[:print:]]/ will no longer give corrupt results.

    正規表現エンジンによる UTF-8 テーブルの読み込みに関するバグが 修正されました - "\x{100}" =~ /[[:print:]]/ といったコードも 正しい結果を出すようになりました。

  • Case conversion operations such as uc on a long Unicode string could exhaust memory. This has been fixed.

    長い Unicode 文字列に対して、uc のような大文字小文字変換を 行うとメモリを使い果たすことがありました。これは修正されました。

  • index/rindex were buggy for some combinations of Unicode and non-Unicode data. This has been fixed.

    index/rindex は Unicode と非 Unicode の組み合わせによっては バグっていました。これは修正されました。

  • read (and presumably sysread) would expose the UTF-8 internals when reading from a byte oriented file handle into a UTF-8 scalar. This has been fixed.

    read (とおそらくは sysread) はバイト指向ファイルハンドルから UTF-8 スカラに読み込むと、UTF-8 の内部を外にさらすことがありました。 これは修正されました。

  • Several pack/unpack bug fixes:

    いくつかの pack/unpack のバグが修正されました:

    • Checksums with b or B formats were broken.

      bB フォーマットでのチェックサムが壊れていました。

    • unpack checksums could overflow with the C format.

      C フォーマットで unpack のチェックサムが オーバーフローすることがありました。

    • U0 and C0 are now scoped to () pack sub-templates.

      U0C0() pack サブテンプレートのスコープになりました。

    • Counted length prefixes now don't change C0/U0 mode.

      数えた長さの接頭辞は C0/U0 モードを変更しなくなりました。

    • pack Z0 used to destroy the preceding character.

      pack Z0 がその前の文字を破壊していました。

    • P/p pack formats used to only recognise literal undef

      P/p pack フォーマットがリテラルの undef しか 認識していませんでした。

  • Using closures with ithreads could cause perl to crash. This was due to failure to correctly lock internal OP structures, and has been fixed.

    iスレッドでクロージャを使うと perl をクラッシュさせることがありました。 これは内部の OP 構造体を正しくロックするのに失敗していたのが 原因で、これは修正されました。

  • The return value of close now correctly reflects any file errors that occur while flushing the handle's data, instead of just giving failure if the actual underlying file close operation failed.

    close の返り値は対象のハンドルのデータをフラッシュするときに 発生した全てのエラーを正しく反映したものになりました。 今までは実際のファイルクローズ操作に失敗したときに 単に失敗したことを返すだけでした。

  • not() || 1 used to segfault. not() now behaves like not(0), which was the pre 5.6.0 behaviour.

    not() || 1 が segfault を引き起こしていました。 not()not(0) と同じ振る舞いをするようになりました。 これは 5.6.0 以前の振る舞いと同じです。

  • h2ph has various enhancements to cope with constructs in header files that used to result in incorrect or invalid output.

    h2ph の様々な拡張にはヘッダファイルの構造を処理しようとすると 間違っていたり不正な出力をするものがありました。

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

There is a new taint error, "%ENV is aliased to %s". This error is thrown when taint checks are enabled and when *ENV has been aliased, so that %ENV has no env-magic anymore and hence the environment cannot be verified as taint-free.

"%ENV is aliased to %s" という汚染エラーが追加されました。 このエラーは汚染チェックが有効になっていて、 *ENV がエイリアスされているため、 %ENV がもはや env-magic でなくなり、 従って環境変数が汚染されていないかどうかを確認できない場合に発生します。

The internals of pack and unpack have been updated. All legitimate templates should work as before, but there may be some changes in the error reported for complex failure cases. Any behaviour changes for non-error cases are bugs, and should be reported.

packunpack の内部が更新されました。全ての正当なテンプレートは 今までと同様に動作するはずですが、複雑な失敗の場合のエラー報告が いくつか変わっているかもしれません。 エラーでない場合に振る舞いが変わっているとしたらそれはバグですので、 報告してください。

内部の変更

There has been a fair amount of refactoring of the C source code, partly to make it tidier and more maintainable. The resulting object code and the perl binary may well be smaller than 5.8.6, and hopefully faster in some cases, but apart from this there should be no user-detectable changes.

C ソースコードに対してかなりの量のリファクタリングが行われ、 一部は整理され、保守性が向上しました。 この結果オブジェクトコードと perl バイナリは 5.8.6 より 小さくなり、いくつかの場合には高速になるかもしれません。 しかしこれら以外にユーザーが気付くような変更はないはずです。

${^UTF8LOCALE} has been added to give perl space access to PL_utf8locale.

perl 空間 PL_utf8locale へのアクセスを与えるために ${^UTF8LOCALE} が追加されました。

The size of the arenas used to allocate SV heads and most SV bodies can now be changed at compile time. The old size was 1008 bytes, the new default size is 4080 bytes.

SV head と、ほとんどの SV body が使用するアリーナのサイズは コンパイル時に変更できるようになりました。 以前のサイズは 1008 バイトで、現在のデフォルトサイズは 4080 バイトです。

既知の問題

Unicode strings returned from overloaded operators can be buggy. This is a long standing bug reported since 5.8.6 was released, but we do not yet have a suitable fix for it.

オーバーロードされた演算子から返された Unicode 文字列はバグって いるかもしれません。これは 5.8.6 がリリースされてから長い間 報告されているバグですが、私たちはまだこれを修正できていません。

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

On UNICOS, lib/Math/BigInt/t/bigintc.t hangs burning CPU. ext/B/t/bytecode.t and ext/Socket/t/socketpair.t both fail tests. These are unlikely to be resolved, as our valiant UNICOS porter's last Cray is being decommissioned.

UNICOS では、lib/Math/BigInt/t/bigintc.t は CPU パワーを使い切って ハングします。 ext/B/t/bytecode.t と ext/Socket/t/socketpair.t のテストは失敗します。 私たちの様々な UNICOS 移殖者の最後の Cray が退役したため、 これらは解決する見込みがありません。

Reporting Bugs

If you find what you think is a bug, you might check the articles recently posted to the comp.lang.perl.misc newsgroup and the perl bug database at http://bugs.perl.org. There may also be information at http://www.perl.org, the Perl Home Page.

もしバグと思われるものが見つかったら、 comp.lang.perl.misc ニュースグループに 最近投稿された記事や http://bugs.perl.org にある perl バグデータベースを 確認してください。 Perl ホームページ、http://www.perl.org にも情報があります。

If you believe you have an unreported bug, please run the perlbug program included with your release. Be sure to trim your bug down to a tiny but sufficient test case. Your bug report, along with the output of perl -V, will be sent off to perlbug@perl.org to be analysed by the Perl porting team. You can browse and search the Perl 5 bugs at http://bugs.perl.org/

もしまだ報告されていないバグだと確信したら、そのリリースに含まれている perlbug プログラムをを実行してください。 バグの再現スクリプトを十分小さく、しかし有効なコードに切りつめることを 意識してください。バグレポートは perl -V の出力と一緒に perlbug@perl.org に送られ Perl porting チームによって解析されます。 Perl 5 のバグについては http://bugs.perl.org/ で閲覧及び 検索することができます。

SEE ALSO

The Changes file for exhaustive details on what changed.

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

The INSTALL file for how to build Perl.

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

The README file for general stuff.

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

The Artistic and Copying files for copyright information.

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