名前

perldelta - what is new for perl v5.34.0

perl5340delta - perl v5.34.0 での変更点

説明

This document describes differences between the 5.32.0 release and the 5.34.0 release.

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

If you are upgrading from an earlier release such as 5.30.0, first read perl5320delta, which describes differences between 5.30.0 and 5.32.0.

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

コアの拡張

実験的な Try/Catch 構文

An initial experimental attempt at providing try/catch notation has been added.

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

    use feature 'try';

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

For more information, see "Try Catch Exception Handling" in perlsyn.

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

qr/{,n}/ is now accepted

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

An empty lower bound is now accepted for regular expression quantifiers, like {,3}.

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

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

(in double-quotish contexts and regular expression patterns)

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

This means you can write things like \x{ FFFC } if you like. This applies to all such constructs, namely \b{}, \g{}, \k{}, \N{}, \o{}, and \x{}; as well as the regular expression quantifier {m,n}. \p{} and \P{} retain their already-existing, even looser, rules mandated by the Unicode standard (see "Properties accessible through \p{} and \P{}" in perluniprops).

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

This ability is in effect regardless of the presence of the /x regular expression pattern modifier.

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

Additionally, the comma in a regular expression braced quantifier may have blanks (tabs or spaces) before and/or after the comma, like qr/a{ 5, 7 }/.

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

New octal syntax 0oddddd

(新しい 8 進構文 0oddddd)

It is now possible to specify octal literals with 0o prefixes, as in 0o123_456, parallel to the existing construct to specify hexadecimal literal 0xddddd and binary literal 0bddddd. Also, the builtin oct() function now accepts this new syntax.

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

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

性能改善

  • Fix a memory leak in RegEx [GH #18604]

    RegEx のメモリリークを修正しました [GH #18604]

モジュールとプラグマ

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

  • ExtUtils::PL2Bat 0.004 has been added to the Perl core.

    ExtUtils::PL2Bat 0.004 が Perl コアに追加されました。

    This module is a generalization of the pl2bat script. It being a script has led to at least two forks of this code; this module will unify them under one implementation with tests.

    このモジュールは、pl2bat スクリプトの一般化です。 これはスクリプトとして、このコードから少なくとも二つのフォークを 引き起こしました; このモジュールはテスト付きの一つの実装として 統合します。

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

  • Archive::Tar has been upgraded from version 2.36 to 2.38.

    Archive::Tar はバージョン 2.36 から 2.38 に更新されました。

  • autodie has been upgraded from version 2.32 to 2.34.

    autodie はバージョン 2.32 から 2.34 に更新されました。

  • B has been upgraded from version 1.80 to 1.82.

    B はバージョン 1.80 から 1.82 に更新されました。

  • B::Deparse has been upgraded from version 1.54 to 1.56.

    B::Deparse はバージョン 1.54 から 1.56 に更新されました。

  • bytes has been upgraded from version 1.07 to 1.08.

    bytes はバージョン 1.07 から 1.08 に更新されました。

  • Carp has been upgraded from version 1.50 to 1.52.

    Carp はバージョン 1.50 から 1.52 に更新されました。

  • Compress::Raw::Bzip2 has been upgraded from version 2.093 to 2.101.

    Compress::Raw::Bzip2 はバージョン 2.093 から 2.101 に更新されました。

  • Compress::Raw::Zlib has been upgraded from version 2.093 to 2.101.

    Compress::Raw::Zlib はバージョン 2.093 から 2.101 に更新されました。

  • Config::Perl::V has been upgraded from version 0.32 to 0.33.

    Config::Perl::V はバージョン 0.32 から 0.33 に更新されました。

  • CPAN has been upgraded from version 2.27 to 2.28.

    CPAN はバージョン 2.27 から 2.28 に更新されました。

  • Data::Dumper has been upgraded from version 2.174 to 2.179.

    Data::Dumper はバージョン 2.174 から 2.179 に更新されました。

  • DB has been upgraded from version 1.58 to 1.59.

    DB はバージョン 1.58 から 1.59 に更新されました。

  • DB_File has been upgraded from version 1.853 to 1.855.

    DB_File はバージョン 1.853 から 1.855 に更新されました。

  • Devel::Peek has been upgraded from version 1.28 to 1.30.

    Devel::Peek はバージョン 1.28 から 1.30 に更新されました。

  • Devel::PPPort has been upgraded from version 3.57 to 3.62.

    Devel::PPPort はバージョン 3.57 から 3.62 に更新されました。

    New PERL_VERSION_* comparison macros are now available.

    新しい PERL_VERSION_* 比較マクロが利用可能になりました。

    ppport.h --api-info no longer includes non-API info unless that is the only match

    ppport.h --api-info は、唯一のマッチングでない限り 非 API 情報を含まなくなりました。

  • Digest has been upgraded from version 1.17_01 to 1.19.

    Digest はバージョン 1.17_01 から 1.19 に更新されました。

  • Digest::MD5 has been upgraded from version 2.55_01 to 2.58.

    Digest::MD5 はバージョン 2.55_01 から 2.58 に更新されました。

  • DynaLoader has been upgraded from version 1.47 to 1.50.

    DynaLoader はバージョン 1.47 から 1.50 に更新されました。

  • Encode has been upgraded from version 3.06 to 3.08.

    Encode はバージョン 3.06 から 3.08 に更新されました。

  • Env has been upgraded from version 1.04 to 1.05.

    Env はバージョン 1.04 から 1.05 に更新されました。

  • Errno has been upgraded from version 1.30 to 1.33.

    Errno はバージョン 1.30 から 1.33 に更新されました。

  • experimental has been upgraded from version 0.020 to 0.024.

    experimental はバージョン 0.020 から 0.024 に更新されました。

  • Exporter has been upgraded from version 5.74 to 5.76.

    Exporter はバージョン 5.74 から 5.76 に更新されました。

  • ExtUtils::CBuilder has been upgraded from version 0.280234 to 0.280236.

    ExtUtils::CBuilder はバージョン 0.280234 から 0.280236 に更新されました。

  • ExtUtils::Install has been upgraded from version 2.14 to 2.20.

    ExtUtils::Install はバージョン 2.14 から 2.20 に更新されました。

  • ExtUtils::MakeMaker has been upgraded from version 7.44 to 7.62.

    ExtUtils::MakeMaker はバージョン 7.44 から 7.62 に更新されました。

  • ExtUtils::Manifest has been upgraded from version 1.72 to 1.73.

    ExtUtils::Manifest はバージョン 1.72 から 1.73 に更新されました。

  • ExtUtils::Miniperl has been upgraded from version 1.09 to 1.10.

    ExtUtils::Miniperl はバージョン 1.09 から 1.10 に更新されました。

  • ExtUtils::ParseXS has been upgraded from version 3.40 to 3.43.

    ExtUtils::ParseXS はバージョン 3.40 から 3.43 に更新されました。

  • ExtUtils::Typemaps has been upgraded from version 3.38 to 3.43.

    ExtUtils::Typemaps はバージョン 3.38 から 3.43 に更新されました。

  • Fcntl has been upgraded from version 1.13 to 1.14.

    Fcntl はバージョン 1.13 から 1.14 に更新されました。

  • feature has been upgraded from version 1.58 to 1.64.

    feature はバージョン 1.58 から 1.64 に更新されました。

    Added the default enabled bareword_filehandles feature.

    デフォルトで有効な bareword_filehandles 機能の追加。

    A new multidimensional feature has been added, which is enabled by default but allows turning off multi-dimensional array emulation.

    新しい multidimensional 機能が追加されました; これはデフォルトで有効ですが 多元配列エミュレーション を オフにできます。

  • File::Copy has been upgraded from version 2.34 to 2.35.

    File::Copy はバージョン 2.34 から 2.35 に更新されました。

  • File::Fetch has been upgraded from version 0.56 to 1.00.

    File::Fetch はバージョン 0.56 から 1.00 に更新されました。

  • File::Find has been upgraded from version 1.37 to 1.39.

    File::Find はバージョン 1.37 から 1.39 に更新されました。

  • File::Path has been upgraded from version 2.16 to 2.18.

    File::Path はバージョン 2.16 から 2.18 に更新されました。

  • File::Spec has been upgraded from version 3.78 to 3.80.

    File::Spec はバージョン 3.78 から 3.80 に更新されました。

  • File::Temp has been upgraded from version 0.2309 to 0.2311.

    File::Temp はバージョン 0.2309 から 0.2311 に更新されました。

  • Filter::Util::Call has been upgraded from version 1.59 to 1.60.

    Filter::Util::Call はバージョン 1.59 から 1.60 に更新されました。

  • FindBin has been upgraded from version 1.51 to 1.52.

    FindBin はバージョン 1.51 から 1.52 に更新されました。

  • GDBM_File has been upgraded from version 1.18 to 1.19.

    GDBM_File はバージョン 1.18 から 1.19 に更新されました。

    New functions and compatibility for newer versions of GDBM. [GH #18435]

    より新しいバージョンの GDBM のための新しい関数と互換性。 [GH #18435]

  • Getopt::Long has been upgraded from version 2.51 to 2.52.

    Getopt::Long はバージョン 2.51 から 2.52 に更新されました。

  • Getopt::Std has been upgraded from version 1.12 to 1.13.

    Getopt::Std はバージョン 1.12 から 1.13 に更新されました。

  • Hash::Util has been upgraded from version 0.23 to 0.25.

    Hash::Util はバージョン 0.23 から 0.25 に更新されました。

  • Hash::Util::FieldHash has been upgraded from version 1.20 to 1.21.

    Hash::Util::FieldHash はバージョン 1.20 から 1.21 に更新されました。

  • I18N::LangTags has been upgraded from version 0.44 to 0.45.

    I18N::LangTags はバージョン 0.44 から 0.45 に更新されました。

  • if has been upgraded from version 0.0608 to 0.0609.

    if はバージョン 0.0608 から 0.0609 に更新されました。

  • IO has been upgraded from version 1.43 to 1.46.

    IO はバージョン 1.43 から 1.46 に更新されました。

    IO::Socket now stores error messages in $IO::Socket::errstr, in addition to in $@.

    IO::Socket は、エラーメッセージを $@ に加えて $IO::Socket::errstr にも保管するようになりました。

    The error method now reports the error state for both the input and output streams for sockets and character devices. Similarly clearerr now clears the error state for both streams.

    error メソッドは、ソケットやキャラクタデバイスに対して 入力と出力の両方のストリームのエラー状態を報告します。 同様に、clearerr は両方のストリームのエラー状態をクリアします。

    A spurious error reported for regular file handles has been fixed in IO::Handle. [GH #18019]

    中将のファイルハンドルに対して報告されていた誤ったエラーは IO::Handle で修正されました。 [GH #18019]

  • IO-Compress has been upgraded from version 2.093 to 2.102.

    IO-Compress はバージョン 2.093 から 2.102 に更新されました。

    bin/zipdetails version 2.02

    bin/zipdetails バージョン 2.02

  • IO::Socket::IP has been upgraded from version 0.39 to 0.41.

    IO::Socket::IP はバージョン 0.39 から 0.41 に更新されました。

  • IO::Zlib has been upgraded from version 1.10 to 1.11.

    IO::Zlib はバージョン 1.10 から 1.11 に更新されました。

  • IPC::SysV has been upgraded from version 2.07 to 2.09.

    IPC::SysV はバージョン 2.07 から 2.09 に更新されました。

  • JSON::PP has been upgraded from version 4.04 to 4.06.

    JSON::PP はバージョン 4.04 から 4.06 に更新されました。

  • The libnet distribution has been upgraded from version 3.11 to 3.13.

    distribution はバージョン 3.11 から 3.13 に更新されました。

  • locale has been upgraded from version 1.09 to 1.10.

    locale はバージョン 1.09 から 1.10 に更新されました。

  • Math::Complex has been upgraded from version 1.5901 to 1.5902.

    Math::Complex はバージョン 1.5901 から 1.5902 に更新されました。

  • MIME::Base64 has been upgraded from version 3.15 to 3.16.

    MIME::Base64 はバージョン 3.15 から 3.16 に更新されました。

  • Module::CoreList has been upgraded from version 5.20200620 to 5.20210520.

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

  • Module::Load has been upgraded from version 0.34 to 0.36.

    Module::Load はバージョン 0.34 から 0.36 に更新されました。

  • Module::Load::Conditional has been upgraded from version 0.70 to 0.74.

    Module::Load::Conditional はバージョン 0.70 から 0.74 に更新されました。

  • mro has been upgraded from version 1.23 to 1.25_001.

    mro はバージョン 1.23 から 1.25_001 に更新されました。

  • Net::Ping has been upgraded from version 2.72 to 2.74.

    Net::Ping はバージョン 2.72 から 2.74 に更新されました。

  • NEXT has been upgraded from version 0.67_01 to 0.68.

    NEXT はバージョン 0.67_01 から 0.68 に更新されました。

  • ODBM_File has been upgraded from version 1.16 to 1.17.

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

  • Opcode has been upgraded from version 1.47 to 1.50.

    Opcode はバージョン 1.47 から 1.50 に更新されました。

  • overload has been upgraded from version 1.31 to 1.33.

    overload はバージョン 1.31 から 1.33 に更新されました。

  • perlfaq has been upgraded from version 5.20200523 to 5.20210411.

    perlfaq はバージョン 5.20200523 から 5.20210411 に更新されました。

  • PerlIO::encoding has been upgraded from version 0.28 to 0.30.

    PerlIO::encoding はバージョン 0.28 から 0.30 に更新されました。

  • PerlIO::mmap has been upgraded from version 0.016 to 0.017.

    PerlIO::mmap はバージョン 0.016 から 0.017 に更新されました。

  • PerlIO::scalar has been upgraded from version 0.30 to 0.31.

    PerlIO::scalar はバージョン 0.30 から 0.31 に更新されました。

  • PerlIO::via::QuotedPrint has been upgraded from version 0.08 to 0.09.

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

  • Pod::Checker has been upgraded from version 1.73 to 1.74.

    Pod::Checker はバージョン 1.73 から 1.74 に更新されました。

  • Pod::Html has been upgraded from version 1.25 to 1.27.

    Pod::Html はバージョン 1.25 から 1.27 に更新されました。

  • Pod::Simple has been upgraded from version 3.40 to 3.42.

    Pod::Simple はバージョン 3.40 から 3.42 に更新されました。

  • Pod::Usage has been upgraded from version 1.69 to 2.01.

    Pod::Usage はバージョン 1.69 から 2.01 に更新されました。

  • POSIX has been upgraded from version 1.94 to 1.97.

    POSIX はバージョン 1.94 から 1.97 に更新されました。

    POSIX::signbit() behaviour has been improved. [GH #18441]

    POSIX::signbit() の振る舞いが改良されました。 [GH #18441]

    Documentation for asctime clarifies that the result is always in English. (Use strftime for a localized result.)

    asctime の文書は、結果が常に英語になることが明確化されました。 (地域化された結果のためには strftime を使ってください。)

  • re has been upgraded from version 0.40 to 0.41.

    re はバージョン 0.40 から 0.41 に更新されました。

    (See under "Internal Changes" for more information.)

    (さらなる情報については "Internal Changes" を参照してください。)

  • Safe has been upgraded from version 2.41 to 2.43.

    Safe はバージョン 2.41 から 2.43 に更新されました。

  • Socket has been upgraded from version 2.029 to 2.031.

    Socket はバージョン 2.029 から 2.031 に更新されました。

  • Storable has been upgraded from version 3.21 to 3.23.

    Storable はバージョン 3.21 から 3.23 に更新されました。

  • strict has been upgraded from version 1.11 to 1.12.

    strict はバージョン 1.11 から 1.12 に更新されました。

  • subs has been upgraded from version 1.03 to 1.04.

    subs はバージョン 1.03 から 1.04 に更新されました。

  • Symbol has been upgraded from version 1.08 to 1.09.

    Symbol はバージョン 1.08 から 1.09 に更新されました。

  • Test::Harness has been upgraded from version 3.42 to 3.43.

    Test::Harness はバージョン 3.42 から 3.43 に更新されました。

  • Test::Simple has been upgraded from version 1.302175 to 1.302183.

    Test::Simple はバージョン 1.302175 から 1.302183 に更新されました。

  • Text::Balanced has been upgraded from version 2.03 to 2.04.

    Text::Balanced はバージョン 2.03 から 2.04 に更新されました。

  • threads has been upgraded from version 2.25 to 2.26.

    threads はバージョン 2.25 から 2.26 に更新されました。

  • threads::shared has been upgraded from version 1.61 to 1.62.

    threads::shared はバージョン 1.61 から 1.62 に更新されました。

  • Tie::RefHash has been upgraded from version 1.39 to 1.40.

    Tie::RefHash はバージョン 1.39 から 1.40 に更新されました。

  • Time::HiRes has been upgraded from version 1.9764 to 1.9767.

    Time::HiRes はバージョン 1.9764 から 1.9767 に更新されました。

  • Time::Local has been upgraded from version 1.28 to 1.30.

    Time::Local はバージョン 1.28 から 1.30 に更新されました。

  • Unicode::Collate has been upgraded from version 1.27 to 1.29.

    Unicode::Collate はバージョン 1.27 から 1.29 に更新されました。

  • Unicode::Normalize has been upgraded from version 1.27 to 1.28.

    Unicode::Normalize はバージョン 1.27 から 1.28 に更新されました。

  • utf8 has been upgraded from version 1.22 to 1.24.

    utf8 はバージョン 1.22 から 1.24 に更新されました。

  • version has been upgraded from version 0.9924 to 0.9928.

    version はバージョン 0.9924 から 0.9928 に更新されました。

  • warnings has been upgraded from version 1.47 to 1.51.

    warnings はバージョン 1.47 から 1.51 に更新されました。

  • Win32 has been upgraded from version 0.53 to 0.57.

    Win32 はバージョン 0.53 から 0.57 に更新されました。

    Fix calling convention for PFNRegGetValueA.

    PFNRegGetValueA の呼び出し仕様を修正しました。

    Added Win32::IsSymlinkCreationAllowed(), Win32::IsDeveloperModeEnabled(), and Win32::GetProcessPrivileges().

    Win32::IsSymlinkCreationAllowed(), Win32::IsDeveloperModeEnabled(), Win32::GetProcessPrivileges() が 追加されました。

    Removed old code for versions before Windows 2000.

    Windows 2000 より前のバージョンのための古いコードが削除されました。

  • XS::APItest has been upgraded from version 1.09 to 1.16.

    XS::APItest はバージョン 1.09 から 1.16 に更新されました。

  • XS::Typemap has been upgraded from version 0.17 to 0.18.

    XS::Typemap はバージョン 0.17 から 0.18 に更新されました。

文書

新しい文書

perldocstyle

This document is a guide for the authorship and maintenance of the documentation that ships with Perl.

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

perlgov

This document describes the goals, scope, system, and rules for Perl's new governance model.

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

Other pod files, most notably perlpolicy, were amended to reflect its adoption.

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

既存の文書の変更

We have attempted to update the documentation to reflect the changes listed in this document. If you find any we have missed, open an issue at https://github.com/Perl/perl5/issues.

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

Additionally, the following selected changes have been made:

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

  • perlapi, perlguts, perlxs, and perlxstut now prefer SvPVbyte over SvPV.

    perlapi, perlguts, perlxs, and perlxstutSvPV より SvPVbyte を好むようになりました。

  • References to Pumpking have been replaced with a more accurate term or Steering Council where appropriate.

    Pumpking への参照を、より正確な用語、あるいは適切な場所では Steering Council に置き換えました。

  • The Perl Steering Council is now the fallback contact for security issues.

    The Perl Steering Council は セキュリティ問題へのフォールバック連絡先になりました。

perlapi

  • Efforts continue in improving the presentation of this document, and to document more API elements.

    この文書の表現を向上し、より多くの API 要素を文書化するする努力が 続けられました。

perlcommunity

  • The freenode IRC URL has been updated.

    freenode IRC の URL が更新されました。

perldebguts

  • Corrected the description of the scalar ${"_<$filename"} variables.

    ${"_<$filename"} スカラ変数の記述が修正されました。

perldiag

  • Now documents additional examples of "not imported" warnings.

    "not imported" 警告の追加の例が文書化されました。

perlfaq

  • The Perl FAQ was updated to CPAN version 5.20201107 with minor improvements.

    The Perl FAQ は CPAN バージョン 5.20201107 に小さな改良を加えたものに 更新されました。

perlfunc

  • my() and state() now explicitly warn the reader that lexical variables should typically not be redeclared within the same scope or statement. [GH #18389]

    my()state() は、 レキシカル変数は典型的には同じスコープや文の中で再宣言されるべきではないと いうことを読者に明示的に警告するようになりました。 [GH #18389]

  • The localtime entry has been improved and now also states that the result of the function is always in English.

    localtime エントリは改良され、 この関数の結果は常に英語であることが記述されました。

  • msgsnd() documented a length field included in the packed MSG parameter to msgsnd(), but there was no such field. MSG contains only the type and the message content.

    msgsnd()msgsnd() へのパックされた MSG 引数に含まれている長さフィールドについて記述していました。 そのようなフィールドはありませんでした。 MSG は型とメッセージの内容のみを含みます。

  • Better explanation of what happens when sleep is called with a zero or negative value.

    Better explanation of what happens when sleep がゼロや負の値で呼び出されたときに起こることについて より良い説明をするようになりました。

  • Simplify the split() documentation by removing the join()s from the examples [GH #18676]

    例から join() を除去することで split() の文書を単純化しました。 [GH #18676]

perlgit

  • document how to create a remote-tracking branch for every PR

    全ての PR についてリモートトラックブランチを作る方法について 文書化しました。

  • document how to get a PR as a local branch

    PR をローカルブランチとして得る方法について文書化しました。

perlguts

  • perlguts now explains in greater detail the need to consult SvUTF8 when calling SvPV (or variants). A new "How do I pass a Perl string to a C library?" section in the same document discusses when to use which style of macro to read an SV's string value.

    perlguts は、 SvPV (およびその亜種) を呼び出すときに SvUTF8 を参照する必要性についてより詳しく説明するようになりました。 同じ文書の新しい "How do I pass a Perl string to a C library?" 節は、 SV の文字列値を読むためにいつどの形式のマクロを使うべきかを 議論しています。

  • Corrected my_rpeep example in perlguts.

    my_rpeep の例を修正しました。

  • A section has been added on the formatted printing of special sizes.

    特殊なサイズのフォーマットされた表示に関する節が追加されました。

perlop

  • The <> and <<>> operators are commonly referred to as the diamond and double diamond operators respectively, but that wasn't mentioned previously in their documentation.

    <><<>> 演算子は一般的に、 それぞれダイヤモンド演算子および二重ダイヤモンド演算子として 参照されていますが、それらの文書に以前は言及されていませんでした。

  • Document range op behavior change.

    range op の振る舞いの変更について文書化しました。

perlpacktut

  • Incorrect variables used in an example have been fixed.

    例で誤った値が使われていたのが修正されました。

perlsyn

  • Document that caller() does not see try{} blocks

    caller() は try{} ブロックを見ないことが文書化されました。

  • A new example shows how a lexical my variable can be declared during the initialization of a for loop.

    新しい例は、レキシカルな my 変数が for ループの初期化の間にどのように宣言できるかを示します。

perlunifaq

  • Fix description of what Perl does with unencoded strings

    Perl がエンコードされていない文字列をどうするかの記述を修正しました。

診断メッセージ

The following additions or changes have been made to diagnostic output, including warnings and fatal error messages. For the complete list of diagnostic messages, see perldiag.

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

新しい警告メッセージ

新しいエラー

新しい警告

  • Wide character in setenv key (encoding to utf8)

    Attempts to put wide characters into environment variable keys via %ENV now provoke this warning.

    %ENV 経由でワイド文字を環境変数に入れようとするとこの警告が発生します。

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

  • Error %s in expansion of %s

    An error was encountered in handling a user-defined property ("User-Defined Character Properties" in perlunicode). These are programmer written subroutines, hence subject to errors that may prevent them from compiling or running.

    ユーザー定義特性 ("User-Defined Character Properties" in perlunicode) の扱いで エラーに遭遇しました。 これらはプログラマが書いたサブルーチンなので、 エラーの主題はコンパイルや実行を妨げます。

  • Infinite recursion in user-defined property

    A user-defined property ("User-Defined Character Properties" in perlunicode) can depend on the definitions of other user-defined properties. If the chain of dependencies leads back to this property, infinite recursion would occur, were it not for the check that raised this error.

    ユーザー定義特性 ("User-Defined Character Properties" in perlunicode) は 他のユーザー定義特性の定義に依存できます。 依存の連鎖がこの特性に戻ってくると、このエラーを発生させるチェックが なければ無限再帰が起きます。

  • Timeout waiting for another thread to define \p{%s}

    The first time a user-defined property ("User-Defined Character Properties" in perlunicode) is used, its definition is looked up and converted into an internal form for more efficient handling in subsequent uses. There could be a race if two or more threads tried to do this processing nearly simultaneously.

    ユーザー定義特性 ("User-Defined Character Properties" in perlunicode) が最初に使われると、 その定義は調べられ、その後の仕様でより効率的に扱うために 内部形式に変換されます。 二つ以上のスレッドがこの処理をほぼ同時に使用とすると、 競合条件になることがあります。

  • Unknown user-defined property name \p{%s}

    You specified to use a property within the \p{...} which was a syntactically valid user-defined property, but no definition was found for it

    文法的に正当なユーザー定義特性の \p{...} の中で特性を 使うように指定しましたが、その定義が見つかりませんでした。

  • Too few arguments for subroutine '%s' (got %d; expected %d)

    Subroutine argument-count mismatch errors now include the number of given and expected arguments.

    サブルーチンの引数の数の不一致エラーは、与えられた引数の数と 想定される引数の数を含むようになりました。

  • Too many arguments for subroutine '%s' (got %d; expected %d)

    Subroutine argument-count mismatch errors now include the number of given and expected arguments.

    サブルーチンの引数の数の不一致エラーは、与えられた引数の数と 想定される引数の数を含むようになりました。

  • Lost precision when %s %f by 1

    This warning was only issued for positive too-large values when incrementing, and only for negative ones when decrementing. It is now issued for both positive or negative too-large values. [GH #18333]

    この警告は、インクリメントの時には大きすぎる正数のとき、 デクリメントの時は小さすぎる負数のときにのみ発生していました。 これは、大きすぎる正数と小さすぎる負数の両方について 発生するようになりました。 [GH #18333]

  • \K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/%s/

    This error was incorrectly produced in some cases involving nested lookarounds. This has been fixed. [GH #18123]

    このエラーは、ネストした先読みに関係する一部の場合で誤って 発生していました。 これは修正されました。 [GH #18123]

  • Use of uninitialized value%s

    This warning may now include the array or hash index when the uninitialized value is the result of an element not found. This will only happen if the index is a simple non-magical variable.

    この警告は、未初期化値が見つからない要素の結果の場合は、 配列やハッシュのインデックスを含むようになりました。 これは、インデックスが単純な非マジカル変数の場合にのみ起きます。

ツールの変更

perl5db.pl (the debugger)

(perl5db.pl (デバッガ))

  • New option: HistItemMinLength

    (新しいオプション: HistItemMinLength)

    This option controls the minimum length a command must be to get stored in history. Traditionally, this has been fixed at 2. Changes to the debugger are often perilous, and new bugs should be reported so the debugger can be debugged.

    このオプションは、ヒストリに保管されなければならないコマンドの 最小長を制御します。 伝統的に、これは 2 に固定されていました。 デバッガを変更するのはしばしば危険で、新しいバグが報告されるので、 デバッガはデバッグされるようになりました。

  • Fix to i and l commands

    (il コマンドの修正)

    The i $var and l $var commands work again with lexical variables.

    i $varl $var コマンドは再びレキシカル変数で 動作するようになりました。

設定とコンパイル

  • Prevented incpath to spill into libpth

    incpath が libpth に漏れるのを防ぎました

  • Use realpath if available. (This might catch more duplicate paths.)

    利用可能なら realpath を使うようになりました。 (これはより多くの重複したパスを捕まえるかもしれません。)

  • Only include real existing paths.

    実際に存在するパスのみを含むようになりました。

  • Filter inc paths out of libpth.

    libpth から inc パスをフィルタリングしました。

  • stadtx hash support has been removed

    (stadtx 対応は完全に除去されました)

    stadtx support has been entirely removed. Previously, it could be requested with PERL_HASH_FUNC_STADTX, and was default in 64-bit builds. It has been replaced with SipHash. SipHash has been more rigorously reviewed than stadtx.

    stadtx 対応は完全に除去されました。 以前は、PERL_HASH_FUNC_STADTX で要求することができ、 デフォルトは 64 ビットビルドでした。 これは SipHash に置き換えられました。 SipHash は stadtx より厳格にレビューされています。

  • Configure

    A new probe checks for buggy libc implementations of the gcvt/qgcvt functions. [GH #18170]

    新しいプローブ は gcvt/qgcvt 関数のバグっぽい libc 実装を調べます。 [GH #18170]

  • -Dusedefaultstrict

    Perl can now be built with strict on by default (using the configuration option -Dusedefaultstrict.

    Perl は (-Dusedefaultstrict 設定オプションを使って) デフォルトで strict を有効にしてビルドできるようになりました。

    These strict defaults do not apply when perl is run via -e or -E.

    これらのデフォルト strict は perl-e-E 経由で 実行されているときは適用されません。

    This setting provides a diagnostic mechanism intended for development purposes only and is thus undefined by default.

    この設定は開発目的のための診断機構を提供するためだけの物なので、 デフォルトでは未定義です。

  • The minimum supported Bison version is now 2.4, and the maximum is 3.7.

    Bison の対応最低バージョンは 2.4、最大は 3.7 になりました。

  • Newer 64-bit versions of the Intel C/C++ compiler are now recognised and have the correct flags set.

    より新しい 64 ビット版の Intel C/C++ コンパイラが認識され、 正しいフラグ集合を持つようになりました。

  • We now trap SIGBUS when Configure checks for va_copy.

    Configureva_copy をチェックするときに SIGBUS を トラップするようになりました。

    On several systems the attempt to determine if we need va_copy or similar results in a SIGBUS instead of the expected SIGSEGV, which previously caused a core dump.

    いくつかのシステムでは、va_copy のようなものが必要かどうか 決定しようと試みると、想定している SIGSEGV ではなく SIGBUS となることがあり、以前はこれはコアダンプを引き起こしていました。

    [GH #18148]

テスト

Tests were added and changed to reflect the other additions and changes in this release. Furthermore, these significant changes were made:

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

  • Split Config-dependent tests in t/opbasic/arith.t to t/op/arith2.t

    Split t/opbasic/arith.t の中の Config 依存のテストを t/op/arith2.t に分離しました。

  • t/re/opt.t was added, providing a test harness for regexp optimization. [GH #18213]

    t/re/opt.t が追加されました; 正規表現最適化のためのテストハーネスを提供します。 [GH #18213]

  • A workaround for CPAN distributions needing dot in @INC has been removed [GH #18394]. All distributions that previously required the workaround have now been adapted.

    @INC にドットが必要な CPAN 配布のための回避策が削除されました [GH #18394]。 以前回避策が必要だった全ての配布は対応されました。

  • When testing in parallel on many-core platforms, you can now cause the test suite to finish somewhat earlier, but with less logical ordering of the tests, by setting

    メニーコアプラットフォームで並列にテストをするとき、 テスト順序の論理性を減らしてテストスイートをいくらか早く 完了できるようになりました; 次のものを

     PERL_TEST_HARNESS_ASAP=1

    while running the test suite.

    テストスイート実行中に指定します。

プラットフォーム対応

新しいプラットフォーム

9front

Allow building Perl on i386 9front systems (a fork of plan9).

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

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

Plan9

Improve support for Plan9 on i386 platforms.

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

MacOS (Darwin)

The hints file for darwin has been updated to handle future MacOS versions beyond 10. [GH #17946]

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

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

Symbian

Support code relating to Symbian has been removed. Symbian was an operating system for mobile devices. The port was last updated in July 2009, and the platform itself in October 2012.

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

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

DragonFlyBSD

Tests were updated to workaround DragonFlyBSD bugs in tc*() functions and ctime updates.

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

Mac OS X

A number of system libraries no longer exist as actual files on Big Sur, even though dlopen will pretend they do, so now we fall back to dlopen if a library file can not be found. [GH #18407]

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

Windows

Reading non-ASCII characters from the console when its codepage was set to 65001 (UTF-8) was broken due to a bug in Windows. A workaround for this problem has been implemented. [GH #18701]

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

Building with mingw.org compilers (version 3.4.5 or later) using mingw runtime versions < 3.22 now works again. This was broken in Perl 5.31.4.

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

Building with mingw.org compilers (version 3.4.5 or later) using mingw runtime versions >= 3.21 now works (for compilers up to version 5.3.0).

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

Makefile.mk, and thus support for dmake, has been removed. It is still possible to build Perl on Windows using nmake (Makefile) and GNU make (GNUmakefile). [GH #18511]

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

perl can now be built with USE_QUADMATH on MS Windows using (32-bit and 64-bit) mingw-w64 ports of gcc. [GH #18465]

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

The pl2bat.pl utility now needs to use ExtUtils::PL2Bat. This could cause failures in parallel builds.

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

Windows now supports symlink() and readlink(), and lstat() is no longer an alias for stat(). [GH #18005].

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

Unlike POSIX systems, creating a symbolic link on Windows requires either elevated privileges or Windows 10 1703 or later with Developer Mode enabled.

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

stat(), including stat FILEHANDLE, and lstat() now uses our own implementation that populates the device dev and inode numbers ino returned rather than always returning zero. The number of links nlink field is now always populated.

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

${^WIN32_SLOPPY_STAT} previously controlled whether the nlink field was populated requiring a separate Windows API call to fetch, since nlink and the other information required for stat() is now retrieved in a single API call.

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

The -r and -w operators now return true for the STDIN, STDOUT and STDERR handles. Unfortunately it still won't return true for duplicates of those handles. [GH #8502].

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

The times returned by stat() and lstat() are no longer incorrect across Daylight Savings Time adjustments. [GH #6080].

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

-x on a filehandle should now match -x on the corresponding filename on Vista or later. [GH #4145].

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

-e '"' no longer incorrectly returns true. [GH #12431].

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

The same manifest is now used for Visual C++ and gcc builds.

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

Previously, MSVC builds were using the /manifestdependency flag instead of embedding perlexe.manifest, which caused issues such as GetVersionEx() returning the wrong version number on Windows 10.

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

z/OS

The locale categories LC_SYNTAX and LC_TOD are now recognized. Perl doesn't do anything with these, except it now allows you to specify them. They are included in LC_ALL.

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

内部の変更

  • Corrected handling of double and long double parameters for perl's implementation of formatted output for -Dusequadmath builds.

    -Dusequadmath ビルドでの perl のフォーマットされた出力の実装において double と long double の引数の扱いが修正されました。

    This applies to PerlIO_printf(), croak(), warn(), sv_catpvf() and their variants.

    これは PerlIO_printf(), croak(), warn(), sv_catpvf() および これらの亜種に適用されます。

    Previously in quadmath builds, code like:

    以前は quadmath ビルドでは、次のようなコード:

      PerlIO_printf(PerlIO_stderr(), "%g", somedouble);

    or

    または

      PerlIO_printf(PerlIO_stderr(), "%Lg", somelongdouble);

    would erroneously throw an exception "panic: quadmath invalid format ...", since the code added for quadmath builds assumed NVs were the only floating point format passed into these functions.

    は誤って例外 "panic: quadmath invalid format ..." を投げていました; 4 倍精度ビルドのために追加されたコードは NV がこれらの関数に渡される唯一の浮動小数点形式であることを 仮定していたからです。

    This code would also process the standard C long double specifier L as if it expected an NV (__float128 for quadmath builds), resulting in undefined behaviour.

    このコードはまた、標準 C long double 指定子 LNV (4 倍精度では __float128) であるかのように想定するので、 未定義な振る舞いとなっていました。

    These functions now correctly accept doubles, long doubles and NVs.

    これらの関数は正しく double, long double, NV を受け付けるようになりました。

  • Previously the right operand of bitwise shift operators (shift amount) was implicitly cast from IV to int, but it might lead wrong results if IV does not fit in int.

    以前はビット単位シフト演算子の右オペランド(シフト量)は暗黙に IV から int にキャストされていましたが、これは IV が int に収まらない場合に 誤った結果を引き起こすことがありました。

    And also, shifting INT_MIN bits used to yield the shiftee unchanged (treated as 0-bit shift instead of negative shift).

    また、INT_MIN ビットのシフトはシフト対象が変化していませんでした (負のシフトではなく 0 ビットシフトと扱われていました)。

  • A set of cop_hints_exists_{pv,pvn,pvs,sv} functions was added, to support checking for the existence of keys in the hints hash of a specific cop without needing to create a mortal copy of said value.

    cop_hints_exists_{pv,pvn,pvs,sv} 関数が追加されました; それぞれの値の揮発性のコピーを作る必要なしに 特定の cop のヒントハッシュの中のキーの存在のチェックを支援するためです。

  • An aid has been added for using the DEBUG macros when debugging XS or C code. The comments in perl.h describe DEBUG_PRE_STMTS and DEBUG_POST_STMTS. which you can #define to do things like save and restore errno, in case the DEBUG calls are interfering with that, or to display timestamps, or which thread it's coming from, or the location of the call, or whatever. You can make a quick hack to help you track something down without having to edit individual DEBUG calls.

    XS や C コードをデバッグするときに DEBUG マクロを使うための 助けが追加されました。 perl.h 内のコメントは DEBUG_PRE_STMTSDEBUG_POST_STMTS を 記述します; これにより、errno の保管と復元をしたり(この場合 DEBUG 呼び出しはこれを妨げます)、 あるいはタイムスタンプや、どのスレッドから来たかや、呼び出しの位置などを 表示したりするために #define できます。 個々の DEBUG 呼び出しを編集することなしに何かを追いかけるための クイックハックをすることができます。

  • Make REFCOUNTED_HE_EXISTS available outside of core

    REFCOUNTED_HE_EXISTS をコアの外側で利用できるようにしました

  • All SvTRUE-ish functions now evaluate their arguments exactly once. In 5.32, plain "SvTRUE" in perlapi was changed to do that; now the rest do as well.

    全ての SvTRUE 風の関数は引数を正確に 1 回だけ評価するようになりました。 5.32 では、単なる "SvTRUE" in perlapi がそのように変更されました; 今回残り全ても同様になりました。

  • Unicode is now a first class citizen when considering the pattern /A*B/ where A and B are arbitrary. The pattern matching code tries to make a tight loop to match the span of A's. The logic of this was now really updated with support for UTF-8.

    任意の A と B に対してパターン /A*B/ を考えるとき、 Unicode は一級市民になりました。 パターンマッチングのコードは A の並びにマッチングするために小さいループを 作ろうとします。 このロジックは UTF-8 に対応するために本当に更新されました。

  • The re module has a new function optimization, which can return a hashref of optimization data discovered about a compiled regexp.

    re モジュールに新しい関数 optimization が追加されました; これはコンパイルされた正規表現に関して発見された最適化データの ハッシュリファレンスを返すことができます。

  • The PERL_GLOBAL_STRUCT compilation option has been removed, and with it the need or the dVAR macro. dVAR remains defined as a no-op outside PERL_CORE for backwards compatiblity with XS modules.

    PERL_GLOBAL_STRUCT コンパイルオプションは除去され、 dVAR の必要性もなくなりました。 dVAR は、XS モジュールとの後方互換性のために PERL_CORE の外側で 何もしないものとして定義されたままです。

  • A new savestack type SAVEt_HINTS_HH has been added, which neatens the previous behaviour of SAVEt_HINTS. On previous versions the types and values pushed to the save stack would depend on whether the hints included the HINT_LOCALIZE_HH bit, which complicates external code that inspects the save stack. The new version uses a different savestack type to indicate the difference.

    新しい保存スタック型 SAVEt_HINTS_HH が追加されました; これは SAVEt_HINTS の以前の振る舞いをきれいにしたものです。 以前のバージョンでは、保存スタックにプッシュされた型と値は HINT_LOCALIZE_HH ビットに含まれているヒントに依存していて、 これは保存スタックを調べる外部コードを複雑にしていました。 新しいバージョンは、違いを示すために異なる保存スタック型を使います。

  • A new API function "av_count" in perlapi has been added which gives a clearly named way to find how many elements are in an array.

    新しい API 関数 "av_count" in perlapi が追加されました; これは 配列にいくつ要素があるかを見つけるための明らかに名前付けされた方法を 提供します。

バグ修正の抜粋

  • Setting %ENV now properly handles upgraded strings in the key. Previously Perl sent the SV's internal PV directly to the OS; now it will handle keys as it has handled values since 5.18: attempt to downgrade the string first; if that fails then warn and use the utf8 form.

    %ENV への設定は、キーの中の昇格された文字列を正しく扱えるようになりました。 以前は Perl は SV の内部 PV を直接 OS に送っていました; 5.18 からの値の扱いと同じように扱うようになりました: まず文字列を降格しようとします; これに失敗すると、警告を出して utf8 形式で使います。

  • Fix a memory leak in regcomp.c [GH #18604]

    regcomp.c のメモリリークを修正 [GH #18604]

  • pack/unpack format 'D' now works on all systems that could support it

    (pack/unpack フォーマット 'D' は対応できる全てのシステムで動作するようになりました)

    Previously if NV == long double, now it is supported on all platforms that have long doubles. In particular that means it is now also supported on quadmath platforms.

    以前は、NV == long double なら、long double を持つ全ての プラットフォームで対応されました。 特に、これは 4 倍精度プラットフォームも対応されたということです。

  • Skip trying to constant fold an incomplete op tree [GH #18380]

    不完全な op 木を定数畳み込みしようとしなくなりました [GH #18380]

    Constant folding of chained comparison op trees could fail under certain conditions, causing perl to crash. As a quick fix, constant folding is now skipped for such op trees. This also addresses [GH #17917].

    連鎖比較 op 木の定数畳み込みは、特定の条件で失敗することがあり、 perl のクラッシュを引き起こしていました。 応急措置として、そのような op 木では定数畳み込みをしないようになりました。 これは [GH #17917] でも 対応しています。

  • %g formatting broken on Ubuntu-18.04, NVSIZE == 8 [GH #18170]

    %g フォーマットは Ubuntu-18.04, NVSIZE == 8 で壊れていました [GH #18170]

    Buggy libc implementations of the gcvt and qgcvt functions caused (s)printf to incorrectly truncate %g formatted numbers. A new Configure probe now checks for this, with the result that the libc sprintf will be used in place of gcvt and qgcvt.

    gcvtqgcvt 関数のバグっぽい libc 実装により、 (s)printf%g フォーマットされた数値を誤って切り詰めていました。 新しい Configure プローブはこれをチェックし、その結果により gcvtqgcvt の代わりに libc の sprintf を使います。

    Tests added as part of this fix also revealed related problems in some Windows builds. The makefiles for MINGW builds on Windows have thus been adjusted to use USE_MINGW_ANSI_STDIO by default, ensuring that they also provide correct (s)printf formatting of numbers.

    この修正の一部として追加されたテストは、一部の Windows ビルドでの 関連する問題も明らかにしました。 Windows での MINGW ビルドのための makefile はデフォルトで USE_MINGW_ANSI_STDIO を使うように調整され、これも 正しい (s)printf 数値フォーマットを提供するようになりました。

  • op.c: croak on my $_ when use utf8 is in effect [GH #18449]

    op.c: use utf8 が有効のときに my $_ が隠されます [GH #18449]

    The lexical topic feature experiment was removed in Perl v5.24 and declaring my $_ became a compile time error. However, it was previously still possible to make this declaration if use utf8 was in effect.

    The lexical topic feature experiment was Perl v5.24 で削除され、my $_ 宣言はコンパイル時エラーになりました。 しかし、use utf8 が有効の場合は依然としてこの宣言をすることが可能でした。

  • regexec.c: Fix assertion failure [GH #18451]

    regexec.c: アサート失敗の修正 [GH #18451]

    Fuzzing triggered an assertion failure in the regexp engine when too many characters were copied into a buffer.

    ファジングにより多すぎる文字がバッファにコピーされたときに、 正規表現エンジンでアサート失敗を引き起こしていました。

  • semctl(), msgctl(), and shmctl() now properly reset the UTF-8 flag on the ARG parameter if it's modified for IPC_STAT or GETALL operations.

    semctl(), msgctl(), shmctl()IPC_STAT または GETALL 操作のために修正されたとき、 ARG の UTF-8 フラグを正しくリセットするようになりました。

  • semctl(), msgctl(), and shmctl() now attempt to downgrade the ARG parameter if its value is being used as input to IPC_SET or SETALL calls. A failed downgrade will thrown an exception.

    semctl(), msgctl(), shmctl() は、 ARG 引数の値が IPC_SET or SETALL 呼び出しの入力として使われる 場合は、その値を降格しようとするようになりました。 降格に失敗すると例外を投げます。

  • In cases where semctl(), msgctl() or shmctl() would treat the ARG parameter as a pointer, an undefined value no longer generates a warning. In most such calls the pointer isn't used anyway and this allows you to supply undef for a value not used by the underlying function.

    semctl(), msgctl(), shmctl()ARG 引数をポインタとして 扱う場合、未定義値はもはや警告を生成しなくなりました。 そのような呼び出しのほとんどでは、ポインタはどちらにしろ使われず、 これにより、基となる関数で使われない値に対して undef を指定できるようになります。

  • semop() now downgrades the OPSTRING parameter, msgsnd() now downgrades the MSG parameter and shmwrite now downgrades the STRING parameter to treat them as bytes. Previously they would be left upgraded, providing a corrupted structure to the underlying function call.

    値をバイトとして扱うために、 semop()OPSTRING 引数を降格し、 msgsnd()MSG 引数を降格し、 shmwriteSTRING 引数を降格するようになりました。 以前はこれらは昇格したままで、基となる関数呼び出しに 壊れた構造体を提供していました。

  • msgrcv() now properly resets the UTF-8 flag the VAR parameter when it is modified. Previously the UTF-8 flag could be left on, resulting in a possibly corrupt result in VAR.

    msgrcv() は、VAR 引数が変更されたときに 適切に UTF-8 フラグをリセットするようになりました。 以前は UTF-8 フラグがオンのままになり、VAR の結果が 壊れることがありました。

  • Magic is now called correctly for stacked file test operators. [GH #18293]

    スタックしたファイルテスト演算子で正しくマジックが 呼び出されるようになりました。 [GH #18293]

  • The @ary = split(...) optimization no longer switches in the target array as the value stack. [GH #18232] Also see discussion at https://github.com/Perl/perl5/pull/18014#issuecomment-671299506.

    @ary = split(...) 最適化は、 もはやターゲットの配列を値のスタックとして切り替えなくなりました。 [GH #18232] https://github.com/Perl/perl5/pull/18014#issuecomment-671299506 の 議論も参照してください。

  • Fixed a bug in which some regexps with recursive subpatterns matched incorrectly.

    再帰する部分パターンを含む一部の正規表現が誤ってマッチングするバグが 修正されました。

    [GH #18096]

  • On Win32, waitpid(-1, WNOHANG) could sometimes have a very large timeout. [GH #16529]

    Win32 では、waitpid(-1, WNOHANG) が時々とても長い中断時間になる ことがありました。 [GH #16529]

  • MARK and hence items are now correctly initialized in BOOT XSUBs.

    MARKitemsBOOT XSUB で正しく初期化されるようになりました。

  • Some list assignments involving undef on the left-hand side were over-optimized and produced incorrect results. [GH #16685], [GH #17816]

    左側の undef に関係する一部のリスト代入は最適化されすぎて 正しくない結果になっていました。 [GH #16685], [GH #17816]

既知の問題

None

なし

以前のリリースの訂正

None

なし

おくやみ

Kent Fredric (KENTNL) passed away in February 2021. A native of New Zealand and a self-described "huge geek," Kent was the author or maintainer of 178 CPAN distributions, the Perl maintainer for the Gentoo Linux distribution and a contributor to the Perl core distribution. He is mourned by his family, friends and open source software communities worldwide.

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

Acknowledgements

Perl 5.34.0 represents approximately 11 months of development since Perl 5.32.0 and contains approximately 280,000 lines of changes across 2,100 files from 78 authors.

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

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

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

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

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, Михаил Козачков.

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

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

If you believe you have an unreported bug, please open an issue at https://github.com/Perl/perl5/issues. Be sure to trim your bug down to a tiny but sufficient test case.

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

If the bug you are reporting has security implications which make it inappropriate to send to a public issue tracker, 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 ファイル。