NAME

perl5340delta - perl v5.34.0 での変更点

DESCRIPTION

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

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

コアの拡張

実験的な Try/Catch 構文

try/catch 記法を提供するための初期の実験的な試みが追加されました。

    use feature 'try';

    try {
        a_function();
    }
    catch ($e) {
        warn "An error occurred: $e";
    }

さらなる情報については、"Try Catch Exception Handling" in perlsyn を 参照してください。

qr/{,n}/ が受け入れられます

{,3} のような、正規表現量指定子の下弦を空にするのが 許されるようになりました。

中かっこの隣に自由に空白を入れられます

(ダブルクォート風コンテキストと正規表現の内部)

これは、もし望むなら \x{ FFFC } のように書けるということです。 これはこのような構文全て、つまり \b{}, \g{}, \k{}, \N{}, \o{}, \x{} に適用されます; 正規表現量指定子 {m,n} も同様です。 \p{}\P{} は、例え緩い方でも、既にある Unicode 標準 ("Properties accessible through \p{} and \P{}" in perluniprops 参照) で 定められた規則のままです。

この機能は、/x 正規表現パターン修飾子の有無に関わらず有効です。

さらに、正規表現中かっこ量指定子のカンマは、 qr/a{ 5, 7 }/ のように、カンマの前後に空白 (タブかスペース)を置くことができます。

新しい 8 進構文 0oddddd

既にある 16 進リテラル 0xddddd と 2 進リテラル 0bddddd の 構文と並列な、0o123_456 のような 0o 接頭辞を付けた 8 進 リテラルを指定できるようになりました。 また、組み込みの oct() 関数はこの新しい文法を 受け付けるようになりました。

"Scalar value constructors" in perldata"oct EXPR" in perlfunc を 参照してください。

性能改善

モジュールとプラグマ

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

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

文書

新しい文書

perldocstyle

この文書は、Perl と共に出火されている文書の作者と捕手に関するガイドです。

perlgov

この文書は Perl の新しい統治モデルに関するゴール、スコープ、システム、 ルールを記述しています。

その他の pod ファイル、特に perlpolicy は、これの採用を反映して 修正されました。

既存の文書の変更

私たちはこの文書で挙げられた変更を反映するように文書を更新しようとしています。 もし抜けている物を発見したら、 https://github.com/Perl/perl5/issues でイシューを開いてください。

それに加えて、以下のような変更が行われました。

perlapi

perlcommunity

perldebguts

perldiag

perlfaq

perlfunc

perlgit

perlguts

perlop

perlpacktut

perlsyn

perlunifaq

診断メッセージ

次のような追加と変更が、警告や致命的エラーメッセージを含む診断出力に 行われました。 診断メッセージの完全な一覧については、perldiag を参照してください。

新しい警告メッセージ

新しいエラー

新しい警告

既存の診断メッセージの変更

ツールの変更

perl5db.pl (デバッガ)

設定とコンパイル

テスト

このリリースのその他の追加と変更を反映してテストが追加、変更されました。 さらに、主に以下のような変更が行われました:

プラットフォーム対応

新しいプラットフォーム

9front

(plan9 のフォークである) i386 9front システムで Perl を ビルドできるようになりました。

更新されたプラットフォーム

Plan9

i386 プラットフォームでの Plan9 の対応を改良しました。

MacOS (Darwin)

10 を超える将来のバージョンの MacOS を扱えるように、 darwin 用ヒントファイルが更新されました。 [GH #17946]

廃止されたプラットフォーム

Symbian

Symbian に関連する対応コードは削除されました。 Symbian はモバイルデバイス向けのオペレーティングシステムです。 この対応が最後に更新されたのは 2009 年 7 月で、 プラットフォーム自身の最後の更新も 2012 年 10 月です。

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

DragonFlyBSD

tc*() 関数ctime の更新 の DragonFlyBSD のバグを回避するためにテストが更新されました。

Mac OS X

Big Sur では、たとえ dlopen があるふりをしていたとしても、 多くのシステムライブラリはもはや実際のファイルとしては存在しません; なので、ライブラリファイルが見つからなかったときは dlopen に フォールバックするようになりました。 [GH #18407]

Windows

コードページが 65001 (UTF-8) に設定されているコンソールから非 ASCII 文字を 読み込むのは、Windows のバグによって壊れていました。 この問題の回避策が実装されました。 [GH #18701]

mingw ランタイムバージョン < 3.22 を使っての mingw.org コンパイラ (バージョン 3.4.5 以降) でのビルドは 再び動作するようになりました。 これは Perl 5.31.4 で壊れていました。

mingw ランタイムバージョン >= 3.21 を使っての mingw.org コンパイラ (バージョン 3.4.5 以降) でのビルドは (バージョン 5.3.0 までのコンパイラで) 動作するようになりました。

Makefile.mk と dmake 対応は削除されました。 nmake (Makefile) と GNU make (GNUmakefile) を使って Windows で Perl をビルドするのはまだ可能です。. [GH #18511]

perl は MS Windows で (32 ビットと 64 ビットの) mingw-w64 版の gcc を使って USE_QUADMATH でビルドできるようになりました。 [GH #18465]

pl2bat.pl ユーティリティは use ExtUtils::PL2Bat に必要になりました。 これは並列ビルドで失敗を引き起こすことがありました。

Windows は symlink()readlink() に対応し、 lstat()stat() の 別名ではなくなりました。 [GH #18005].

POSIX システムと異なり、Windows でシンボリックリンクを作るには、 権限昇格か、開発者モードを有効にした Windows 10 1703 以降が必要です。

stat FILEHANDLE を含む stat() と lstat() は、 デバイス dev と iノード番号 ino について、常にゼロを返すのではなく 返されたものを展開する独自実装を使うようになりました。 リンク数を示す nlink フィールドは常に展開されます。

${^WIN32_SLOPPY_STAT} は 以前は nlink フィールドが代入されているかどうかを制御するために、 値の取得と異なる Windows API 呼び出しを必要としていました。 nlinkstat() に必要なその他な情報は 単一の API 呼び出しで取得されるようになりました。

-r-w 演算子は、STDIN, STDOUT, STDERR ハンドルに関して真を返すようになりました。 残念ながら、これらのハンドルの複製に関してはまだ 真を返しません。 [GH #8502].

stat() と lstat() で返される時刻は、夏時間補正をまたいでも 間違わなくなりました。 [GH #6080].

ファイルハンドルに対する -x は、 Vista 以降対応するファイル名での -x に一致するべきです。 [GH #4145].

-e '"' はもはや誤って真を返さなくなりました。 [GH #12431].

Visual C++ と gcc のビルドで同じマニフェストを使うようになりました。

以前は、MSVC ビルドは組み込みの perlexe.manifest ではなく /manifestdependency フラグを使っていました; これにより、Windows 10 で GetVersionEx() が誤ったバージョン番号を 返すというような問題を引き起こしていました。

z/OS

ロケールカテゴリ LC_SYNTAXLC_TOD が認識されるようになりました。 Perl では、これらを指定することができるという以外にこれらに対して 何もしません。 これらは LC_ALL に含まれます。

内部の変更

バグ修正の抜粋

既知の問題

なし

以前のリリースの訂正

なし

おくやみ

Kent Fredric (KENTNL) は 2021 年 2 月に亡くなりました。 ニュージーランド人で "huge geek" と自称していた Kent は、178 個の CPAN 配布の 作者またはメンテナであり、Gentoo Linux の Perl メンテナであり、 Perl コア配布の貢献者でした。 彼は彼の家族、友人、および世界中のオープンソースソフトウェアコミュニティに よって追悼されました。

Acknowledgements

Perl 5.34.0 は、Perl 5.32.0 以降、77 人の作者によって、 2,100 のファイルに約 280,000 行の変更を加えて、 約 10 ヶ月開発されてきました。

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

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

Aaron Crane, Adam Hartley, Andy Dougherty, Ben Cornett, Branislav Zahradník, brian d foy, Chris 'BinGOs' Williams, Christian Walde (Mithaldu), Craig A. Berry, Dagfinn Ilmari Mannsåker, Dan Book, Daniel Böhmer, Daniel Laügt, Dan Kogai, David Cantrell, David Mitchell, Dominic Hamon, E. Choroba, Ed J, Eric Herman, Eric Lindblad, Eugene Alvin Villar, Felipe Gasper, Giovanni Tataranni, Graham Knop, Graham Ollis, Hauke D, H.Merijn Brand, Hugo van der Sanden, Ichinose Shogo, Ivan Baidakou, Jae Bradley, James E Keenan, Jason McIntosh, jkahrman, John Karr, John Lightsey, Kang-min Liu, Karen Etheridge, Karl Williamson, Keith Thompson, Leon Timmermans, Marc Reisner, Marcus Holland-Moritz, Max Maischein, Michael G Schwern, Nicholas Clark, Nicolas R., Paul Evans, Petr Písař, raiph, Renee Baecker, Ricardo Signes, Richard Leach, Romano, Ryan Voots, Samanta Navarro, Samuel Thibault, Sawyer X, Scott Baker, Sergey Poznyakoff, Sevan Janiyan, Shirakata Kentaro, Shlomi Fish, Sisyphus, Sizhe Zhao, Steve Hay, TAKAI Kousuke, Thibault Duponchelle, Todd Rinaldo, Tomasz Konojacki, Tom Hukins, Tom Stellard, Tony Cook, vividsnow, Yves Orton, Zakariyya Mughal, Михаил Козачков.

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

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

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

バグ報告

もしバグと思われるものを見つけたら、 https://github.com/Perl/perl5/issues にある perl バグデータベースを 確認してください。 Perl ホームページ、http://www.perl.org/ にも情報があります。

もしまだ報告されていないバグだと確信したら、 https://github.com/Perl/perl5/issues にイシューを登録してください。 バグの再現スクリプトを十分小さく、しかし有効なコードに切りつめることを 意識してください。

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

感謝を伝える

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

    perlthanks

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

SEE ALSO

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

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

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

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