名前

perldelta - what is new for perl v5.12.2

perl5122delta - perl v5.12.2 での変更点

説明

This document describes differences between the 5.12.1 release and the 5.12.2 release.

この文書は 5.12.1 リリースと 5.12.2 リリースの変更点を記述しています。

If you are upgrading from an earlier major version, such as 5.10.1, first read perl5120delta, which describes differences between 5.10.1 and 5.12.0, as well as perl5121delta, which describes earlier changes in the 5.12 stable release series.

5.10.1 のような以前のメジャーバージョンから更新する場合は、まず 5.10.1 と 5.12.0 の違いについて記述している perl5121delta を読んで、 それから 5.12 安定版リリースシリーズでの変更について記述している perl5121delta を読んでください。

互換性がなくなる変更

There are no changes intentionally incompatible with 5.12.1. If any exist, they are bugs and reports are welcome.

故意に、5.12.1 から互換性がなくなるようにした変更はありません。 もし 5.12.1 との互換性がなければ、それはバグですので、 どうか報告してください。

コアの拡張

Other than the bug fixes listed below, there should be no user-visible changes to the core language in this release.

このリリースでは、以下に記したバグ修正の他には、ユーザーに見えるような 形でのコア言語への変更はないはずです。

モジュールとプラグマ

新しいモジュールとプラグマ

This release does not introduce any new modules or pragmata.

このリリースでは新しいモジュールやプラグマはありません。

プラグマの変更

In the previous release, no VERSION; statements triggered a bug which could cause feature bundles to be loaded and strict mode to be enabled unintentionally.

以前のリリースでは、no VERSION; という文があると feature が 読み込まれ strict が有効になるというバグを引き起こしていました。

更新されたモジュール

Carp

Upgraded from version 1.16 to 1.17.

バージョン 1.16 から 1.17 に更新されました。

Carp now detects incomplete caller() overrides and avoids using bogus @DB::args. To provide backtraces, Carp relies on particular behaviour of the caller built-in. Carp now detects if other code has overridden this with an incomplete implementation, and modifies its backtrace accordingly. Previously incomplete overrides would cause incorrect values in backtraces (best case), or obscure fatal errors (worst case)

Carp は、不完全な caller() のオーバーライドを 検出して、間違った @DB::args の使用を避けるようになりました。 バックトレースを提供するために、Carp は caller 組み込み関数の 特定の振る舞いに依存しています。 Carp は、他のコードがこれを不完全な実装でオーバーライドしていることを 検出して、それに応じてバックトレースを修正します。 以前は不完全なオーバーライドによって(運が良ければ)バックトレースの 値が間違ったり、(運が悪ければ)致命的なエラーが起きていたりしました。

This fixes certain cases of Bizarre copy of ARRAY caused by modules overriding caller() incorrectly.

これは、caller() を正しくオーバーライドしていないモジュールによって 引き起こされる おかしな ARRAY のコピー が起きる場合を修正します。

CPANPLUS

A patch to cpanp-run-perl has been backported from CPANPLUS 0.9004. This resolves [perl #55964] and [perl #57106], both of which related to failures to install distributions that use Module::Install::DSL.

cpanp-run-perl へのパッチが CPANPLUS 0.9004 から バックポートされました。 これは [perl #55964][perl #57106] を 解決します; どちらも Module::Install::DSL を使ったインストールの 失敗に関係しています。

File::Glob

A regression which caused a failure to find CORE::GLOBAL::glob after loading File::Glob to crash has been fixed. Now, it correctly falls back to external globbing via pp_glob.

File::Glob の読み込み後 CORE::GLOBAL::glob を見つけることに 失敗するとクラッシュする問題が修正されました。 現在では、これは正しく pp_glob 経由で外部グロブにフォールバックします。

File::Copy

File::Copy::copy(FILE, DIR) is now documented.

File::Copy::copy(FILE, DIR) が文書化されました。

File::Spec

Upgraded from version 3.31 to 3.31_01.

バージョン 3.31 から 3.31_01 に更新されました。

Several portability fixes were made in File::Spec::VMS: a colon is now recognized as a delimiter in native filespecs; caret-escaped delimiters are recognized for better handling of extended filespecs; catpath() returns an empty directory rather than the current directory if the input directory name is empty; abs2rel() properly handles Unix-style input.

File::Spec::VMS で、いくつかの移植性に関する修正が行われました: コロンはネイティブ filespecs でデリミタとして認識されるようになりました; キャレットでエスケープされたデリミタは拡張 filespecs でのよりよい 扱いのために認識されるようになりました。 catpath() は、入力ディレクトリ名が空の場合は現在のディレクトリではなく 空ディレクトリを返します; abs2rel() は Unix 型の入力を正しく扱います。

ツールの変更

  • perlbug now always gives the reporter a chance to change the email address it guesses for them.

    perlbug は常に、推測された電子メールアドレスを変更する機会を 報告者に与えるようになりました。

  • perlbug should no longer warn about uninitialized values when using the -d and -v options.

    perlbug は、-d-v オプションを使ったときに非初期化値に関して 警告を出さなくなりました。

既存の文書の変更

  • The existing policy on backward-compatibility and deprecation has been added to perlpolicy, along with definitions of terms like deprecation.

    後方互換性と非推奨に関する現在のポリシーについて、 非推奨(deprecation) のなどの用語の定義と共に perlpolicy に追加しました。

  • "srand" in perlfunc's usage has been clarified.

    "srand" in perlfunc の使用法が明確にされました。

  • The entry for "die" in perlfunc was reorganized to emphasize its role in the exception mechanism.

    "die" in perlfunc のエントリは、例外機構としての役割を強調するために 再編成されました。

  • Perl's INSTALL file has been clarified to explicitly state that Perl requires a C89 compliant ANSI C Compiler.

    Perl は C89 準拠の ANSI C コンパイラが必要であることを明示的に 表明するために、INSTALL ファイルが明確化されました。

  • IO::Socket's getsockopt() and setsockopt() have been documented.

    IO::Socketgetsockopt()setsockopt() が文書化されました。

  • alarm()'s inability to interrupt blocking IO on Windows has been documented.

    alarm() が Windows でのブロッキング I/O で割り込めないことが 文書化されました。

  • Math::TrulyRandom hasn't been updated since 1996 and has been removed as a recommended solution for random number generation.

    Math::TrulyRandom は 1996 年から更新されていないので、 乱数生成のための推奨方法から取り除かれました。

  • perlrun has been updated to clarify the behaviour of octal flags to perl.

    perlrun は、perl への 8 進数フラグの振る舞いを明確化するために 更新されました。

  • To ease user confusion, $# and $*, two special variables that were removed in earlier versions of Perl have been documented.

    ユーザーの混乱を和らげるために、過去のバージョンの Perl ではあった $#$* の二つの特殊変数の記述を取り除きました。

  • The version of perlfaq shipped with the Perl core has been updated from the official FAQ version, which is now maintained in the briandfoy/perlfaq branch of the Perl repository at git://perl5.git.perl.org/perl.git.

    perl コアと共にリリースされる perlfaq のバージョンが git://perl5.git.perl.org/perl.gitbriandfoy/perlfaq ブランチで 保守されている公式 FAQ バージョンに更新されました。

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

設定の改良

  • The d_u32align configuration probe on ARM has been fixed.

    ARM での d_u32align 設定調査が修正されました。

コンパイルの改良

  • An "incompatible operand types" error in ternary expressions when building with clang has been fixed.

    clang でビルドしたときに 3 項演算子で "incompatible operand types" エラーが発生する問題が修正されました。

  • Perl now skips setuid File::Copy tests on partitions it detects to be mounted as nosuid.

    Perl は、nosuid でマウントされていることが検出されたパーティションでは File::Copy の setuid でのテストを省略するようになりました。

バグ修正の抜粋

  • A possible segfault in the T_PRTOBJ default typemap has been fixed.

    デフォルト typemap T_PRTOBJ でセグメンテンションフォールトが 起きる可能性があった問題が修正されました。

  • A possible memory leak when using caller() to set @DB::args has been fixed.

    @DB::args をセットするために caller() を 使ったときにメモリリークが起きる可能性がある問題が修正されました。

  • Several memory leaks when loading XS modules were fixed.

    XS モジュール読み込み時のいくつかのメモリリークが修正されました。

  • unpack() now handles scalar context correctly for %32H and %32u, fixing a potential crash. split() would crash because the third item on the stack wasn't the regular expression it expected. unpack("%2H", ...) would return both the unpacked result and the checksum on the stack, as would unpack("%2u", ...). [perl #73814]

    unpack() は、スカラコンテキストでの %32H%32u がクラッシュする 可能性がある問題が修正され、正しく扱えるようになりました。 split() は、スタック上の 3 番目のアイテムが想定している正規表現では ないことによってクラッシュしていました。 unpack("%2H", ...)unpack("%2u", ...) のように、unpack された 結果とスタック上のチェックサムの両方を返していました。 [perl #73814]

  • Perl now avoids using memory after calling free() in pp_require when there are CODEREFs in @INC.

    Perl は、@INC に CODEREF がある場合に pp_requirefree() を 呼び出した後のメモリを使わないようになりました。

  • A bug that could cause "Unknown error" messages when "call_sv(code, G_EVAL)" is called from an XS destructor has been fixed.

    XS のデストラクタから "call_sv(code, G_EVAL)" が呼び出されたときに "Unknown error" が起きることがあるバグが修正されました。

  • The implementation of the open $fh, '>' \$buffer feature now supports get/set magic and thus tied buffers correctly.

    open $fh, '>' \$buffer 昨日の実装が get/set マジックに 対応するようになり、tie されたバッファを正しく扱えるようになりました。

  • The pp_getc, pp_tell, and pp_eof opcodes now make room on the stack for their return values in cases where no argument was passed in.

    pp_getc, pp_tell, pp_eof の各オペコードは、引数なしで 呼び出された場合自身の返り値のためにスタックに空きを作るようになりました。

  • When matching unicode strings under some conditions inappropriate backtracking would result in a Malformed UTF-8 character (fatal) error. This should no longer occur. See [perl #75680]

    ある条件の下で Unicode 文字列をマッチングすると、不適切な バックトラッキングにより Malformed UTF-8 character (fatal) エラーが発生していました。 これはもう起きなくなりました。 [perl #75680] を 参照してください。

プラットフォーム固有の注意

AIX

  • README.aix has been updated with information about the XL C/C++ V11 compiler suite.

    README.aix は、XL C/C++ V11 コンパイラスイートに関する情報で 更新されました。

Windows

  • When building Perl with the mingw64 x64 cross-compiler incpath, libpth, ldflags, lddlflags and ldflags_nolargefiles values in Config.pm and Config_heavy.pl were not previously not being set correctly because, with that compiler, the include and lib directories are not immediately below $(CCHOME).

    Perl を mingw64 x64 クロスコンパイラでビルドするとき、 Config.pmConfig_heavy.pl にある incpath, libpth, ldflags, lddlflags, ldflags_nolargefiles の 値が正しくセットされていませんでした; これは、このコンパイラでは、インクルードとライブラリのディレクトリが $(CCHOME) の直下ではないからです。

VMS

  • git_version.h is now installed on VMS. This was an oversight in v5.12.0 which caused some extensions to fail to build.

    git_version.h がインストールされるようになりました。 これは v5.12.0 にあったミスで、これによりいくつかのエクステンションが ビルドできなくなっていました。

  • Several memory leaks in stat() have been fixed.

    stat() のいくつかのメモリリークが 修正されました。

  • A memory leak in Perl_rename() due to a double allocation has been fixed.

    二重割り当てによる Perl_rename() でのメモリリークが修正されました。

  • A memory leak in vms_fid_to_name() (used by realpath() and realname()) has been fixed.

    (realpath()realname() で使われている) vms_fid_to_name() での メモリリークが修正されました。

Acknowledgements

Perl 5.12.2 represents approximately three months of development since Perl 5.12.1 and contains approximately 2,000 lines of changes across 100 files from 36 authors.

Perl 5.12.2 は、Perl 5.12.1 以降、36 人の作者によって、 100 ファイルに対しておよそ 1000 行以上の変更を加えて、 ほぼ 3 ヶ月開発されてきました。

Perl continues to flourish into its third decade thanks to a vibrant community of users and developers. The following people are known to have contributed the improvements that became Perl 5.12.1:

Perl は、活気のあるユーザーと開発者のコミュニティのおかげで 20 年を超えて繁栄しています。 以下の人々が、Perl 5.12.2 になるための改良に貢献したことが 分かっています:

Abigail, Ævar Arnfjörð Bjarmason, Ben Morrow, brian d foy, Brian Phillips, Chas. Owens, Chris 'BinGOs' Williams, Chris Williams, Craig A. Berry, Curtis Jewell, Dan Dascalescu, David Golden, David Mitchell, Father Chrysostomos, Florian Ragwitz, George Greer, H.Merijn Brand, Jan Dubois, Jesse Vincent, Jim Cromie, Karl Williamson, Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯, Leon Brocard, Maik Hentsche, Matt S Trout, Nicholas Clark, Rafael Garcia-Suarez, Rainer Tammer, Ricardo Signes, Salvador Ortiz Garcia, Sisyphus, Slaven Rezic, Steffen Mueller, Tony Cook, Vincent Pit and Yves Orton.

バグ報告

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://rt.perl.org/perlbug/ . There may also be information at http://www.perl.org/ , the Perl Home Page.

もしバグと思われるものを見つけたら、comp.lang.perl.misc ニュースグループに 最近投稿された記事や http://rt.perl.org/perlbug/ にある 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.

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

If the bug you are reporting has security implications, which make it inappropriate to send to a publicly archived mailing list, then please send it to perl5-security-report@perl.org. This points to a closed subscription unarchived mailing list, which includes all the core committers, who be able to help assess the impact of issues, figure out a resolution, and help co-ordinate the release of patches to mitigate or fix the problem across all platforms on which Perl is supported. Please only use this address for security issues in the Perl core, not for modules independently distributed on CPAN.

もし報告しようとしているバグがセキュリティに関するもので、公開されている メーリングリストに送るのが不適切なものなら、 perl5-security-report@perl.org に送ってください。 このアドレスは、問題の影響を評価し、解決法を見つけ、Perl が対応している 全てのプラットフォームで問題を軽減または解決するパッチをリリースするのを 助けることが出来る、全てのコアコミッタが参加している非公開の メーリングリストになっています。 このアドレスは、独自に CPAN で配布されているモジュールではなく、 Perl コアのセキュリティ問題だけに使ってください。

SEE ALSO

The Changes file for an explanation of how to view exhaustive details on what changed.

変更点の完全な詳細を見る方法については Changes ファイル。

The INSTALL file for how to build Perl.

Perl のビルド方法については INSTALL ファイル。

The README file for general stuff.

一般的なことについては README ファイル。

The Artistic and Copying files for copyright information.

著作権情報については Artistic 及び Copying ファイル。