名前

perldelta - what is new for perl v5.26.2

perl5262delta - perl v5.26.2 での変更点

説明

This document describes differences between the 5.26.1 release and the 5.26.2 release.

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

If you are upgrading from an earlier release such as 5.26.0, first read perl5261delta, which describes differences between 5.26.0 and 5.26.1.

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

セキュリティ

[CVE-2018-6797] heap-buffer-overflow (WRITE of size 1) in S_regatom (regcomp.c)

A crafted regular expression could cause a heap buffer write overflow, with control over the bytes written. [perl #132227]

細工された正規表現が、バイト書き込みの制御時にヒープバッファ書き込みの オーバーフローを引き起こすことがありました。 [perl #132227]

[CVE-2018-6798] Heap-buffer-overflow in Perl__byte_dump_string (utf8.c)

Matching a crafted locale dependent regular expression could cause a heap buffer read overflow and potentially information disclosure. [perl #132063]

細工されたロケール依存の正規表現でマッチングすると、ヒープバッファ読み込みの オーバーフローを引き起こすことがあり、情報を暴露する可能性がありました。 [perl #132063]

[CVE-2018-6913] heap-buffer-overflow in S_pack_rec

pack() could cause a heap buffer write overflow with a large item count. [perl #131844]

pack() はアイテムカウントが大きいときにヒープバッファ書き込みの オーバーフローを引き起こすことがありました。 [perl #131844]

Assertion failure in Perl__core_swash_init (utf8.c)

Control characters in a supposed Unicode property name could cause perl to crash. This has been fixed. [perl #132055] [perl #132553] [perl #132658]

Unicode 特性名と考えられるものの中に制御文字があると、perl のクラッシュを 引き起こすことがありました。 これは修正されました。 [perl #132055] [perl #132553] [perl #132658]

互換性のない変更

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

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

モジュールとプラグマ

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

  • Module::CoreList has been upgraded from version 5.20170922_26 to 5.20180414_26.

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

  • PerlIO::via has been upgraded from version 0.16 to 0.17.

    PerlIO::via はバージョン 0.16 から 0.17 に更新されました。

  • Term::ReadLine has been upgraded from version 1.16 to 1.17.

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

  • Unicode::UCD has been upgraded from version 0.68 to 0.69.

    Unicode::UCD はバージョン 0.68 から 0.69 に更新されました。

文書

既存の文書の変更

perluniprops

  • This has been updated to note that \p{Word} now includes code points matching the \p{Join_Control} property. The change to the property was made in Perl 5.18, but not documented until now. There are currently only two code points that match this property: U+200C (ZERO WIDTH NON-JOINER) and U+200D (ZERO WIDTH JOINER).

    これは、\p{Word}\p{Join_Control} 特性にマッチングする 符号位置を含むことを記すように更新されました。 この特性の変更は Perl 5.18 で行われましたが、今まで 文書化されていませんでした。 現在のところこの特性にマッチングする符号位置は二つだけです: U+200C (ZERO WIDTH NON-JOINER) と U+200D (ZERO WIDTH JOINER)。

プラットフォーム対応

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

Windows

Visual C++ compiler version detection has been improved to work on non-English language systems. [perl #132421]

Visual C++ コンパイラのバージョン検出は、非英語システムで動作するように 改良されました。 [perl #132421]

We now set $Config{libpth} correctly for 64-bit builds using Visual C++ versions earlier than 14.1. [perl #132484]

14.1 より前のバージョンの Visual C++ を使った 64 ビットビルドで、 $Config{libpth} を正しく設定するようになりました。 [perl #132484]

バグ修正の抜粋

  • The readpipe() built-in function now checks at compile time that it has only one parameter expression, and puts it in scalar context, thus ensuring that it doesn't corrupt the stack at runtime. [perl #4574]

    readpipe() 組み込み関数は、引数が一つだけで、かつそれが スカラコンテキストであることをコンパイル時にチェックするようになりました; これにより、実行時にスタックが壊れていないことが保証されるようになりました。 [perl #4574]

  • Fixed a use after free bug in pp_list introduced in Perl 5.27.1. [perl #131954]

    Perl 5.27.1 で導入された、pp_list にある、解放後使用バグが修正されました。 [perl #131954]

  • Parsing a sub definition could cause a use after free if the sub keyword was followed by whitespace including newlines (and comments). [perl #131836]

    sub キーワードに改行(およびコメント)を含む空白が引き続いている場合、 sub 定義をパースするときに解放後使用を引き起こすことがありました。 [perl #131836]

  • The tokenizer now correctly adjusts a parse pointer when skipping whitespace in an ${identifier} construct. [perl #131949]

    トークナイザは、 ${identifier} 構文の中の空白を読み飛ばすときに パースポインタを正しく調整するようになりました。 [perl #131949]

  • Accesses to ${^LAST_FH} no longer assert after using any of a variety of I/O operations on a non-glob. [perl #128263]

    非グロブへの任意の I/O 操作の後では、 ${^LAST_FH} にアクセスしてももはやアサートしなくなりました。 [perl #128263]

  • sort now performs correct reference counting when aliasing $a and $b, thus avoiding premature destruction and leakage of scalars if they are re-aliased during execution of the sort comparator. [perl #92264]

    sort は、$a および $b を別名化するときに参照カウントを 正しく扱うようになりました。 これにより、ソート比較子実行中に再別名化されても早すぎる破壊とスカラのリークを 起こさなくなりました。 [perl #92264]

  • Some convoluted kinds of regexp no longer cause an arithmetic overflow when compiled. [perl #131893]

    ある種の複雑な正規表現が、コンパイル時に算術オーバーフローを 引き起こさなくなりました。 [perl #131893]

  • Fixed a duplicate symbol failure with -flto -mieee-fp builds. pp.c defined _LIB_VERSION which -lieee already defines. [perl #131786]

    -flto -mieee-fp ビルドでの重複シンボルエラーが修正されました。 pp.c は、-lieee が既に定義している _LIB_VERSION を定義していました。 [perl #131786]

  • A NULL pointer dereference in the S_regmatch() function has been fixed. [perl #132017]

    S_regmatch() 関数での NULL ポインタのデリファレンスが修正されました。 [perl #132017]

  • Failures while compiling code within other constructs, such as with string interpolation and the right part of s///e now cause compilation to abort earlier.

    文字列変数展開や s///e の右側のような、他の構文の中のコードの コンパイルに失敗した場合、 より早いタイミングでコンパイルを中止するようになりました。

    Previously compilation could continue in order to report other errors, but the failed sub-parse could leave partly parsed constructs on the parser shift-reduce stack, confusing the parser, leading to perl crashes. [perl #125351]

    以前はその他のエラーを報告するためにコンパイルが続行することがありましたが、 部分パースの失敗により、パーサの shift-reduce スタック上に部分的に パースされた構造体が残されることがあり、パーサを混乱させて perl のクラッシュを引き起こすことがありました。 [perl #125351]

Acknowledgements

Perl 5.26.2 represents approximately 7 months of development since Perl 5.26.1 and contains approximately 3,300 lines of changes across 82 files from 17 authors.

Perl 5.26.2 は、Perl 5.26.1 以降、17 人の作者によって、 82 のファイルに約 3,300 行の変更を加えて、 約 7 ヶ月開発されてきました。

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

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

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

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

Aaron Crane, Abigail, Chris 'BinGOs' Williams, H.Merijn Brand, James E Keenan, Jarkko Hietaniemi, John SJ Anderson, Karen Etheridge, Karl Williamson, Lukas Mai, Renee Baecker, Sawyer X, Steve Hay, Todd Rinaldo, Tony Cook, Yves Orton, Zefram.

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

もしバグと思われるものを見つけたら、 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 see "SECURITY VULNERABILITY CONTACT INFORMATION" in perlsec for details of how to report the issue.

報告しようとしているバグがセキュリティに関するもので、公開されている メーリングリストに送るのが不適切なものなら、バグの報告方法の詳細について "SECURITY VULNERABILITY CONTACT INFORMATION" in perlsec を参照してください。

感謝を伝える

If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, you can do so by running the perlthanks program:

もし Perl 5 でなされた作業について Perl 5 Porters に感謝したいと考えたなら、 perlthanks プログラムを実行することでそうできます:

    perlthanks

This will send an email to the Perl 5 Porters list with your show of thanks.

これは Perl 5 Porters メーリングリストにあなたの感謝の言葉をメールします。

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 ファイル。