NAME

perl5101delta - perl v5.10.1 での変更点


DESCRIPTION

このドキュメントは 5.10.0 リリースと 5.10.1 リリースの変更点を記述しています。

もしそれよりも前のリリース、例えば 5.8.8 等からアップデートするのなら、 5.8.8 と 5.10.0 との違いが書かれている perl5100delta を読んでおいた方が よいでしょう。


互換性のない変更

switch 文の変更

given/when による複雑な式の扱いが拡張されました。 新しく、when がスマートマッチングの式ではなく真偽値として 引数を解釈する場合が二つあります。

フリップフロップ演算子

..... のフリップフロップ演算子は、通常の文法に従ってブール値 コンテキストで評価されるようになりました。 Range Operators in perlop を参照してください。

perl 5.10.0 では、when (1..10) としても、与えられた値が 1 から 10 の間の 数値かどうかをテストするようには動作しないことに注意してください; 代わりに when ([1..10]) を使うべきです (配列リファレンスに 注意してください)。

しかし、5.10.0 とは反対に、when() でブール値コンテキストで フリップフロップ演算子が評価されることが保証されることで、 特に以下のように双安定条件を実装するときに便利です:

    when (/^=begin/ .. /^=end/) {
      # do something
    }
定義性和 (defined-or) 演算子

when (expr1 // expr2) のような、定義性和 (defined-or) を含む複合式は、 最初の式が真偽値なら真偽値として扱われます。 (これは単に、when (expr1 || expr2) のような通常の or 演算子に 適用されるすでにあるルールの拡張です。

次の章では、スマートマッチング演算子の文法に関するさらなる変更と、 当然のながら暗黙にスマートマッチングを使っている switch 文の 振る舞いの変更について詳述します。

スマートマッチングの変更

型ベースの発行(dispatch)への変更

スマートマッチング演算子 ~~ はもはや可換性を持ちません。 スマートマッチングの振る舞いは、まず右側の引数の型に依存します。 さらに、その文法は一貫性と有用性をより高めるために調整されました。 一般的な後方互換性は維持されている一方、いくつかの変更点には 注意しなければなりません:

スマートマッチング演算子に関する完全な発行テーブルは Smart matching in detail in perlsyn にあります。

スマートマッチングとオーバーロード

一番右の引数の型に依存するという発行ルールによれば、 演算子の右側にオブジェクトのオーバーロード ~~ が現れたとき、 オーバーロードルーチンは(3 番目の引数に真の値を設定して; overload を 参照してください) 常に呼び出されます。 しかし、オブジェクトが左側に現れたとき、オーバーロードルーチンは 一番右の引数が単純なスカラの場合にのみ呼び出されます。 これによって配列に対するスマートマッチングの分配性や 複合型(コードリファレンス、ハッシュ、正規表現)に対するその他の振る舞いは 壊れません。 従って、スマートマッチングのためのローバーロードルーチンの作者は ほとんどの場合、スカラの比較と、可能性があるなら文字列化のオーバーロードに 関してのみ心配する必要があります; その他の一般的な場合は 一貫性を持って自動的に扱われます。

~~ は、オーバーロードしていないオブジェクトに対して動作しなくなりました (オブジェクトの基礎となる構造に依存することを避けるためです)。 しかし、オブジェクトが文字列化か数値化演算子をオーバーロードしていて、 オーバーロードのフォールバックが有効の場合は、通常通りに使われます。)

その他の互換性のない変更


コアの拡張

Unicode Character Database 5.1.0

Perl 5.10.1 に含まれる Unicode Character Database は 5.0.0 から 5.1.0 に 更新されました。 注目するべき変更点については http://www.unicode.org/versions/Unicode5.1.0/#NotableChanges を 参照してください。

プラグ可能なメソッド解決順序のための適切なインターフェース

Perl 5.10.1 から、デフォルト (線形深さ優先検索) 以外のメソッド解決順序を 追加して使うための新しいインターフェースがあります。 5.10.0 で追加された C3 メソッド解決順序は、Perl 空間でのインターフェースの 変更なしにプラグインとして再実装されました。 さらなる情報については perlmroapi を参照してください。

overloading プラグマ

このプラグマは、演算子の一部あるいは全部を、レキシカルに無効化あるいは 有効化します。 (Yuval Kogman)

並列テスト

コア配布は、Unix 風プラットフォームでは退行テストを並列に実行できるように なりました。 make test を実行する代わりに、環境変数 TEST_JOBS に並列に 実行するテスト数を設定して、make test_harness を実行します。 Bourne-風のシェルでは、これは以下のようにします

    TEST_JOBS=3 make test_harness  # Run 3 tests in parallel

並列 make 自身ではなく、環境変数を使います; なぜなら TAP::Harness はここの競合しないテストスクリプト自身を計画できる必要が ありますが、make ユーティリティのジョブスケジューラと相互作用するための 標準的なインターフェースはないからです。

いくつかのテストスクリプト(特に ext/IO/t/io_dir.t)は並列に実行すると 失敗するかもしれないことに注意してください。 もし必要なら、失敗したスクリプトを順番に再実行して、失敗しなくなることを 確認してください。

DTrace 対応

DTrace へのいくらかの対応が追加されました。 INSTALL の "DTrace support" を参照してください。

CPAN モジュールメタデータの configure_requires への対応

CPANCPANPLUS は、ほとんどの最近の CPAN 配布が含んでいる メタデータファイル META.ymlconfigure_requires キーワードに 対応しました。 これにより、Makefile.PLBuild.PL が実行される前に インストールされていなければならない設定の事前条件を指定できます。

CPAN で配布するときに configure_requires を指定する方法については ExtUtils::MakeMakerModule::Build の文書を参照してください。


モジュールとプラグマ

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

autodie

これは Fatal モジュール代用品で、新しくレキシカルスコープを持つものです。 同梱されているバージョンは 2.06_01 です。 このリリースでは、autodie が有効の時に文字列 eval を使うと、 autodie の振る舞いが周りのスコープに漏れるかもしれないことに 注意してください。 さらなる詳細については autodie/"BUGS" を参照してください。

Compress::Raw::Bzip2

これはコアに追加されました (バージョン 2.020)。

parent

このプラグマは、基底クラスとの ISA 関係をコンパイル時に構築します。 これは、機能の不愉快な部分なしに base の主となる機能を提供します。

Parse::CPAN::Meta

これはコアに追加されました (バージョン 1.39)。

変更されたプラグマ

attributes

0.08 から 0.09 に更新されました。

attrs

1.02 から 1.03 に更新されました。

base

2.13 から 2.14 に更新されました。 代用品については parent を参照してください。

bigint

0.22 から 0.23 に更新されました。

bignum

0.22 から 0.23 に更新されました。

bigrat

0.22 から 0.23 に更新されました。

charnames

1.06 から 1.07 に更新されました。

Unicode NameAliases.txt データベースファイルが追加されました。 これにより、以前は認識されなかった追加の \N 文字名(例えば "\N{LATIN CAPITAL LETTER GHA}") が追加される効果があります。

constant

1.13 から 1.17 に更新されました。

feature

:5.10 および :5.10.X で組み込まれる機能が僅かに変更されました。 最後の要素 (つまり X) がもしあっても、単に無視されます。 これは、一般的にはメンテナンスリリースでは新しい機能はないという仮定に 基づいています。 従って、:5.10:5.10.X は同じ効果を持ちます。 これは 5.10.0 で文書化されている振る舞いへの変更です。

fields

2.13 から 2.14 に更新されました (これは単なるバージョン番号の衝突でした; 機能的な変更はありません)。

lib

0.5565 から 0.62 に更新されました。

open

1.06 から 1.07 に更新されました。

overload

1.06 から 1.07 に更新されました。

overloading

上述の overloading プラグマ を参照してください。

version

0.74 から 0.77 に更新されました。

更新されたモジュール

Archive::Extract

0.24 から 0.34 に更新されました。

Archive::Tar

1.38 から 1.52 に更新されました。

Attribute::Handlers

0.79 から 0.85 に更新されました。

AutoLoader

5.63 から 5.68 に更新されました。

AutoSplit

1.05 から 1.06 に更新されました。

B

1.17 から 1.22 に更新されました。

B::Debug

1.05 から 1.11 に更新されました。

B::Deparse

0.83 から 0.89 に更新されました。

B::Lint

1.09 から 1.11 に更新されました。

B::Xref

1.01 から 1.02 に更新されました。

Benchmark

1.10 から 1.11 に更新されました。

Carp

1.08 から 1.11 に更新されました。

CGI

3.29 から 3.43 に更新されました。 (また、3.45 の "default_value for popup_menu()" の修正を含んでいます)。

Compress::Zlib

2.008 から 2.020 に更新されました。

CPAN

1.9205 から 1.9402 に更新されました。 CPAN::FTP は、ダウンロード失敗時に饒舌すぎるのを止めるローカルな 修正をしています。

CPANPLUS

0.84 から 0.88 に更新されました。

CPANPLUS::Dist::Build

0.06_02 から 0.36 に更新されました。

Cwd

3.25_01 から 3.30 に更新されました。

Data::Dumper

2.121_14 から 2.124 に更新されました。

DB

1.01 から 1.02 に更新されました。

DB_File

1.816_1 から 1.820 に更新されました。

Devel::PPPort

3.13 から 3.19 に更新されました。

Digest::MD5

2.36_01 から 2.39 に更新されました。

Digest::SHA

5.45 から 5.47 に更新されました。

DirHandle

1.01 から 1.03 に更新されました。

Dumpvalue

1.12 から 1.13 に更新されました。

DynaLoader

1.08 から 1.10 に更新されました。

Encode

2.23 から 2.35 に更新されました。

Errno

1.10 から 1.11 に更新されました。

Exporter

5.62 から 5.63 に更新されました。

ExtUtils::CBuilder

0.21 から 0.2602 に更新されました。

ExtUtils::Command

1.13 から 1.16 に更新されました。

ExtUtils::Constant

0.20 から 0.22 に更新されました。 (これらのバージョンは CPAN にはないことに注意してください。)

ExtUtils::Embed

1.27 から 1.28 に更新されました。

ExtUtils::Install

1.44 から 1.54 に更新されました。

ExtUtils::MakeMaker

6.42 から 6.55_02 に更新されました。

ExtUtils::MakeMaker::bytesExtUtils::MakeMaker::vmsish は この配布から取り除かれたことに注意してください。

ExtUtils::Manifest

1.51_01 から 1.56 に更新されました。

ExtUtils::ParseXS

2.18_02 から 2.2002 に更新されました。

Fatal

1.05 から 2.06_01 に更新されました。 新しいプラグマである autodie も参照してください。

File::Basename

2.76 から 2.77 に更新されました。

File::Compare

1.1005 から 1.1006 に更新されました。

File::Copy

2.11 から 2.14 に更新されました。

File::Fetch

0.14 から 0.20 に更新されました。

File::Find

1.12 から 1.14 に更新されました。

File::Path

2.04 から 2.07_03 に更新されました。

File::Spec

3.2501 から 3.30 に更新されました。

File::stat

1.00 から 1.01 に更新されました。

File::Temp

0.18 から 0.22 に更新されました。

FileCache

1.07 から 1.08 に更新されました。

FileHandle

2.01 から 2.02 に更新されました。

Filter::Simple

0.82 から 0.84 に更新されました。

Filter::Util::Call

1.07 から 1.08 に更新されました。

FindBin

1.49 から 1.50 に更新されました。

GDBM_File

1.08 から 1.09 に更新されました。

Getopt::Long

2.37 から 2.38 に更新されました。

Hash::Util::FieldHash

1.03 から 1.04 に更新されました。 これはメモリリークを修正しています。

I18N::Collate

1.00 から 1.01 に更新されました。

IO

1.23_01 から 1.25 に更新されました。

これにより、Windows で IO::Socket::INET の非ブロッキングモードが 動作するようになります [CPAN #43573] 。

IO::Compress::*

2.008 から 2.020 に更新されました。

IO::Dir

1.06 から 1.07 に更新されました。

IO::Handle

1.27 から 1.28 に更新されました。

IO::Socket

1.30_01 から 1.31 に更新されました。

IO::Zlib

1.07 から 1.09 に更新されました。

IPC::Cmd

0.40_1 から 0.46 に更新されました。

IPC::Open3

1.02 から 1.04 に更新されました。

IPC::SysV

1.05 から 2.01 に更新されました。

lib

0.5565 から 0.62 に更新されました。

List::Util

1.19 から 1.21 に更新されました。

Locale::MakeText

1.12 から 1.13 に更新されました。

Log::Message

0.01 から 0.02 に更新されました。

Math::BigFloat

1.59 から 1.60 に更新されました。

Math::BigInt

1.88 から 1.89 に更新されました。

Math::BigInt::FastCalc

0.16 から 0.19 に更新されました。

Math::BigRat

0.21 から 0.22 に更新されました。

Math::Complex

1.37 から 1.56 に更新されました。

Math::Trig

1.04 から 1.20 に更新されました。

Memoize

1.01_02 から 1.01_03 に更新されました (単なる軽微な文書の修正です)。

Module::Build

0.2808_01 から 0.34_02 に更新されました。

Module::CoreList

2.13 から 2.18 に更新されました。 このリリースにはもはや %Module::CoreList::patchlevel ハッシュは 含まれていません。

Module::Load

0.12 から 0.16 に更新されました。

Module::Load::Conditional

0.22 から 0.30 に更新されました。

Module::Loaded

0.01 から 0.02 に更新されました。

Module::Pluggable

3.6 から 3.9 に更新されました。

NDBM_File

1.07 から 1.08 に更新されました。

Net::Ping

2.33 から 2.36 に更新されました。

NEXT

0.60_01 から 0.64 に更新されました。

Object::Accessor

0.32 から 0.34 に更新されました。

OS2::REXX

1.03 から 1.04 に更新されました。

Package::Constants

0.01 から 0.02 に更新されました。

PerlIO

1.04 から 1.06 に更新されました。

PerlIO::via

0.04 から 0.07 に更新されました。

Pod::Man

2.16 から 2.22 に更新されました。

Pod::Parser

1.35 から 1.37 に更新されました。

Pod::Simple

3.05 から 3.07 に更新されました。

Pod::Text

3.08 から 3.13 に更新されました。

POSIX

1.13 から 1.17 に更新されました。

Safe

2.12 から 2.18 に更新されました。

Scalar::Util

1.19 から 1.21 に更新されました。

SelectSaver

1.01 から 1.02 に更新されました。

SelfLoader

1.11 から 1.17 に更新されました。

Socket

1.80 から 1.82 に更新されました。

Storable

2.18 から 2.20 に更新されました。

Switch

2.13 から 2.14 に更新されました。 非推奨 を参照してください。

Symbol

1.06 から 1.07 に更新されました。

Sys::Syslog

0.22 から 0.27 に更新されました。

Term::ANSIColor

1.12 から 2.00 に更新されました。

Term::ReadLine

1.03 から 1.04 に更新されました。

Term::UI

0.18 から 0.20 に更新されました。

Test::Harness

2.64 から 3.17 に更新されました。

Note that 2.x から 3.x へのアップグレードに対する副作用の一つとして、 実験的な Test::Harness::Straps モジュール (およびそのサポートである Assert, Iterator, Point, Results モジュール) は 取り除かれました。 もしまだこれらが必要なら、CPAN にある(メンテナンスされていない) Test-Harness-Straps が利用可能です。

Test::Simple

0.72 から 0.92 に更新されました。

Text::ParseWords

3.26 から 3.27 に更新されました。

Text::Tabs

2007.1117 から 2009.0305 に更新されました。

Text::Wrap

2006.1117 から 2009.0305 に更新されました。

Thread::Queue

2.00 から 2.11 に更新されました。

Thread::Semaphore

2.01 から 2.09 に更新されました。

threads

1.67 から 1.72 に更新されました。

threads::shared

1.14 から 1.29 に更新されました。

Tie::RefHash

1.37 から 1.38 に更新されました。

Tie::StdHandle

これは文書の変更と、初めてバージョン番号 4.2 が割り当てられました。

Time::HiRes

1.9711 から 1.9719 に更新されました。

Time::Local

1.18 から 1.1901 に更新されました。

Time::Piece

1.12 から 1.15 に更新されました。

Unicode::Normalize

1.02 から 1.03 に更新されました。

Unicode::UCD

0.25 から 0.27 に更新されました。

charinfo() は、最近の Unicode で追加された統合 CJK 符号位置に対しても 動作するようになりました。

古いフィールドは過去互換性のために残されます。 テュルク諸語符号位置固有の情報も返すようになりました。

文書が修正および拡張されました。

UNIVERSAL

1.04 から 1.05 に更新されました。

Win32

0.34 から 0.39 に更新されました。

Win32API::File

0.1001_01 から 0.1101 に更新されました。

XSLoader

0.08 から 0.10 に更新されました。


ツールの変更

h2ph

最近 gcc の検索パスとして追加された、include-fixed を見るように なりました。

h2xs

マクロのような enum 値を間違って扱わなくなりました (Daniel Burr)。

enum での C++ 形式の定数 (//) を扱うようになりました。 (Rainer Weikusat からのパッチを使いました; Daniel Burr からも似たような 修正を提案されました)。

perl5db.pl

LVALUE サブルーチンはデバッガからでも動作するようになりました。

デバッガは代理定数サブルーチンとサブルーチンスタブを正しく扱えるように なりました。

perlthanks

Perl 5.10.1 に新しいユーティリティである perlthanks が追加されました; これは perlbug の変種ですが、Perl の作者とメンテナにバグレポートではない ものを送ります。 バグレポートでしかないものを受け取るのは少しがっかりさせるものに なりつつあります: これによって変わるかどうかを見てみます。


新しい文書

perlhaiku

これには、Haiku プラットフォームで perl をビルドする方法についての 説明が含まれています。

perlmroapi

これは、プラグ可能なメソッド解決順序の新しいインターフェースを 記述しています。

perlperf

この文書は Richard Foley によるもので、perl プログラムの個々の参照で 使えるパフォーマンスと最適化の技術の使用に関する導入を提供します。

perlrepository

これは、git バージョン管理システムを使って perl のソースに アクセスする方法について記述しています。

perlthanks

これは新しい perlthanks ユーティリティについて記述しています。


既存の文書の変更

(過去 18 年間にわたって perl に対して行われた全ての変更の一覧である) 様々な大きな Changes* ファイルが取り除かれ、 単に git バージョン制御システムから同じ情報を取り出す方法を説明した 小さいファイル Changes に置き換えられました。

Porting/patching.pod ファイルは削除されました; これは主に古い Perforce を基としたレポジトリとの相互作用について記述していて、 これは古いものです。 まだ関連のある情報は perlrepository に移動しました。

perlapi, perlintern, perlmodlib, perltoc はリリースの 一部としてではなく、全てビルド時に生成されるようになりました。


パフォーマンスの向上


インストールと設定の改良

ext/ の再構成

ext ディレクトリのレイアウトが見直されました。 特に、全てのエクステンションはフラットにトップレベルに置かれ、 パス名中の /- に置き換えられます; 従って、 ext/Data/Dumper/ext/Data-Dumper/ のようになります。 エクステンションの名前のうち、Configure で指定されるもの、 dynamic_ext, known_extensions, nonxs_ext, static_ext%Config::Config によって報告されるものは変更なしで、/ を 使い続けます。 従ってこの変更は一旦 perl がインストールされれば何の影響もありません。 しかし、Attribute::Handlers, Safe, mro が新たに独自の権限を持つ エクステンションとなりましたので、もし Configure をビルドする エクステンションの正確なリストを指定するオプション付きで実行する場合、 これらのために変更する必要があるでしょう。

5.10.2 では、多くの 2 重管理されているモジュールが lib から ext に 移動することが計画されています; やはりこれはインストールされた perl には何の変更もありませんが、 もし予め設定されたビルドするエクステンションのリストを使って Configure を起動するときには影響があります。

設定の改良

vendorlibvendorarch が同じなら、@INC には 1 回だけ 追加されます。

もし perl が -Dusedevel 付きでビルドされたなら、 $Config{usedevel} と C レベルの PERL_USE_DEVEL が定義されるように なりました。

Configure は、もしコンパイラが対応しているなら、 スタック破壊攻撃に対する防御のために、-fstack-protector の使用を 有効にします。

Configure は、もし C コンパイラでなく C++ コンパイラを使うなら、 再入可能な関数と gconvert のための正しいプロトタイプを 決定するようになりました。

Unix では、もし git レポジトリを含むツリーからビルドするなら、 設定プロセスは perl -vperl -V の出力での表示のために、 チェックアウトしたコミットハッシュを記録します。 プッシュされないローカルのコミットは自動的に perl -V によって表示されるローカルパッチの一覧に追加されます。

コンパイルの改良

ext のフラット化の一部として、全てのプラットフォームの全ての エクステンションは make_ext.pl でビルドされます。 これは Unix 固有の ext/util/make_ext、VMS 固有の make_ext.com、 Win32 固有の win32/buildext.pl を置き換えます。

プラットフォーム固有の変更

AIX

AIX 5L と 6.1 のための libbsd が取り除かれました。 flock() だけが libbsd を使っていました。

AIX 5L and 6.1 のための libgdbm が取り除かれました。 libgdbm は AIX Toolbox の追加パッケージとして配布されています。 残念ながら 64 ビット版は壊れています。

AIX 4.2 で再び動作するようにヒントが変更されました。

Cygwin

Cygwin においては、DLL から最後の番号を取り除くことにしました。 これは何年間も cygwin.com のビルドの振る舞いとなっています。 ヒントファイルが更新されました。

FreeBSD

ヒントファイルは FreeBSD 7 以降での正しいスレッドライブラリを 識別するようになりました。

Irix

Irix 6.5 コンパイラのプリプロセッサにある奇妙なバグを回避するように なりました: cc -E - は残念ながら K&R モードになりますが、cc -E file.c では なりません。

Haiku

Haiku 管理者からのパッチがマージされました。 Perl は Haiku でビルドできるようになったはずです。

MirOS BSD

Perl は MirOS BSD でビルドできるようになったはずです。

NetBSD

ヒントがバージョン 5.* に対応しました。

Stratus VOS

Stratus からの様々な変更がマージされました。

Symbian

Symbian S60 3.2 SDK と S60 5.0 SDK に対応するようになりました。

Win32

メッセージウィンドウの扱いが改良され、alarmkill のメッセージが 競合状態でも欠落しなくなりました。

VMS

PerlIO::scalar のメモリ内一時ファイルからの読み込みは、 $/ が(レコード風読み込みを示すために)数値リファレンスにセットされていると 失敗していました。 これは修正されました。

VMS が getgrgid に対応するようになりました。

VMS ファイル名の扱いと変換に関するコードに対して多くの改良と整理が 行われました。

論理名 PERL_VMS_POSIX_EXIT を有効にすることで、VMS 条件値を POSIX 返りステータスに変換し、GNV の bash シェルやその他の POSIX 返り値に 依存しているユーティリティとの相互作用を高めます。 詳細については perlvms/"$?" を参照してください。


バグ修正の抜粋


新しい、または変更された診断メッセージ

panic: sv_chop %s

これは、C ルーチン Perl_sv_chop() に、スカラの文字列バッファ内でない 位置が渡された時に発生する、新しい致命的エラーです。 これはバグっぽい XS コードによって引き起こされ、この時点では 回復は不可能です。

Can't locate package %s for the parents of %s

この警告は取り除かれました。 一般的に、これは他の警告と同時にのみ生成され、これを取り除くことによって ISA 読み出しの最適化が追加できるようになりました。

v-string in use/require is non-portable

この警告は取り除かれました。

Deep recursion on subroutine "%s"

この警告が出る深さの閾値は、デフォルトでは 100 ですが、C プリプロセッサ マクロ PERL_SUB_DEPTH_WARN を好みの値に変えて perl バイナリを 再コンパイルすることによって、変更できるようになりました。


内部の変更


新しいテスト

CPAN から更新された多くのモジュールに新しいテストが組み込まれました。

いくつかのテストは、テストが時間切れになった後に kill することで make testmake test_harness が自動的に実行を終了することを 確実にするために組み込まれた「番犬」機能で失敗すると、 ハングアップしてしまう可能性がありました (Jerry Hedden)。

いくつかのコア固有のテストが追加されました:

t/comp/retainedlines.t

デバッガが eval からソース行を得られるかをチェックします。

t/io/perlio_fail.t

間違った層が失敗するかをチェックします。

t/io/perlio_leaks.t

PerlIO 層がリークしていないかをチェックします。

t/io/perlio_open.t

open のある種の特殊な形式が動作するかをチェックします。

t/io/perlio.t

PerlIO を全体的にテストします。

t/io/pvbm.t

内部型 PVBMPVGV の間で想定外の相互作用がないことをチェックします。

t/mro/package_aliases.t

エイリアス化されたパッケージが存在したときに MRO が適切に動作するかを チェックします。

t/op/dbm.t

dbmopendbmclose をテストします。

t/op/index_thr.t

index とスレッドの相互作用をテストします。

t/op/pat_thr.t

難解なパターンとスレッドの相互作用をテストします。

t/op/qr_gc.t

qr がリークしていないことをテストします。

t/op/reg_email_thr.t

regex 再帰とスレッドの相互作用をテストします。

t/op/regexp_qr_embed_thr.t

組み込みの qr// があるパターンとスレッドの相互作用をテストします。

t/op/regexp_unicode_prop.t

正規表現中の Unicode 特性をテストします。

t/op/regexp_unicode_prop_thr.t

Unicode 特性とスレッドの相互作用をテストします。

t/op/reg_nc_tie.t

Tie::Hash::NamedCapture の tie されたメソッドをテストします。

t/op/reg_posixcc.t

POSIX 文字クラスが一貫性を持って振る舞うかをチェックします。

t/op/re.t

universal.c のエクスポート可能な re 関数が動作するかをチェックします。

t/op/setpgrpstack.t

setpgrp が動作するかをチェックします。

t/op/substr_thr.t

substr とスレッドの相互作用をテストします。

t/op/upgrade.t

スカラの昇格と代入が動作するかをチェックします。

t/uni/lex_utf8.t

文法解析器中の Unicode が動作するかをチェックします。

t/uni/tie.t

Unicode と tie が動作するかをチェックします。


既知の問題

以下はいくつかの重要な未修正のバグの一覧で、5.10.0 か 5.8.x からの 退行です。


非推奨

以下のものは非推奨となりました。


謝辞

このリリースの作業の一部は TRF の助成金を受けています。

Nicholas Clark は 2008 年末をもって公式にメンテナンス pumpking の役目から 引退しました; しかし、実際のところ彼はこの perldelta のかなり部分を 書くことを含む、5.10.1 をリリースできる状態にするために多くの 努力をしています。

特に Steffen Mueller と David Golden は CPAN モジュールを磨き上げて コア内部の等価物と同期させることを助けました。

Craig Berry は、何度私たちが中断させようとしても、飽きることなく VMS で動作するように管理しつつけました。

その他のコアコミッタはほとんどの変更を提供し、AUTHORS に上げられている 数百の貢献者によって送られたパッチのほとんどを適用しました。

(ここで名前を触れなかった全ての人々に陳謝します)。

最後に、Larry Wall に感謝します; 彼がいなければこれら全ては不要でした。


バグ報告

もしバグと思われるものを見つけたら、comp.lang.perl.misc ニュースグループに 最近投稿された記事や http://rt.perl.org/perlbug/ にある perl バグ データベースを確認してください。 Perl ホームページ、http://www.perl.org にも情報があります。

もしまだ報告されていないバグだと確信したら、そのリリースに含まれている perlbug プログラムをを実行してください。 バグの再現スクリプトを十分小さく、しかし有効なコードに切りつめることを 意識してください。バグレポートは perl -V の出力と一緒に perlbug@perl.org に送られ Perl porting チームによって解析されます。

もし報告しようとしているバグがセキュリティに関するもので、公開されている メーリングリストに送るのが不適切なものなら、 perl5-security-report@perl.org に送ってください。 このアドレスは、問題の影響を評価し、解決法を見つけ、Perl が対応している 全てのプラットフォームで問題を軽減または解決するパッチをリリースするのを 助けることが出来る、全てのコアコミッタが参加している非公開の メーリングリストになっています。 このアドレスは、独自に CPAN で配布されているモジュールではなく、 Perl コアのセキュリティ問題だけに使ってください。


SEE ALSO

Changes ファイルに変更点の完全な詳細を見る方法についての説明があります。

INSTALL ファイルに Perl のビルド方法があります。

README ファイルに一般的なことがあります。

Artistic 及び Copying ファイルに著作権情報があります。