名前

perl5203delta - what is new for perl v5.20.3

perl5203delta - perl v5.20.3 での変更点

説明

This document describes differences between the 5.20.2 release and the 5.20.3 release.

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

If you are upgrading from an earlier release such as 5.20.1, first read perl5202delta, which describes differences between 5.20.1 and 5.20.2.

5.20.1 のような以前のリリースから更新する場合は、まず 5.20.1 と 5.20.2 の違いについて記述している perl5202delta を読んでください。

互換性のない変更

There are no changes intentionally incompatible with 5.20.2. If any exist, they are bugs, and we request that you submit a report. See "Reporting Bugs" below.

故意に、5.20.2 から互換性がなくなるようにした変更はありません。 もし 5.20.2 との互換性がなければ、それはバグですので、報告をお願いします。 以下の "Reporting Bugs" を参照してください。

モジュールとプラグマ

更新されたモジュールとプラグマ

  • Errno has been upgraded from version 1.20_05 to 1.20_06.

    Errno はバージョン 1.20_05 から 1.20_06 に更新されました。

    Add -P to the pre-processor command-line on GCC 5. GCC added extra line directives, breaking parsing of error code definitions. [perl #123784]

    GCC 5 では、プリプロセッサのコマンドラインに -P が追加されました。 GCC は追加の行指示子が追加されていて、エラーコード定義のパースを 壊していました。 [perl #123784]

  • Module::CoreList has been upgraded from version 5.20150214 to 5.20150822.

    Module::CoreList はバージョン 5.20150214 から 5.20150822 に更新されました。

    Updated to cover the latest releases of Perl.

    最新リリースの Perl に対応するために更新されました。

  • perl5db.pl has been upgraded from 1.44 to 1.44_01.

    perl5db.pl はバージョン 1.44 から 1.44_01 に更新されました。

    The debugger would cause an assertion failure. [perl #124127]

    デバッガはアサート失敗を引き起こしていました。 [perl #124127]

文書

既存の文書の変更

perlfunc

  • Mention that study() is currently a no-op.

    study() は現在のところ何もしないことに言及しました。

perlguts

  • The OOK example has been updated to account for COW changes and a change in the storage of the offset.

    OOK の例は、COW の変更とストレージのオフセットの変更を考慮して更新されました。

perlhacktips

  • Documentation has been added illustrating the perils of assuming the contents of static memory pointed to by the return values of Perl wrappers for C library functions doesn't change.

    C ライブラリ関数のための Perl のラッパの返り値によって示されている静的メモリの 内容が変更されないと仮定することの危険を図示した文書が追加されました。

perlpodspec

  • The specification of the POD language is changing so that the default encoding of PODs that aren't in UTF-8 (unless otherwise indicated) is CP1252 instead of ISO-8859-1 (Latin1).

    UTF-8 でない場合の POD の(特に示されていない限り)デフォルト エンコーディングは ISO 8859-1 (Latin1) ではなく CP1252 であるというように POD 言語の仕様が変更されました。

ツールの変更

h2ph

  • h2ph now handles hexadecimal constants in the compiler's predefined macro definitions, as visible in $Config{cppsymbols}. [perl #123784]

    h2ph は、$Config{cppsymbols} で見えるように、コンパイラの事前定義 マクロ定義で 16 進定数が使えるようになりました。 [perl #123784]

テスト

  • t/perf/taint.t has been added to see if optimisations with taint issues are keeping things fast.

    汚染問題の最適化が高速性を維持しているかを見る t/perf/taint.t が 追加されました。

  • t/porting/re_context.t has been added to test that utf8 and its dependencies only use the subset of the $1..$n capture vars that Perl_save_re_context() is hard-coded to localize, because that function has no efficient way of determining at runtime what vars to localize.

    utf8 とその依存が、(関数がどの変数がローカル化されるかを実行時に決定する 効率的な方法がないために) Perl_save_re_context() がローカル化されるように ハードコーディングされている $1..$n 捕捉変数の部分集合のみを 使っているかどうかをテストするための t/porting/re_context.t が 追加されました。

プラットフォーム対応

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

Win32
  • Previously, when compiling with a 64-bit Visual C++, every Perl XS module (including CPAN ones) and Perl aware C file would unconditionally have around a dozen warnings from hv_func.h. These warnings have been silenced. GCC (all bitness) and 32-bit Visual C++ were not affected.

    以前は、Win64 用の Visual C++ でコンパイルすると、(CPAN のものを含む) 全ての XS モジュールと Perl が認識する C ファイルで無条件に hv_func.h から大量の 警告が出ていました。 これらの警告は出なくなりました。 GCC (ビット数に関わらず) と 32 ビット Visual C++ は影響を受けません。

  • miniperl.exe is now built with -fno-strict-aliasing, allowing 64-bit builds to complete with GCC 4.8. [perl #123976]

    miniperl.exe は、GCC 4.8 でビルドが完了できるように、 -fno-strict-aliasing 付きでビルドされるようになりました。 [perl #123976]

バグ修正の抜粋

  • Repeated global pattern matches in scalar context on large tainted strings were exponentially slow depending on the current match position in the string. [perl #123202]

    大きな汚染された文字列に対してスカラコンテキストで繰り返されたグローバル パターンマッチングは、文字列中の現在のマッチング位置に依存して 指数的に遅くなっていました。 [perl #123202]

  • The original visible value of $/ is now preserved when it is set to an invalid value. Previously if you set $/ to a reference to an array, for example, perl would produce a runtime error and not set PL_rs, but Perl code that checked $/ would see the array reference. [perl #123218]

    $/ の元の見える値は、不正な値を設定されたときは値が 保存されるようになりました。 以前は、例えば $/ に配列へのリファレンスを設定すると、perl は実行時エラーを 出力して PL_rs を設定しませんが、$/ を調べる Perl コードは 配列リファレンスを見ていました。 [perl #123218]

  • Perl 5.14.0 introduced a bug whereby eval { LABEL: } would crash. This has been fixed. [perl #123652]

    Perl 5.14.0 では eval { LABEL: } がクラッシュするというバグが 導入されていました。 これは修正されました。 [perl #123652]

  • Extending an array cloned from a parent thread could result in "Modification of a read-only value attempted" errors when attempting to modify the new elements. [perl #124127]

    親スレッドからクローンされた配列を拡張すると、新しい要素を 変更しようとしたときに "Modification of a read-only value attempted" エラーが 起きることがありました。 [perl #124127]

  • Several cases of data used to store environment variable contents in core C code being potentially overwritten before being used have been fixed. [perl #123748]

    コア C コードで内容を環境変数に保管したデータが場合によっては使われる前に 上書きされる可能性がある問題は修正されました。 [perl #123748]

  • UTF-8 variable names used in array indexes, unquoted UTF-8 HERE-document terminators and UTF-8 function names all now work correctly. [perl #124113]

    配列インデックスで使われた UTF-8 変数名、クォートなしの UTF-8 の ヒヤドキュメント終端子、UTF-8 関数名は全て正しく動作するようになりました。 [perl #124113]

  • A subtle bug introduced in Perl 5.20.2 involving UTF-8 in regular expressions and sometimes causing a crash has been fixed. A new test script has been added to test this fix; see under "Testing". [perl #124109]

    正規表現中の UTF-8 に関して時々クラッシュを引き起こす、Perl 5.20.2 で 導入された微妙なバグは修正されました。 この修正をテストするために新しいテストスクリプトが追加されました; "Testing" を参照してください。 [perl #124109]

  • Some patterns starting with /.*..../ matched against long strings have been slow since Perl 5.8, and some of the form /.*..../i have been slow since Perl 5.18. They are now all fast again. [perl #123743]

    /.*..../ で始まるパターンの一部は長い文字列では v5.8 から遅くなっていて、 /.*..../i 形式の一部は v5.18 から遅くなっていました。 これらは再び高速になりました。 [perl #123743]

  • Warning fatality is now ignored when rewinding the stack. This prevents infinite recursion when the now fatal error also causes rewinding of the stack. [perl #123398]

    警告の致命的エラー化は、スタックを巻き戻すときには無視されるようになりました。 これにより、致命的エラーがスタックを巻き戻すときの無限ループを防ぎます。 [perl #123398]

  • setpgrp($nonzero) (with one argument) was accidentally changed in Perl 5.16 to mean setpgrp(0). This has been fixed.

    (1 引数の) setpgrp($nonzero) は、誤って setpgrp(0) を意味するように Perl 5.16 から変更されていました。 これは修正されました。

  • A crash with %::=(); J->${\"::"} has been fixed. [perl #125541]

    %::=(); J->${\"::"} でのクラッシュは修正されました。 [perl #125541]

  • Regular expression possessive quantifier Perl 5.20 regression now fixed. qr/PAT{min,max}+/ is supposed to behave identically to qr/(?>PAT{min,max})/. Since Perl 5.20, this didn't work if min and max were equal. [perl #125825]

    正規表現所有量指定子の Perl 5.20 での退行は修正されました。 qr/PAT{min,max}+/qr/(?>PAT{min,max})/ と同じように振る舞うことが 想定されていました。 Perl 5.20 から、minmax が同じ場合は動作していませんでした。 [perl #125825]

  • Code like /$a[/ used to read the next line of input and treat it as though it came immediately after the opening bracket. Some invalid code consequently would parse and run, but some code caused crashes, so this is now disallowed. [perl #123712]

    /$a[/ のようなコードは、入力の次の行を読み込んで、それが開き大かっこの 直後にあるかのように扱われていました。 結果として一部の不正なコードはパースと実行が行われますが、一部のコードは クラッシュを引き起こしていたので、これは許されなくなりました。 [perl #123712]

Acknowledgements

Perl 5.20.3 represents approximately 7 months of development since Perl 5.20.2 and contains approximately 3,200 lines of changes across 99 files from 26 authors.

Perl 5.20.3 は、Perl 5.20.2 以降、26 人の作者によって、 99 のファイルに約 3,200 行の変更を加えて、 約 7 ヶ月開発されてきました。

Excluding auto-generated files, documentation and release tools, there were approximately 1,500 lines of changes to 43 .pm, .t, .c and .h files.

自動生成ファイル、文書、リリースツールを除くと、43 の .pm, .t, .c, .h ファイルに約 1,500 行の変更を加えました。

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.20.3:

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

Alex Vandiver, Andy Dougherty, Aristotle Pagaltzis, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, Daniel Dragan, David Mitchell, Father Chrysostomos, H.Merijn Brand, James E Keenan, James McCoy, Jarkko Hietaniemi, Karen Etheridge, Karl Williamson, kmx, Lajos Veres, Lukas Mai, Matthew Horsfall, Petr Písař, Randy Stauner, Ricardo Signes, Sawyer X, Steve Hay, Tony Cook, Yves Orton.

The list above is almost certainly incomplete as it is automatically generated from version control history. In particular, it does not include the names of the (very much appreciated) contributors who reported issues to the Perl bug tracker.

これはバージョンコントロール履歴から自動的に生成しているので、ほぼ確実に 不完全です。 特に、Perl バグトラッカーに問題を報告をしてくれた (とてもありがたい)貢献者の 名前を含んでいません。

Many of the changes included in this version originated in the CPAN modules included in Perl's core. We're grateful to the entire CPAN community for helping Perl to flourish.

このバージョンに含まれている変更の多くは、Perl コアに含まれている CPAN モジュール由来のものです。 私たちは Perl の発展を助けている CPAN コミュニティ全体に感謝します。

For a more complete list of all of Perl's historical contributors, please see the AUTHORS file in the Perl source distribution.

全ての Perl の歴史的な貢献者のより完全な一覧については、どうか Perl ソース 配布に含まれている AUTHORS を参照してください。

バグ報告

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

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

もしまだ報告されていないバグだと確信したら、そのリリースに含まれている 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 will 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 ファイル。