perl5262delta - perl v5.26.2 での変更点
この文書は 5.26.1 リリースと 5.26.2 リリースの変更点を記述しています。
5.26.0 のような以前のリリースから更新する場合は、まず 5.26.0 と 5.26.1 の違いについて記述している perl5261delta を読んでください。
細工された正規表現が、バイト書き込みの制御時にヒープバッファ書き込みの オーバーフローを引き起こすことがありました。 [perl #132227]
細工されたロケール依存の正規表現でマッチングすると、ヒープバッファ読み込みの オーバーフローを引き起こすことがあり、情報を暴露する可能性がありました。 [perl #132063]
pack()
はアイテムカウントが大きいときにヒープバッファ書き込みの オーバーフローを引き起こすことがありました。 [perl #131844]
Unicode 特性名と考えられるものの中に制御文字があると、perl のクラッシュを 引き起こすことがありました。 これは修正されました。 [perl #132055] [perl #132553] [perl #132658]
故意に、5.26.1 から互換性がなくなるようにした変更はありません。 もし 5.26.1 との互換性がなければ、それはバグですので、報告をお願いします。 以下の "Reporting Bugs" を参照してください。
Module::CoreList はバージョン 5.20170922_26 から 5.20180414_26 に更新されました。
PerlIO::via はバージョン 0.16 から 0.17 に更新されました。
Term::ReadLine はバージョン 1.16 から 1.17 に更新されました。
Unicode::UCD はバージョン 0.68 から 0.69 に更新されました。
これは、\p{Word}
が \p{Join_Control}
特性にマッチングする 符号位置を含むことを記すように更新されました。 この特性の変更は Perl 5.18 で行われましたが、今まで 文書化されていませんでした。 現在のところこの特性にマッチングする符号位置は二つだけです: U+200C (ZERO WIDTH NON-JOINER) と U+200D (ZERO WIDTH JOINER)。
Visual C++ コンパイラのバージョン検出は、非英語システムで動作するように 改良されました。 [perl #132421]
14.1 より前のバージョンの Visual C++ を使った 64 ビットビルドで、 $Config{libpth}
を正しく設定するようになりました。 [perl #132484]
readpipe()
組み込み関数は、引数が一つだけで、かつそれが スカラコンテキストであることをコンパイル時にチェックするようになりました; これにより、実行時にスタックが壊れていないことが保証されるようになりました。 [perl #4574]
Perl 5.27.1 で導入された、pp_list
にある、解放後使用バグが修正されました。 [perl #131954]
sub
キーワードに改行(およびコメント)を含む空白が引き続いている場合、 sub
定義をパースするときに解放後使用を引き起こすことがありました。 [perl #131836]
トークナイザは、 ${identifier}
構文の中の空白を読み飛ばすときに パースポインタを正しく調整するようになりました。 [perl #131949]
非グロブへの任意の I/O 操作の後では、 ${^LAST_FH}
にアクセスしてももはやアサートしなくなりました。 [perl #128263]
sort
は、$a
および $b
を別名化するときに参照カウントを 正しく扱うようになりました。 これにより、ソート比較子実行中に再別名化されても早すぎる破壊とスカラのリークを 起こさなくなりました。 [perl #92264]
ある種の複雑な正規表現が、コンパイル時に算術オーバーフローを 引き起こさなくなりました。 [perl #131893]
-flto -mieee-fp ビルドでの重複シンボルエラーが修正されました。 pp.c は、-lieee が既に定義している _LIB_VERSION
を定義していました。 [perl #131786]
S_regmatch()
関数での NULL ポインタのデリファレンスが修正されました。 [perl #132017]
文字列変数展開や s///e
の右側のような、他の構文の中のコードの コンパイルに失敗した場合、 より早いタイミングでコンパイルを中止するようになりました。
以前はその他のエラーを報告するためにコンパイルが続行することがありましたが、 部分パースの失敗により、パーサの shift-reduce スタック上に部分的に パースされた構造体が残されることがあり、パーサを混乱させて perl のクラッシュを引き起こすことがありました。 [perl #125351]
Perl 5.26.2 は、Perl 5.26.1 以降、17 人の作者によって、 82 のファイルに約 3,300 行の変更を加えて、 約 7 ヶ月開発されてきました。
自動生成ファイル、文書、リリースツールを除くと、36 の .pm, .t, .c, .h ファイルに約 1,800 行の変更を加えました。
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.
これはバージョンコントロール履歴から自動的に生成しているので、ほぼ確実に 不完全です。 特に、Perl バグトラッカーに問題を報告をしてくれた (とてもありがたい)貢献者の 名前を含んでいません。
このバージョンに含まれている変更の多くは、Perl コアに含まれている CPAN モジュール由来のものです。 私たちは Perl の発展を助けている CPAN コミュニティ全体に感謝します。
全ての Perl の歴史的な貢献者のより完全な一覧については、どうか Perl ソース 配布に含まれている AUTHORS を参照してください。
もしバグと思われるものを見つけたら、 https://rt.perl.org/ にある perl バグ データベースを確認してください。 Perl ホームページ、http://www.perl.org/ にも情報があります。
もしまだ報告されていないバグだと確信したら、そのリリースに含まれている perlbug プログラムを実行してください。 バグの再現スクリプトを十分小さく、しかし有効なコードに切りつめることを 意識してください。 バグレポートは perl -V
の出力と一緒に perlbug@perl.org に送られ Perl porting チームによって解析されます。
報告しようとしているバグがセキュリティに関するもので、公開されている メーリングリストに送るのが不適切なものなら、バグの報告方法の詳細について "SECURITY VULNERABILITY CONTACT INFORMATION" in perlsec を参照してください。
もし Perl 5 でなされた作業について Perl 5 Porters に感謝したいと考えたなら、 perlthanks
プログラムを実行することでそうできます:
perlthanks
これは Perl 5 Porters メーリングリストにあなたの感謝の言葉をメールします。
変更点の完全な詳細を見る方法については Changes ファイル。
Perl のビルド方法については INSTALL ファイル。
一般的なことについては README ファイル。
著作権情報については Artistic 及び Copying ファイル。