プログラミング言語 Perl 5.30.0 のリリース

11か月の開発期間を経て 起こった Perl プログラミング言語の新しい安定したブランチのリリース - 5.30。 新しいリリースの準備では、約 620 万行のコードが変更され、変更により 1300 のファイルが影響を受け、58 人の開発者が開発に参加しました。

ブランチ 5.30 は、5.30.1 年前に承認された固定開発スケジュールに従ってリリースされました。これは、新しい安定したブランチが年に 5.30.0 回リリースされ、修正リリースが 5.30 か月ごとにリリースされることを意味します。 約 5.26 か月以内に、Perl 5.31 の実装中に特定された最も重大なエラーを修正する、Perl 2020 の最初の修正リリースがリリースされる予定です。 Perl 5.32 のリリースに伴い、XNUMX ブランチのサポートは中止されました。このブランチの更新は、重大なセキュリティ問題が特定された場合にのみ将来リリースされる可能性があります。 実験ブランチ XNUMX の開発プロセスも開始されており、これに基づいて Perl XNUMX の安定版リリースが XNUMX 年 XNUMX 月に形成される予定です。

変更:

  • "" 操作の実験的なサポートが正規表現に追加されました。(?<!パターン)"そして"(?‹=パターン)» 以前に処理された名前付きテンプレートへのアクセスが制限されます。 パターン定義は参照点から 255 文字以内にする必要があります。
  • 「{m,n}」正規表現ブロック内のサイズ指定子 (「n」) の最大値が 65534 に増加しました。
  • 限定追加 サポート 正規表現内の特定のカテゴリの文字を強調表示するマスクで、さまざまな Unicode セットをカバーします。 たとえば、「qr! \p{nv= /(?x) \A [0-5] \z / }!” タイ語またはベンガル語の数字の綴りを含む、0 ~ 5 の数字を定義するすべての Unicode 文字を選択できます。
  • 正規表現での名前付き文字のサポートを追加しました
    一重引用符で区切られたパターン内 (qr'\N{name}');

  • Unicode 仕様のサポートがバージョンに更新されました 12.1。 実験的開発フラグが呼び出しから削除されました sv_utf8_downgrade と sv_utf8_decode、C 言語の拡張機能の開発に使用されます。
  • マルチスレッド操作をサポートするロケール (-Accflags='-DUSE_THREAD_SAFE_LOCALE') を使用した操作を実装して Perl を構築する機能が追加されました。 以前は、このような実装は Perl のマルチスレッド バージョンをビルドする場合にのみ使用されていましたが、現在はどのビルドでも有効にできるようになりました。
  • 「-Dv」(拡張デバッグ出力)フラグと「-Dr」(正規表現デバッグ)フラグを組み合わせると、考えられるすべての正規表現デバッグ モードが有効になります。
  • 以前に非推奨となった機能は削除されました。
    • 行区切り文字およびワイルドカード文字として使用できるようになりました 許可 のみを使用する 書記素 (複合 Unicode 文字は許可されません)。
    • 製造中止 正規表現で「{」文字をエスケープせずに使用する、長い間廃止されてきたいくつかの形式のサポート。
    • それは禁止されています 「:utf8」ハンドラーで sysread()、syswrite()、recv()、および send() 関数を使用します。
    • 本質的に偽の条件文 (たとえば、「my $x if 0」) で「my」の定義を使用することは禁止されています。
    • 特殊変数「$*」および「$#」のサポートは削除されました。
      dump() 関数の暗黙的な呼び出しのサポートは廃止されました (現在は CORE::dump() を明示的に指定する必要があります)。

    • File::Glob::glob 関数は削除されました (File::Glob::bsd_glob を使用する必要があります)。
    • 不正な Unicode シーケンスを返さないように、pack() に保護を追加しました。
    • XS コード (C ブロック) で UTF-8 を使用した操作を実行するマクロの使用のサポート終了は、次のリリースまで延期されました。
  • パフォーマンスの最適化:
    • UTF-8 から文字レイアウトへの変換操作が高速化されました (コードポイント)、たとえば、 ord(“\x7fff”) 操作の実行に必要な命令が 12% 減りました。 UTF-8 文字シーケンスの正確さをチェックする操作のパフォーマンスも向上しました。
    • Finalize_op() 関数の再帰呼び出しは削除されました。
    • 同一の文字を折りたたんだり、正規表現で文字クラスを定義したりするためのコードに若干の最適化を行いました。
    • 最適化された 符号付き型定義を符号なし型定義に変換します (IV から UV)。
    • 整数を文字列に変換するアルゴリズムは、XNUMX 桁ではなく XNUMX 桁を一度に処理することで高速化されました。
    • 改善が行われました 準備した LGTM による分析に基づく。
    • ファイル regcomp.c、regcomp.h、regexec.c のコードが最適化されました。
    • 正規表現では、ASCII 文字を含む「qr/[^a]/」などのパターンの処理が大幅に高速化されました。
  • Minix3 プラットフォームのサポートが復元されました。 Microsoft Visual Studio 2019 コンパイラー (Visual C++ 14.2) を使用してビルドできます。
  • 基本パッケージに含まれるモジュールの更新バージョン。 メインコンポジションからモジュールが削除されました B::デバッグ и ロケール::コード.

出所: オープンネット.ru

コメントを追加します