perl5400delta
perl5380delta
perl5361delta
perl5360delta
perl5341delta
perl5340delta
perl5321delta
perl5320delta
perl5303delta
perl5302delta
perl5301delta
perl5300delta
perl5283delta
perl5282delta
perl5281delta
perl5280delta
perl5263delta
perl5262delta
perl5261delta
perl5260delta
perl5244delta
perl5243delta
perl5242delta
perl5241delta
perl5240delta
perl5224delta
perl5223delta
perl5222delta
perl5221delta
perl5220delta
perl5203delta
perl5202delta
perl5201delta
perl5200delta
perl5184delta
perl5182delta
perl5181delta
perl5180delta
perl5163delta
perl5162delta
perl5161delta
perl5160delta
perl5144delta
perl5143delta
perl5142delta
perl5141delta
perl5140delta
perl5125delta
perl5124delta
perl5123delta
perl5122delta
perl5120delta
perl5100delta
perl5101delta
perl58delta
perl582delta
perl587delta
perl581delta
perl586delta
perl588delta
perl584delta
perl585delta
perl583delta
perl58delta
perl582delta
perl587delta
perl581delta
perl586delta
perl588delta
perl584delta
perl585delta
perl583delta
perl58delta
perl582delta
perl581delta
perl584delta
perl583delta
perl58delta
- 名前
- 説明
- 互換性のない変更
- コアの拡張
- モジュールとプラグマ
- ツールの変更
- 新しい文書
- 既存の文書の変更
- パフォーマンスの向上
- インストールと設定の改良
- バグ修正の抜粋
- 新しい、または変更された診断メッセージ
- 内部の変更
- 新しいテスト
- 既知の問題
- 非推奨
- 謝辞
- バグ報告
- SEE ALSO
名前¶
perl5101delta - what is new for perl v5.10.1
perl5101delta - perl v5.10.1 での変更点
説明¶
This document describes differences between the 5.10.0 release and the 5.10.1 release.
このドキュメントは 5.10.0 リリースと 5.10.1 リリースの変更点を記述しています。
If you are upgrading from an earlier release such as 5.8.8, first read the perl5100delta, which describes differences between 5.8.8 and 5.10.0
もしそれよりも前のリリース、例えば 5.8.8 等からアップデートするのなら、 5.8.8 と 5.10.0 との違いが書かれている perl5100delta を読んでおいた方が よいでしょう。
互換性のない変更¶
switch 文の変更¶
The handling of complex expressions by the given
/when
switch statement has been enhanced. There are two new cases where when
now interprets its argument as a boolean, instead of an expression to be used in a smart match:
given
/when
による複雑な式の扱いが拡張されました。 新しく、when
がスマートマッチングの式ではなく真偽値として 引数を解釈する場合が二つあります。
- flip-flop operators
-
(フリップフロップ演算子)
The
..
and...
flip-flop operators are now evaluated in boolean context, following their usual semantics; see "Range Operators" in perlop...
と...
のフリップフロップ演算子は、通常の文法に従ってブール値 コンテキストで評価されるようになりました。 "Range Operators" in perlop を参照してください。Note that, as in perl 5.10.0,
when (1..10)
will not work to test whether a given value is an integer between 1 and 10; you should usewhen ([1..10])
instead (note the array reference).perl 5.10.0 では、
when (1..10)
としても、与えられた値が 1 から 10 の間の 数値かどうかをテストするようには動作しないことに注意してください; 代わりにwhen ([1..10])
を使うべきです (配列リファレンスに 注意してください)。However, contrary to 5.10.0, evaluating the flip-flop operators in boolean context ensures it can now be useful in a
when()
, notably for implementing bistable conditions, like in:しかし、5.10.0 とは反対に、
when()
でブール値コンテキストで フリップフロップ演算子が評価されることが保証されることで、 特に以下のように双安定条件を実装するときに便利です:when (/^=begin/ .. /^=end/) { # do something }
- defined-or operator
-
(定義性和 (defined-or) 演算子)
A compound expression involving the defined-or operator, as in
when (expr1 // expr2)
, will be treated as boolean if the first expression is boolean. (This just extends the existing rule that applies to the regular or operator, as inwhen (expr1 || expr2)
.)when (expr1 // expr2)
のような、定義性和 (defined-or) を含む複合式は、 最初の式が真偽値なら真偽値として扱われます。 (これは単に、when (expr1 || expr2)
のような通常の or 演算子に 適用されるすでにあるルールの拡張です。
The next section details more changes brought to the semantics to the smart match operator, that naturally also modify the behaviour of the switch statements where smart matching is implicitly used.
次の章では、スマートマッチング演算子の文法に関するさらなる変更と、 当然のながら暗黙にスマートマッチングを使っている switch 文の 振る舞いの変更について詳述します。
スマートマッチングの変更¶
型ベースの発行(dispatch)への変更¶
The smart match operator ~~
is no longer commutative. The behaviour of a smart match now depends primarily on the type of its right hand argument. Moreover, its semantics have been adjusted for greater consistency or usefulness in several cases. While the general backwards compatibility is maintained, several changes must be noted:
スマートマッチング演算子 ~~
はもはや可換性を持ちません。 スマートマッチングの振る舞いは、まず右側の引数の型に依存します。 さらに、その文法は一貫性と有用性をより高めるために調整されました。 一般的な後方互換性は維持されている一方、いくつかの変更点には 注意しなければなりません:
-
Code references with an empty prototype are no longer treated specially. They are passed an argument like the other code references (even if they choose to ignore it).
空のプロトタイプを持つコードリファレンスは特別扱いされなくなりました。 (たとえ無視されることになるとしても)これらはその他のコードリファレンスと同様に 引数として渡されます。
-
%hash ~~ sub {}
and@array ~~ sub {}
now test that the subroutine returns a true value for each key of the hash (or element of the array), instead of passing the whole hash or array as a reference to the subroutine.%hash ~~ sub {}
と@array ~~ sub {}
は、 ハッシュや配列全体をリファレンスとしてサブルーチンに渡すのではなく、 ハッシュのそれぞれのキー(または配列の要素)に対してサブルーチンが 真を返すかどうかをテストするようになりました。 -
Due to the commutativity breakage, code references are no longer treated specially when appearing on the left of the
~~
operator, but like any vulgar scalar.可換性の破綻により、コードリファレンスは
~~
演算子の左側に 現れたときにはもはや特別扱いされず、普通のスカラと同じように扱われます。 -
undef ~~ %hash
is always false (sinceundef
can't be a key in a hash). No implicit conversion to""
is done (as was the case in perl 5.10.0).undef ~~ %hash
は常に偽となります (なぜならundef
はハッシュのキーとして 使えないからです)。 (perl 5.10.0 の場合のように)""
への暗黙の変換は行われません。 -
$scalar ~~ @array
now always distributes the smart match across the elements of the array. It's true if one element in @array verifies$scalar ~~ $element
. This is a generalization of the old behaviour that tested whether the array contained the scalar.$scalar ~~ @array
は常に配列の要素に対してスマートマッチングを 分配するようになりました。 これは、もし @array の一つの要素が$scalar ~~ $element
で検証されれば 真となります。 これは、配列にあるスカラが含まれているかどうかをテストする古い振る舞いの 一般化です。
The full dispatch table for the smart match operator is given in "Smart matching in detail" in perlsyn.
スマートマッチング演算子に関する完全な発行テーブルは "Smart matching in detail" in perlsyn にあります。
スマートマッチングとオーバーロード¶
According to the rule of dispatch based on the rightmost argument type, when an object overloading ~~
appears on the right side of the operator, the overload routine will always be called (with a 3rd argument set to a true value, see overload.) However, when the object will appear on the left, the overload routine will be called only when the rightmost argument is a simple scalar. This way distributivity of smart match across arrays is not broken, as well as the other behaviours with complex types (coderefs, hashes, regexes). Thus, writers of overloading routines for smart match mostly need to worry only with comparing against a scalar, and possibly with stringification overloading; the other common cases will be automatically handled consistently.
一番右の引数の型に依存するという発行ルールによれば、 演算子の右側にオブジェクトのオーバーロード ~~
が現れたとき、 オーバーロードルーチンは(3 番目の引数に真の値を設定して; overload を 参照してください) 常に呼び出されます。 しかし、オブジェクトが左側に現れたとき、オーバーロードルーチンは 一番右の引数が単純なスカラの場合にのみ呼び出されます。 これによって配列に対するスマートマッチングの分配性や 複合型(コードリファレンス、ハッシュ、正規表現)に対するその他の振る舞いは 壊れません。 従って、スマートマッチングのためのローバーロードルーチンの作者は ほとんどの場合、スカラの比較と、可能性があるなら文字列化のオーバーロードに 関してのみ心配する必要があります; その他の一般的な場合は 一貫性を持って自動的に扱われます。
~~
will now refuse to work on objects that do not overload it (in order to avoid relying on the object's underlying structure). (However, if the object overloads the stringification or the numification operators, and if overload fallback is active, it will be used instead, as usual.)
~~
は、オーバーロードしていないオブジェクトに対して動作しなくなりました (オブジェクトの基礎となる構造に依存することを避けるためです)。 しかし、オブジェクトが文字列化か数値化演算子をオーバーロードしていて、 オーバーロードのフォールバックが有効の場合は、通常通りに使われます。)
その他の互換性のない変更¶
-
The semantics of
use feature :5.10*
have changed slightly. See "Modules and Pragmata" for more information.use feature :5.10*
の文法が少し変更されました。 さらなる情報については "Modules and Pragmata" を参照してください。 -
It is now a run-time error to use the smart match operator
~~
with an object that has no overload defined for it. (This way~~
will not break encapsulation by matching against the object's internal representation as a reference.)オーバーロードが定義されていないオブジェクトに対してスマートマッチング 演算子
~~
を使うと、実行時エラーが出るようになりました。 (これで、~~
オブジェクトのリファレンスとしての内部表現に マッチングすることでカプセル化を壊すことがなくなります。) -
The version control system used for the development of the perl interpreter has been switched from Perforce to git. This is mainly an internal issue that only affects people actively working on the perl core; but it may have minor external visibility, for example in some of details of the output of
perl -V
. See perlrepository for more information.perl インタプリタの開発で使われるバージョン管理システムが Perforce から git に変更されました。 これは主に内部の問題で、perl コアに対して積極的に作業をする 人々にのみ影響があります; しかし、
perl -V
の出力の詳細の一部のように、外から見えるところにも 多少の変更があります。 さらなる情報については perlrepository を参照してください。 -
The internal structure of the
ext/
directory in the perl source has been reorganised. In general, a moduleFoo::Bar
whose source was stored under ext/Foo/Bar/ is now located under ext/Foo-Bar/. Also, some modules have been moved from lib/ to ext/. This is purely a source tarball change, and should make no difference to the compilation or installation of perl, unless you have a very customised build process that explicitly relies on this structure, or which hard-codes thenonxs_ext
Configure parameter. Specifically, this change does not by default alter the location of any files in the final installation.perl ソースの
ext/
ディレクトリの内部構造が再構成されました。 一般的に、今まで ext/Foo/Bar/ にソースが保管されていたFoo::Bar
モジュールは、ext/Foo-Bar/ に置かれるようになりました。 また、いくつかのモジュールが lib/ から ext/ に移動しました。 これは純粋にソース tarball の変更なので、この構造に明示的に 依存していたり、Configure のnonxs_ext
パラメータを ハードコーディングしているような、とてもカスタマイズされたビルド処理を するのでない限り、perl のコンパイルやインストールに違いはないはずです。 特に、この変更によっても最終的にインストールされたファイルの位置は 変更されません。 -
As part of the
Test::Harness
2.x to 3.x upgrade, the experimentalTest::Harness::Straps
module has been removed. See "Updated Modules" for more details.Test::Harness
2.x から 3.x へのアップグレードへの一部として、 実験的なTest::Harness::Straps
モジュールは取り除かれました。 さらなる詳細については "Updated Modules" を参照してください。 -
As part of the
ExtUtils::MakeMaker
upgrade, theExtUtils::MakeMaker::bytes
andExtUtils::MakeMaker::vmsish
modules have been removed from this distribution.ExtUtils::MakeMaker
のアップグレードの一部として、ExtUtils::MakeMaker::bytes
とExtUtils::MakeMaker::vmsish
の モジュールはこの配布から取り除かれました。 -
Module::CoreList
no longer contains the%:patchlevel
hash.Module::CoreList
はもはや%:patchlevel
ハッシュを含まなくなりました。 -
This one is actually a change introduced in 5.10.0, but it was missed from that release's perldelta, so it is mentioned here instead.
これは実際には 5.10.0 で導入された変更ですが、5.10.0 の perldelta からは 漏れているので、代わりにここで言及します。
A bugfix related to the handling of the
/m
modifier andqr
resulted in a change of behaviour between 5.8.x and 5.10.0:/m
修飾子とqr
の扱いに関するバグ修正の結果、5.8.x と 5.10.0 で 振る舞いが変わっています:# matches in 5.8.x, doesn't match in 5.10.0 $re = qr/^bar/; "foo\nbar" =~ /$re/m;
コアの拡張¶
Unicode Character Database 5.1.0¶
The copy of the Unicode Character Database included in Perl 5.10.1 has been updated to 5.1.0 from 5.0.0. See http://www.unicode.org/versions/Unicode5.1.0/#Notable_Changes for the notable changes.
Perl 5.10.1 に含まれる Unicode Character Database は 5.0.0 から 5.1.0 に 更新されました。 注目するべき変更点については http://www.unicode.org/versions/Unicode5.1.0/#Notable_Changes を 参照してください。
プラグ可能なメソッド解決順序のための適切なインターフェース¶
As of Perl 5.10.1 there is a new interface for plugging and using method resolution orders other than the default (linear depth first search). The C3 method resolution order added in 5.10.0 has been re-implemented as a plugin, without changing its Perl-space interface. See perlmroapi for more information.
Perl 5.10.1 から、デフォルト (線形深さ優先検索) 以外のメソッド解決順序を 追加して使うための新しいインターフェースがあります。 5.10.0 で追加された C3 メソッド解決順序は、Perl 空間でのインターフェースの 変更なしにプラグインとして再実装されました。 さらなる情報については perlmroapi を参照してください。
The overloading
pragma¶
(overloading
プラグマ)
This pragma allows you to lexically disable or enable overloading for some or all operations. (Yuval Kogman)
このプラグマは、演算子の一部あるいは全部を、レキシカルに無効化あるいは 有効化します。 (Yuval Kogman)
並列テスト¶
The core distribution can now run its regression tests in parallel on Unix-like platforms. Instead of running make test
, set TEST_JOBS
in your environment to the number of tests to run in parallel, and run make test_harness
. On a Bourne-like shell, this can be done as
コア配布は、Unix 風プラットフォームでは退行テストを並列に実行できるように なりました。 make test
を実行する代わりに、環境変数 TEST_JOBS
に並列に 実行するテスト数を設定して、make test_harness
を実行します。 Bourne-風のシェルでは、これは以下のようにします
TEST_JOBS=3 make test_harness # Run 3 tests in parallel
An environment variable is used, rather than parallel make itself, because TAP::Harness needs to be able to schedule individual non-conflicting test scripts itself, and there is no standard interface to make
utilities to interact with their job schedulers.
並列 make 自身ではなく、環境変数を使います; なぜなら TAP::Harness はここの競合しないテストスクリプト自身を計画できる必要が ありますが、make
ユーティリティのジョブスケジューラと相互作用するための 標準的なインターフェースはないからです。
Note that currently some test scripts may fail when run in parallel (most notably ext/IO/t/io_dir.t
). If necessary run just the failing scripts again sequentially and see if the failures go away.
いくつかのテストスクリプト(特に ext/IO/t/io_dir.t
)は並列に実行すると 失敗するかもしれないことに注意してください。 もし必要なら、失敗したスクリプトを順番に再実行して、失敗しなくなることを 確認してください。
DTrace 対応¶
Some support for DTrace has been added. See "DTrace support" in INSTALL.
DTrace へのいくらかの対応が追加されました。 INSTALL の "DTrace support" を参照してください。
Support for configure_requires
in CPAN module metadata¶
(CPAN モジュールメタデータの configure_requires
への対応)
Both CPAN
and CPANPLUS
now support the configure_requires
keyword in the META.yml
metadata file included in most recent CPAN distributions. This allows distribution authors to specify configuration prerequisites that must be installed before running Makefile.PL or Build.PL.
CPAN
と CPANPLUS
は、ほとんどの最近の CPAN 配布が含んでいる メタデータファイル META.yml
の configure_requires
キーワードに 対応しました。 これにより、Makefile.PL や Build.PL が実行される前に インストールされていなければならない設定の事前条件を指定できます。
See the documentation for ExtUtils::MakeMaker
or Module::Build
for more on how to specify configure_requires
when creating a distribution for CPAN.
CPAN で配布するときに configure_requires
を指定する方法については ExtUtils::MakeMaker
か Module::Build
の文書を参照してください。
モジュールとプラグマ¶
新しいモジュールとプラグマ¶
autodie
-
This is a new lexically-scoped alternative for the
Fatal
module. The bundled version is 2.06_01. Note that in this release, using a string eval whenautodie
is in effect can cause the autodie behaviour to leak into the surrounding scope. See "BUGS" in autodie for more details.これは
Fatal
モジュール代用品で、新しくレキシカルスコープを持つものです。 同梱されているバージョンは 2.06_01 です。 このリリースでは、autodie
が有効の時に文字列 eval を使うと、 autodie の振る舞いが周りのスコープに漏れるかもしれないことに 注意してください。 さらなる詳細については "BUGS" in autodie を参照してください。 Compress::Raw::Bzip2
-
This has been added to the core (version 2.020).
これはコアに追加されました (バージョン 2.020)。
parent
-
This pragma establishes an ISA relationship with base classes at compile time. It provides the key feature of
base
without the feature creep.このプラグマは、基底クラスとの ISA 関係をコンパイル時に構築します。 これは、機能の不愉快な部分なしに
base
の主となる機能を提供します。 Parse::CPAN::Meta
-
This has been added to the core (version 1.39).
これはコアに追加されました (バージョン 1.39)。
変更されたプラグマ¶
attributes
-
Upgraded from version 0.08 to 0.09.
0.08 から 0.09 に更新されました。
attrs
-
Upgraded from version 1.02 to 1.03.
1.02 から 1.03 に更新されました。
base
-
Upgraded from version 2.13 to 2.14. See parent for a replacement.
2.13 から 2.14 に更新されました。 代用品については parent を参照してください。
bigint
-
Upgraded from version 0.22 to 0.23.
0.22 から 0.23 に更新されました。
bignum
-
Upgraded from version 0.22 to 0.23.
0.22 から 0.23 に更新されました。
bigrat
-
Upgraded from version 0.22 to 0.23.
0.22 から 0.23 に更新されました。
charnames
-
Upgraded from version 1.06 to 1.07.
1.06 から 1.07 に更新されました。
The Unicode NameAliases.txt database file has been added. This has the effect of adding some extra
\N
character names that formerly wouldn't have been recognised; for example,"\N{LATIN CAPITAL LETTER GHA}"
.Unicode NameAliases.txt データベースファイルが追加されました。 これにより、以前は認識されなかった追加の
\N
文字名(例えば"\N{LATIN CAPITAL LETTER GHA}"
) が追加される効果があります。 constant
-
Upgraded from version 1.13 to 1.17.
1.13 から 1.17 に更新されました。
feature
-
The meaning of the
:5.10
and:5.10.X
feature bundles has changed slightly. The last component, if any (i.e.X
) is simply ignored. This is predicated on the assumption that new features will not, in general, be added to maintenance releases. So:5.10
and:5.10.X
have identical effect. This is a change to the behaviour documented for 5.10.0.:5.10
および:5.10.X
で組み込まれる機能が僅かに変更されました。 最後の要素 (つまりX
) がもしあっても、単に無視されます。 これは、一般的にはメンテナンスリリースでは新しい機能はないという仮定に 基づいています。 従って、:5.10
と:5.10.X
は同じ効果を持ちます。 これは 5.10.0 で文書化されている振る舞いへの変更です。 fields
-
Upgraded from version 2.13 to 2.14 (this was just a version bump; there were no functional changes).
2.13 から 2.14 に更新されました (これは単なるバージョン番号の衝突でした; 機能的な変更はありません)。
lib
-
Upgraded from version 0.5565 to 0.62.
0.5565 から 0.62 に更新されました。
open
-
Upgraded from version 1.06 to 1.07.
1.06 から 1.07 に更新されました。
overload
-
Upgraded from version 1.06 to 1.07.
1.06 から 1.07 に更新されました。
overloading
-
See "The
overloading
pragma" above.上述の "The
overloading
pragma" を参照してください。 version
-
Upgraded from version 0.74 to 0.77.
0.74 から 0.77 に更新されました。
更新されたモジュール¶
Archive::Extract
-
Upgraded from version 0.24 to 0.34.
0.24 から 0.34 に更新されました。
Archive::Tar
-
Upgraded from version 1.38 to 1.52.
1.38 から 1.52 に更新されました。
Attribute::Handlers
-
Upgraded from version 0.79 to 0.85.
0.79 から 0.85 に更新されました。
AutoLoader
-
Upgraded from version 5.63 to 5.68.
5.63 から 5.68 に更新されました。
AutoSplit
-
Upgraded from version 1.05 to 1.06.
1.05 から 1.06 に更新されました。
B
-
Upgraded from version 1.17 to 1.22.
1.17 から 1.22 に更新されました。
B::Debug
-
Upgraded from version 1.05 to 1.11.
1.05 から 1.11 に更新されました。
B::Deparse
-
Upgraded from version 0.83 to 0.89.
0.83 から 0.89 に更新されました。
B::Lint
-
Upgraded from version 1.09 to 1.11.
1.09 から 1.11 に更新されました。
B::Xref
-
Upgraded from version 1.01 to 1.02.
1.01 から 1.02 に更新されました。
Benchmark
-
Upgraded from version 1.10 to 1.11.
1.10 から 1.11 に更新されました。
Carp
-
Upgraded from version 1.08 to 1.11.
1.08 から 1.11 に更新されました。
CGI
-
Upgraded from version 3.29 to 3.43. (also includes the "default_value for popup_menu()" fix from 3.45).
3.29 から 3.43 に更新されました。 (また、3.45 の "default_value for popup_menu()" の修正を含んでいます)。
Compress::Zlib
-
Upgraded from version 2.008 to 2.020.
2.008 から 2.020 に更新されました。
CPAN
-
Upgraded from version 1.9205 to 1.9402.
CPAN::FTP
has a local fix to stop it being too verbose on download failure.1.9205 から 1.9402 に更新されました。
CPAN::FTP
は、ダウンロード失敗時に饒舌すぎるのを止めるローカルな 修正をしています。 CPANPLUS
-
Upgraded from version 0.84 to 0.88.
0.84 から 0.88 に更新されました。
CPANPLUS::Dist::Build
-
Upgraded from version 0.06_02 to 0.36.
0.06_02 から 0.36 に更新されました。
Cwd
-
Upgraded from version 3.25_01 to 3.30.
3.25_01 から 3.30 に更新されました。
Data::Dumper
-
Upgraded from version 2.121_14 to 2.124.
2.121_14 から 2.124 に更新されました。
DB
-
Upgraded from version 1.01 to 1.02.
1.01 から 1.02 に更新されました。
DB_File
-
Upgraded from version 1.816_1 to 1.820.
1.816_1 から 1.820 に更新されました。
Devel::PPPort
-
Upgraded from version 3.13 to 3.19.
3.13 から 3.19 に更新されました。
Digest::MD5
-
Upgraded from version 2.36_01 to 2.39.
2.36_01 から 2.39 に更新されました。
Digest::SHA
-
Upgraded from version 5.45 to 5.47.
5.45 から 5.47 に更新されました。
DirHandle
-
Upgraded from version 1.01 to 1.03.
1.01 から 1.03 に更新されました。
Dumpvalue
-
Upgraded from version 1.12 to 1.13.
1.12 から 1.13 に更新されました。
DynaLoader
-
Upgraded from version 1.08 to 1.10.
1.08 から 1.10 に更新されました。
Encode
-
Upgraded from version 2.23 to 2.35.
2.23 から 2.35 に更新されました。
Errno
-
Upgraded from version 1.10 to 1.11.
1.10 から 1.11 に更新されました。
Exporter
-
Upgraded from version 5.62 to 5.63.
5.62 から 5.63 に更新されました。
ExtUtils::CBuilder
-
Upgraded from version 0.21 to 0.2602.
0.21 から 0.2602 に更新されました。
ExtUtils::Command
-
Upgraded from version 1.13 to 1.16.
1.13 から 1.16 に更新されました。
ExtUtils::Constant
-
Upgraded from 0.20 to 0.22. (Note that neither of these versions are available on CPAN.)
0.20 から 0.22 に更新されました。 (これらのバージョンは CPAN にはないことに注意してください。)
ExtUtils::Embed
-
Upgraded from version 1.27 to 1.28.
1.27 から 1.28 に更新されました。
ExtUtils::Install
-
Upgraded from version 1.44 to 1.54.
1.44 から 1.54 に更新されました。
ExtUtils::MakeMaker
-
Upgraded from version 6.42 to 6.55_02.
6.42 から 6.55_02 に更新されました。
Note that
ExtUtils::MakeMaker::bytes
andExtUtils::MakeMaker::vmsish
have been removed from this distribution.ExtUtils::MakeMaker::bytes
とExtUtils::MakeMaker::vmsish
は この配布から取り除かれたことに注意してください。 ExtUtils::Manifest
-
Upgraded from version 1.51_01 to 1.56.
1.51_01 から 1.56 に更新されました。
ExtUtils::ParseXS
-
Upgraded from version 2.18_02 to 2.2002.
2.18_02 から 2.2002 に更新されました。
Fatal
-
Upgraded from version 1.05 to 2.06_01. See also the new pragma
autodie
.1.05 から 2.06_01 に更新されました。 新しいプラグマである
autodie
も参照してください。 File::Basename
-
Upgraded from version 2.76 to 2.77.
2.76 から 2.77 に更新されました。
File::Compare
-
Upgraded from version 1.1005 to 1.1006.
1.1005 から 1.1006 に更新されました。
File::Copy
-
Upgraded from version 2.11 to 2.14.
2.11 から 2.14 に更新されました。
File::Fetch
-
Upgraded from version 0.14 to 0.20.
0.14 から 0.20 に更新されました。
File::Find
-
Upgraded from version 1.12 to 1.14.
1.12 から 1.14 に更新されました。
File::Path
-
Upgraded from version 2.04 to 2.07_03.
2.04 から 2.07_03 に更新されました。
File::Spec
-
Upgraded from version 3.2501 to 3.30.
3.2501 から 3.30 に更新されました。
File::stat
-
Upgraded from version 1.00 to 1.01.
1.00 から 1.01 に更新されました。
File::Temp
-
Upgraded from version 0.18 to 0.22.
0.18 から 0.22 に更新されました。
FileCache
-
Upgraded from version 1.07 to 1.08.
1.07 から 1.08 に更新されました。
FileHandle
-
Upgraded from version 2.01 to 2.02.
2.01 から 2.02 に更新されました。
Filter::Simple
-
Upgraded from version 0.82 to 0.84.
0.82 から 0.84 に更新されました。
Filter::Util::Call
-
Upgraded from version 1.07 to 1.08.
1.07 から 1.08 に更新されました。
FindBin
-
Upgraded from version 1.49 to 1.50.
1.49 から 1.50 に更新されました。
GDBM_File
-
Upgraded from version 1.08 to 1.09.
1.08 から 1.09 に更新されました。
Getopt::Long
-
Upgraded from version 2.37 to 2.38.
2.37 から 2.38 に更新されました。
Hash::Util::FieldHash
-
Upgraded from version 1.03 to 1.04. This fixes a memory leak.
1.03 から 1.04 に更新されました。 これはメモリリークを修正しています。
I18N::Collate
-
Upgraded from version 1.00 to 1.01.
1.00 から 1.01 に更新されました。
IO
-
Upgraded from version 1.23_01 to 1.25.
1.23_01 から 1.25 に更新されました。
This makes non-blocking mode work on Windows in
IO::Socket::INET
[CPAN #43573].これにより、Windows で
IO::Socket::INET
の非ブロッキングモードが 動作するようになります [CPAN #43573] 。 IO::Compress::*
-
Upgraded from version 2.008 to 2.020.
2.008 から 2.020 に更新されました。
IO::Dir
-
Upgraded from version 1.06 to 1.07.
1.06 から 1.07 に更新されました。
IO::Handle
-
Upgraded from version 1.27 to 1.28.
1.27 から 1.28 に更新されました。
IO::Socket
-
Upgraded from version 1.30_01 to 1.31.
1.30_01 から 1.31 に更新されました。
IO::Zlib
-
Upgraded from version 1.07 to 1.09.
1.07 から 1.09 に更新されました。
IPC::Cmd
-
Upgraded from version 0.40_1 to 0.46.
0.40_1 から 0.46 に更新されました。
IPC::Open3
-
Upgraded from version 1.02 to 1.04.
1.02 から 1.04 に更新されました。
IPC::SysV
-
Upgraded from version 1.05 to 2.01.
1.05 から 2.01 に更新されました。
lib
-
Upgraded from version 0.5565 to 0.62.
0.5565 から 0.62 に更新されました。
List::Util
-
Upgraded from version 1.19 to 1.21.
1.19 から 1.21 に更新されました。
Locale::MakeText
-
Upgraded from version 1.12 to 1.13.
1.12 から 1.13 に更新されました。
Log::Message
-
Upgraded from version 0.01 to 0.02.
0.01 から 0.02 に更新されました。
Math::BigFloat
-
Upgraded from version 1.59 to 1.60.
1.59 から 1.60 に更新されました。
Math::BigInt
-
Upgraded from version 1.88 to 1.89.
1.88 から 1.89 に更新されました。
Math::BigInt::FastCalc
-
Upgraded from version 0.16 to 0.19.
0.16 から 0.19 に更新されました。
Math::BigRat
-
Upgraded from version 0.21 to 0.22.
0.21 から 0.22 に更新されました。
Math::Complex
-
Upgraded from version 1.37 to 1.56.
1.37 から 1.56 に更新されました。
Math::Trig
-
Upgraded from version 1.04 to 1.20.
1.04 から 1.20 に更新されました。
Memoize
-
Upgraded from version 1.01_02 to 1.01_03 (just a minor documentation change).
1.01_02 から 1.01_03 に更新されました (単なる軽微な文書の修正です)。
Module::Build
-
Upgraded from version 0.2808_01 to 0.34_02.
0.2808_01 から 0.34_02 に更新されました。
Module::CoreList
-
Upgraded from version 2.13 to 2.18. This release no longer contains the
%Module::CoreList::patchlevel
hash.2.13 から 2.18 に更新されました。 このリリースにはもはや
%Module::CoreList::patchlevel
ハッシュは 含まれていません。 Module::Load
-
Upgraded from version 0.12 to 0.16.
0.12 から 0.16 に更新されました。
Module::Load::Conditional
-
Upgraded from version 0.22 to 0.30.
0.22 から 0.30 に更新されました。
Module::Loaded
-
Upgraded from version 0.01 to 0.02.
0.01 から 0.02 に更新されました。
Module::Pluggable
-
Upgraded from version 3.6 to 3.9.
3.6 から 3.9 に更新されました。
NDBM_File
-
Upgraded from version 1.07 to 1.08.
1.07 から 1.08 に更新されました。
Net::Ping
-
Upgraded from version 2.33 to 2.36.
2.33 から 2.36 に更新されました。
NEXT
-
Upgraded from version 0.60_01 to 0.64.
0.60_01 から 0.64 に更新されました。
Object::Accessor
-
Upgraded from version 0.32 to 0.34.
0.32 から 0.34 に更新されました。
OS2::REXX
-
Upgraded from version 1.03 to 1.04.
1.03 から 1.04 に更新されました。
Package::Constants
-
Upgraded from version 0.01 to 0.02.
0.01 から 0.02 に更新されました。
PerlIO
-
Upgraded from version 1.04 to 1.06.
1.04 から 1.06 に更新されました。
PerlIO::via
-
Upgraded from version 0.04 to 0.07.
0.04 から 0.07 に更新されました。
Pod::Man
-
Upgraded from version 2.16 to 2.22.
2.16 から 2.22 に更新されました。
Pod::Parser
-
Upgraded from version 1.35 to 1.37.
1.35 から 1.37 に更新されました。
Pod::Simple
-
Upgraded from version 3.05 to 3.07.
3.05 から 3.07 に更新されました。
Pod::Text
-
Upgraded from version 3.08 to 3.13.
3.08 から 3.13 に更新されました。
POSIX
-
Upgraded from version 1.13 to 1.17.
1.13 から 1.17 に更新されました。
Safe
-
Upgraded from 2.12 to 2.18.
2.12 から 2.18 に更新されました。
Scalar::Util
-
Upgraded from version 1.19 to 1.21.
1.19 から 1.21 に更新されました。
SelectSaver
-
Upgraded from 1.01 to 1.02.
1.01 から 1.02 に更新されました。
SelfLoader
-
Upgraded from 1.11 to 1.17.
1.11 から 1.17 に更新されました。
Socket
-
Upgraded from 1.80 to 1.82.
1.80 から 1.82 に更新されました。
Storable
-
Upgraded from 2.18 to 2.20.
2.18 から 2.20 に更新されました。
Switch
-
Upgraded from version 2.13 to 2.14. Please see "Deprecations".
2.13 から 2.14 に更新されました。 "Deprecations" を参照してください。
Symbol
-
Upgraded from version 1.06 to 1.07.
1.06 から 1.07 に更新されました。
Sys::Syslog
-
Upgraded from version 0.22 to 0.27.
0.22 から 0.27 に更新されました。
Term::ANSIColor
-
Upgraded from version 1.12 to 2.00.
1.12 から 2.00 に更新されました。
Term::ReadLine
-
Upgraded from version 1.03 to 1.04.
1.03 から 1.04 に更新されました。
Term::UI
-
Upgraded from version 0.18 to 0.20.
0.18 から 0.20 に更新されました。
Test::Harness
-
Upgraded from version 2.64 to 3.17.
2.64 から 3.17 に更新されました。
Note that one side-effect of the 2.x to 3.x upgrade is that the experimental
Test::Harness::Straps
module (and its supportingAssert
,Iterator
,Point
andResults
modules) have been removed. If you still need this, then they are available in the (unmaintained)Test-Harness-Straps
distribution on CPAN.Note that 2.x から 3.x へのアップグレードに対する副作用の一つとして、 実験的な
Test::Harness::Straps
モジュール (およびそのサポートであるAssert
,Iterator
,Point
,Results
モジュール) は 取り除かれました。 もしまだこれらが必要なら、CPAN にある(メンテナンスされていない)Test-Harness-Straps
が利用可能です。 Test::Simple
-
Upgraded from version 0.72 to 0.92.
0.72 から 0.92 に更新されました。
Text::ParseWords
-
Upgraded from version 3.26 to 3.27.
3.26 から 3.27 に更新されました。
Text::Tabs
-
Upgraded from version 2007.1117 to 2009.0305.
2007.1117 から 2009.0305 に更新されました。
Text::Wrap
-
Upgraded from version 2006.1117 to 2009.0305.
2006.1117 から 2009.0305 に更新されました。
Thread::Queue
-
Upgraded from version 2.00 to 2.11.
2.00 から 2.11 に更新されました。
Thread::Semaphore
-
Upgraded from version 2.01 to 2.09.
2.01 から 2.09 に更新されました。
threads
-
Upgraded from version 1.67 to 1.72.
1.67 から 1.72 に更新されました。
threads::shared
-
Upgraded from version 1.14 to 1.29.
1.14 から 1.29 に更新されました。
Tie::RefHash
-
Upgraded from version 1.37 to 1.38.
1.37 から 1.38 に更新されました。
Tie::StdHandle
-
This has documentation changes, and has been assigned a version for the first time: version 4.2.
これは文書の変更と、初めてバージョン番号 4.2 が割り当てられました。
Time::HiRes
-
Upgraded from version 1.9711 to 1.9719.
1.9711 から 1.9719 に更新されました。
Time::Local
-
Upgraded from version 1.18 to 1.1901.
1.18 から 1.1901 に更新されました。
Time::Piece
-
Upgraded from version 1.12 to 1.15.
1.12 から 1.15 に更新されました。
Unicode::Normalize
-
Upgraded from version 1.02 to 1.03.
1.02 から 1.03 に更新されました。
Unicode::UCD
-
Upgraded from version 0.25 to 0.27.
0.25 から 0.27 に更新されました。
charinfo()
now works on Unified CJK code points added to later versions of Unicode.charinfo()
は、最近の Unicode で追加された統合 CJK 符号位置に対しても 動作するようになりました。casefold()
has new fields returned to provide both a simpler interface and previously missing information. The old fields are retained for backwards compatibility. Information about Turkic-specific code points is now returned.古いフィールドは過去互換性のために残されます。 テュルク諸語符号位置固有の情報も返すようになりました。
The documentation has been corrected and expanded.
文書が修正および拡張されました。
UNIVERSAL
-
Upgraded from version 1.04 to 1.05.
1.04 から 1.05 に更新されました。
Win32
-
Upgraded from version 0.34 to 0.39.
0.34 から 0.39 に更新されました。
Win32API::File
-
Upgraded from version 0.1001_01 to 0.1101.
0.1001_01 から 0.1101 に更新されました。
XSLoader
-
Upgraded from version 0.08 to 0.10.
0.08 から 0.10 に更新されました。
ツールの変更¶
- h2ph
-
Now looks in
include-fixed
too, which is a recent addition to gcc's search path.最近 gcc の検索パスとして追加された、
include-fixed
を見るように なりました。 - h2xs
-
No longer incorrectly treats enum values like macros (Daniel Burr).
マクロのような enum 値を間違って扱わなくなりました (Daniel Burr)。
Now handles C++ style constants (
//
) properly in enums. (A patch from Rainer Weikusat was used; Daniel Burr also proposed a similar fix).enum での C++ 形式の定数 (
//
) を扱うようになりました。 (Rainer Weikusat からのパッチを使いました; Daniel Burr からも似たような 修正を提案されました)。 - perl5db.pl
-
LVALUE
subroutines now work under the debugger.LVALUE
サブルーチンはデバッガからでも動作するようになりました。The debugger now correctly handles proxy constant subroutines, and subroutine stubs.
デバッガは代理定数サブルーチンとサブルーチンスタブを正しく扱えるように なりました。
- perlthanks
-
Perl 5.10.1 adds a new utility perlthanks, which is a variant of perlbug, but for sending non-bug-reports to the authors and maintainers of Perl. Getting nothing but bug reports can become a bit demoralising: we'll see if this changes things.
Perl 5.10.1 に新しいユーティリティである perlthanks が追加されました; これは perlbug の変種ですが、Perl の作者とメンテナにバグレポートではない ものを送ります。 バグレポートでしかないものを受け取るのは少しがっかりさせるものに なりつつあります: これによって変わるかどうかを見てみます。
新しい文書¶
- perlhaiku
-
This contains instructions on how to build perl for the Haiku platform.
これには、Haiku プラットフォームで perl をビルドする方法についての 説明が含まれています。
- perlmroapi
-
This describes the new interface for pluggable Method Resolution Orders.
これは、プラグ可能なメソッド解決順序の新しいインターフェースを 記述しています。
- perlperf
-
This document, by Richard Foley, provides an introduction to the use of performance and optimization techniques which can be used with particular reference to perl programs.
この文書は Richard Foley によるもので、perl プログラムの個々の参照で 使えるパフォーマンスと最適化の技術の使用に関する導入を提供します。
- perlrepository
-
This describes how to access the perl source using the git version control system.
これは、git バージョン管理システムを使って perl のソースに アクセスする方法について記述しています。
- perlthanks
-
This describes the new perlthanks utility.
これは新しい perlthanks ユーティリティについて記述しています。
既存の文書の変更¶
The various large Changes*
files (which listed every change made to perl over the last 18 years) have been removed, and replaced by a small file, also called Changes
, which just explains how that same information may be extracted from the git version control system.
(過去 18 年間にわたって perl に対して行われた全ての変更の一覧である) 様々な大きな Changes*
ファイルが取り除かれ、 単に git バージョン制御システムから同じ情報を取り出す方法を説明した 小さいファイル Changes
に置き換えられました。
The file Porting/patching.pod has been deleted, as it mainly described interacting with the old Perforce-based repository, which is now obsolete. Information still relevant has been moved to perlrepository.
Porting/patching.pod ファイルは削除されました; これは主に古い Perforce を基としたレポジトリとの相互作用について記述していて、 これは古いものです。 まだ関連のある情報は perlrepository に移動しました。
perlapi, perlintern, perlmodlib and perltoc are now all generated at build time, rather than being shipped as part of the release.
perlapi, perlintern, perlmodlib, perltoc はリリースの 一部としてではなく、全てビルド時に生成されるようになりました。
パフォーマンスの向上¶
-
A new internal cache means that
isa()
will often be faster.新しい内部キャッシュにより、
isa()
はしばしばより速くなります。 -
Under
use locale
, the locale-relevant information is now cached on read-only values, such as the list returned bykeys %hash
. This makes operations such assort keys %hash
in the scope ofuse locale
much faster.use locale
の元では、ロケール関係の情報は、keys %hash
で 返されるリストのように、読み込み専用値としてキャッシュされるように なりました。 これによって、use locale
でのsort keys %hash
のような操作が とても速くなります。 -
Empty
DESTROY
methods are no longer called.空の
DESTROY
メソッドはもはや呼び出されなくなります。
インストールと設定の改良¶
ext/ reorganisation¶
(ext/ の再構成)
The layout of directories in ext has been revised. Specifically, all extensions are now flat, and at the top level, with /
in pathnames replaced by -
, so that ext/Data/Dumper/ is now ext/Data-Dumper/, etc. The names of the extensions as specified to Configure, and as reported by %Config::Config
under the keys dynamic_ext
, known_extensions
, nonxs_ext
and static_ext
have not changed, and still use /
. Hence this change will not have any affect once perl is installed. However, Attribute::Handlers
, Safe
and mro
have now become extensions in their own right, so if you run Configure with options to specify an exact list of extensions to build, you will need to change it to account for this.
ext ディレクトリのレイアウトが見直されました。 特に、全てのエクステンションはフラットにトップレベルに置かれ、 パス名中の /
は -
に置き換えられます; 従って、 ext/Data/Dumper/ は ext/Data-Dumper/ のようになります。 エクステンションの名前のうち、Configure で指定されるもの、 dynamic_ext
, known_extensions
, nonxs_ext
, static_ext
で %Config::Config
によって報告されるものは変更なしで、/
を 使い続けます。 従ってこの変更は一旦 perl がインストールされれば何の影響もありません。 しかし、Attribute::Handlers
, Safe
, mro
が新たに独自の権限を持つ エクステンションとなりましたので、もし Configure をビルドする エクステンションの正確なリストを指定するオプション付きで実行する場合、 これらのために変更する必要があるでしょう。
For 5.10.2, it is planned that many dual-life modules will have been moved from lib to ext; again this will have no effect on an installed perl, but will matter if you invoke Configure with a pre-canned list of extensions to build.
5.10.2 では、多くの 2 重管理されているモジュールが lib から ext に 移動することが計画されています; やはりこれはインストールされた perl には何の変更もありませんが、 もし予め設定されたビルドするエクステンションのリストを使って Configure を起動するときには影響があります。
設定の改良¶
If vendorlib
and vendorarch
are the same, then they are only added to @INC
once.
vendorlib
と vendorarch
が同じなら、@INC
には 1 回だけ 追加されます。
$Config{usedevel}
and the C-level PERL_USE_DEVEL
are now defined if perl is built with -Dusedevel
.
もし perl が -Dusedevel
付きでビルドされたなら、 $Config{usedevel}
と C レベルの PERL_USE_DEVEL
が定義されるように なりました。
Configure will enable use of -fstack-protector
, to provide protection against stack-smashing attacks, if the compiler supports it.
Configure は、もしコンパイラが対応しているなら、 スタック破壊攻撃に対する防御のために、-fstack-protector
の使用を 有効にします。
Configure will now determine the correct prototypes for re-entrant functions, and for gconvert
, if you are using a C++ compiler rather than a C compiler.
Configure は、もし C コンパイラでなく C++ コンパイラを使うなら、 再入可能な関数と gconvert
のための正しいプロトタイプを 決定するようになりました。
On Unix, if you build from a tree containing a git repository, the configuration process will note the commit hash you have checked out, for display in the output of perl -v
and perl -V
. Unpushed local commits are automatically added to the list of local patches displayed by perl -V
.
Unix では、もし git レポジトリを含むツリーからビルドするなら、 設定プロセスは perl -v
と perl -V
の出力での表示のために、 チェックアウトしたコミットハッシュを記録します。 プッシュされないローカルのコミットは自動的に perl -V
によって表示されるローカルパッチの一覧に追加されます。
コンパイルの改良¶
As part of the flattening of ext, all extensions on all platforms are built by make_ext.pl. This replaces the Unix-specific ext/util/make_ext, VMS-specific make_ext.com and Win32-specific win32/buildext.pl.
ext のフラット化の一部として、全てのプラットフォームの全ての エクステンションは make_ext.pl でビルドされます。 これは Unix 固有の ext/util/make_ext、VMS 固有の make_ext.com、 Win32 固有の win32/buildext.pl を置き換えます。
プラットフォーム固有の変更¶
- AIX
-
Removed libbsd for AIX 5L and 6.1. Only flock() was used from libbsd.
AIX 5L と 6.1 のための libbsd が取り除かれました。 flock() だけが libbsd を使っていました。
Removed libgdbm for AIX 5L and 6.1. The libgdbm is delivered as an optional package with the AIX Toolbox. Unfortunately the 64 bit version is broken.
AIX 5L and 6.1 のための libgdbm が取り除かれました。 libgdbm は AIX Toolbox の追加パッケージとして配布されています。 残念ながら 64 ビット版は壊れています。
Hints changes mean that AIX 4.2 should work again.
AIX 4.2 で再び動作するようにヒントが変更されました。
- Cygwin
-
On Cygwin we now strip the last number from the DLL. This has been the behaviour in the cygwin.com build for years. The hints files have been updated.
Cygwin においては、DLL から最後の番号を取り除くことにしました。 これは何年間も cygwin.com のビルドの振る舞いとなっています。 ヒントファイルが更新されました。
- FreeBSD
-
The hints files now identify the correct threading libraries on FreeBSD 7 and later.
ヒントファイルは FreeBSD 7 以降での正しいスレッドライブラリを 識別するようになりました。
- Irix
-
We now work around a bizarre preprocessor bug in the Irix 6.5 compiler:
cc -E -
unfortunately goes into K&R mode, butcc -E file.c
doesn't.Irix 6.5 コンパイラのプリプロセッサにある奇妙なバグを回避するように なりました:
cc -E -
は残念ながら K&R モードになりますが、cc -E file.c
では なりません。 - Haiku
-
Patches from the Haiku maintainers have been merged in. Perl should now build on Haiku.
Haiku 管理者からのパッチがマージされました。 Perl は Haiku でビルドできるようになったはずです。
- MirOS BSD
-
Perl should now build on MirOS BSD.
Perl は MirOS BSD でビルドできるようになったはずです。
- NetBSD
-
Hints now supports versions 5.*.
ヒントがバージョン 5.* に対応しました。
- Stratus VOS
-
Various changes from Stratus have been merged in.
Stratus からの様々な変更がマージされました。
- Symbian
-
There is now support for Symbian S60 3.2 SDK and S60 5.0 SDK.
Symbian S60 3.2 SDK と S60 5.0 SDK に対応するようになりました。
- Win32
-
Improved message window handling means that
alarm
andkill
messages will no longer be dropped under race conditions.メッセージウィンドウの扱いが改良され、
alarm
とkill
のメッセージが 競合状態でも欠落しなくなりました。 - VMS
-
Reads from the in-memory temporary files of
PerlIO::scalar
used to fail if$/
was set to a numeric reference (to indicate record-style reads). This is now fixed.PerlIO::scalar
のメモリ内一時ファイルからの読み込みは、$/
が(レコード風読み込みを示すために)数値リファレンスにセットされていると 失敗していました。 これは修正されました。VMS now supports
getgrgid
.VMS が
getgrgid
に対応するようになりました。Many improvements and cleanups have been made to the VMS file name handling and conversion code.
VMS ファイル名の扱いと変換に関するコードに対して多くの改良と整理が 行われました。
Enabling the
PERL_VMS_POSIX_EXIT
logical name now encodes a POSIX exit status in a VMS condition value for better interaction with GNV's bash shell and other utilities that depend on POSIX exit values. See "$?" in perlvms for details.論理名
PERL_VMS_POSIX_EXIT
を有効にすることで、VMS 条件値を POSIX 返りステータスに変換し、GNV の bash シェルやその他の POSIX 返り値に 依存しているユーティリティとの相互作用を高めます。 詳細については "$?" in perlvms を参照してください。
バグ修正の抜粋¶
-
5.10.0 inadvertently disabled an optimisation, which caused a measurable performance drop in list assignment, such as is often used to assign function parameters from
@_
. The optimisation has been re-instated, and the performance regression fixed.5.10.0 では不注意によって最適化が無効化されていたため、 例えば
@_
から関数の引数への代入でよく使われるような、 リスト代入において目に見えるほどの性能低下を引き起こしていました。 この最適化は再導入され、性能面の退行が修正されました。 -
Fixed memory leak on
while (1) { map 1, 1 }
[RT #53038].while (1) { map 1, 1 }
でのメモリリークが修正されました [RT #53038]。 -
Some potential coredumps in PerlIO fixed [RT #57322,54828].
PerlIO でのコアダンプの可能性が修正されました [RT #57322,54828]。
-
The debugger now works with lvalue subroutines.
デバッガは左辺値サブルーチンでも動作するようになりました。
-
The debugger's
m
command was broken on modules that defined constants [RT #61222].定数が定義されたモジュールでは、デバッガの
m
コマンドが壊れていました [RT #61222]。 -
crypt()
and string complement could return tainted values for untainted arguments [RT #59998].crypt()
と文字列補完は汚染されていない引数から汚染された値を返すことが ありました [RT #59998]. -
The
-i.suffix
command-line switch now recreates the file using restricted permissions, before changing its mode to match the original file. This eliminates a potential race condition [RT #60904].-i.suffix
コマンドラインオプションは、元のファイルに一致するように モードを変更する前に、制限されたパーミッションを使ってファイルを 再作成します。 これは競合条件の可能性を除去します [RT #60904]。 -
On some Unix systems, the value in
$?
would not have the top bit set ($? & 128
) even if the child core dumped.Unix システムによっては、
$?
の値が、子がコアダンプしたときでも 最上位ビット ($? & 128
) がされないことがありました。 -
Under some circumstances, $^R could incorrectly become undefined [RT #57042].
状況によっては、$^R が間違って未定義になりました [RT #57042]。
-
(XS) In various hash functions, passing a pre-computed hash to when the key is UTF-8 might result in an incorrect lookup.
(XS) 様々なハッシュ関数において、キーが UTF-8 の時に予め計算された ハッシュを渡すと、読み出しを間違うことがありました。
-
(XS) Including XSUB.h before perl.h gave a compile-time error [RT #57176].
(XS) perl.h の前に XSUB.h をインクルードするとコンパイル時エラーが 発生していました [RT #57176]。
-
$object->isa('Foo')
would report false if the packageFoo
didn't exist, even if the object's@ISA
containedFoo
.$object->isa('Foo')
は、たとえ オブジェクトの@ISA
にFoo
を 含んでいても、パッケージにFoo
が存在していなければ偽を 返すようになりました。 -
Various bugs in the new-to 5.10.0 mro code, triggered by manipulating
@ISA
, have been found and fixed.5.10.0 で新規導入された mro コードで、
@ISA
を操作することによって 引き起こされる様々なバグが発見され、修正されました。 -
Bitwise operations on references could crash the interpreter, e.g.
$x=\$y; $x |= "foo"
[RT #54956].$x=\$y; $x |= "foo"
のような、リファレンスに対するビット単位演算子が インタプリタをクラッシュさせることがありました [RT #54956]。 -
Patterns including alternation might be sensitive to the internal UTF-8 representation, e.g.
代替を含むパターンが内部 UTF-8 表現に敏感になっていました;
my $byte = chr(192); my $utf8 = chr(192); utf8::upgrade($utf8); $utf8 =~ /$byte|X}/i; # failed in 5.10.0
-
Within UTF8-encoded Perl source files (i.e. where
use utf8
is in effect), double-quoted literal strings could be corrupted where a\xNN
,\0NNN
or\N{}
is followed by a literal character with ordinal value greater than 255 [RT #59908].UTF8-エンコードされた (つまり
use utf8
が有効な) Perl ソースファイル内で、 ダブルクォートされたリテラル文字列が、 could be corrupted where a\xNN
,\0NNN
,\N{}
の後に その値が 255 を超えるリテラル文字が続いている場合に、壊れることがありました [RT #59908]。 -
B::Deparse
failed to correctly deparse various constructs:readpipe STRING
[RT #62428],CORE::require(STRING)
[RT #62488],sub foo(_)
[RT #62484].B::Deparse
は様々な構造を逆パースするのに失敗していました:readpipe STRING
[RT #62428],CORE::require(STRING)
[RT #62488],sub foo(_)
[RT #62484]. -
Using
setpgrp()
with no arguments could corrupt the perl stack.setpgrp()
を引数なしで使うと、perl のスタックが壊れることがありました。 -
The block form of
eval
is now specifically trappable bySafe
andops
. Previously it was erroneously treated like stringeval
.ブロック形式の
eval
は特別にSafe
とops
でトラップ可能に なりました。 以前は間違って文字列のeval
のように扱われていました。 -
In 5.10.0, the two characters
[~
were sometimes parsed as the smart match operator (~~
) [RT #63854].5.10.0 では、2 つの文字
[~
が時々スマートマッチング演算子 (~~
) としてパースされていました [RT #63854]。 -
In 5.10.0, the
*
quantifier in patterns was sometimes treated as{0,32767}
[RT #60034, #60464]. For example, this match would fail:5.10.0 では、パターン中の
*
量指定子が時々{0,32767}
として扱われていました[RT #60034, #60464]。 例えば、以下はマッチングに失敗していました:("ab" x 32768) =~ /^(ab)*$/
-
shmget
was limited to a 32 bit segment size on a 64 bit OS [RT #63924].shmget
は 64 ビット OS で 32 ビットセグメントサイズに制限されていました [RT #63924]。 -
Using
next
orlast
to exit agiven
block no longer produces a spurious warning like the following:given
ブロックから出るためにnext
やlast
を使ったときに、 以下のような誤った警告が出力されなくなりました:Exiting given via last at foo.pl line 123
-
On Windows,
'.\foo'
and'..\foo'
were treated differently than'./foo'
and'../foo'
bydo
andrequire
[RT #63492].Windows では、
do
とrequire
において、'.\foo'
と'..\foo'
が'./foo'
と'../foo'
とは異なって扱われていました [RT #63492]。 -
Assigning a format to a glob could corrupt the format; e.g.:
以下のように、フォーマットからグロブへの代入を行うと、 フォーマットが壊れることがありました:
*bar=*foo{FORMAT}; # foo format now bad
-
Attempting to coerce a typeglob to a string or number could cause an assertion failure. The correct error message is now generated,
Can't coerce GLOB to $type
.型グロブを文字列や数値に変換しようとすると、アサーション失敗が 発生することがありました。 正しいエラーメッセージである
Can't coerce GLOB to $type
が 生成されるようになりました。 -
Under
use filetest 'access'
,-x
was using the wrong access mode. This has been fixed [RT #49003].use filetest 'access'
中に、-x
は間違ったアクセスモードを 使っていました。 これは修正されました [RT #49003]。 -
length
on a tied scalar that returned a Unicode value would not be correct the first time. This has been fixed.Unicode 値を返す tie されたスカラに対する
length
が、初回は 正しく動作していませんでした。 これは修正されました。 -
Using an array
tie
inside in arraytie
could SEGV. This has been fixed. [RT #51636]配列
tie
の中で配列tie
を使うと SEGV になることがありました。 これは修正されました。 [RT #51636] -
A race condition inside
PerlIOStdio_close()
has been identified and fixed. This used to cause various threading issues, including SEGVs.PerlIOStdio_close()
内での競合条件が識別され、修正されました。 これは SEGV を含む、様々なスレッドの問題を引き起こしていました。 -
In
unpack
, the use of()
groups in scalar context was internally placing a list on the interpreter's stack, which manifested in various ways, including SEGVs. This is now fixed [RT #50256].unpack
で、スカラコンテキストで()
グループを使うと、内部的に インタプリタのスタックにリストが置かれ、SEGV を含む様々な現象が 起きていました。 これは修正されました [RT #50256]。 -
Magic was called twice in
substr
,\&$x
,tie $x, $m
andchop
. These have all been fixed.substr
,\&$x
,tie $x, $m
,chop
で、マジックが 2 回 呼び出されていました。 これらは全て修正されました。 -
A 5.10.0 optimisation to clear the temporary stack within the implicit loop of
s///ge
has been reverted, as it turned out to be the cause of obscure bugs in seemingly unrelated parts of the interpreter [commit ef0d4e17921ee3de].5.10.0 での、
s///ge
の暗黙のループ中の一時的なスタックをクリアするという 最適化は差し戻されました; これがインタプリタの無関係な部分での 不明瞭なバグの原因となっていたからです [commit ef0d4e17921ee3de]。 -
The line numbers for warnings inside
elsif
are now correct.elsif
内での警告の行番号が正しくなりました。 -
The
..
operator now works correctly with ranges whose ends are at or close to the values of the smallest and largest integers...
演算子は、どちらかの端が整数の最小値や最大値に近い値でも 正しく動作するようになりました。 -
binmode STDIN, ':raw'
could lead to segmentation faults on some platforms. This has been fixed [RT #54828].binmode STDIN, ':raw'
は、プラットフォームによってはセグメンテーション フォルトを引き起こすことがありました。 これは修正されました [RT #54828]。 -
An off-by-one error meant that
index $str, ...
was effectively being executed asindex "$str\0", ...
. This has been fixed [RT #53746].index $str, ...
が実際にはindex "$str\0", ...
として実行されるという 境界条件のエラーがありました。 これは修正されました [RT #53746]。 -
Various leaks associated with named captures in regexes have been fixed [RT #57024].
正規表現での名前付き捕捉に関連する様々なリークが修正されました [RT #57024]。
-
A weak reference to a hash would leak. This was affecting
DBI
[RT #56908].ハッシュへの弱いリファレンスがリークを起こすことがありました。 これは
DBI
に影響を与えていました [RT #56908]。 -
Using (?|) in a regex could cause a segfault [RT #59734].
正規表現で (?|) を使うとセグメンテンションフォールトを引き起こすことが ありました [RT #59734]。
-
Use of a UTF-8
tr//
within a closure could cause a segfault [RT #61520].クロージャ内で UTF-8 の
tr//
を使うとセグメンテンションフォールトを 引き起こすことがありました [RT #61520]。 -
Calling
sv_chop()
or otherwise upgrading an SV could result in an unaligned 64-bit access on the SPARC architecture [RT #60574].sv_chop()
やその他で SV を昇格させると、SPARC アーキテクチャでは アライメントされていない 64-ビットアクセスをする場合がありました [RT #60574]。 -
In the 5.10.0 release,
inc_version_list
would incorrectly list5.10.*
after5.8.*
; this affected the@INC
search order [RT #67628].5.10.0 リリースでは、
inc_version_list
は間違って5.8.*
の後に5.10.*
をリストしていました; これは@INC
の検索順に影響を 与えていました [RT #67628]。 -
In 5.10.0,
pack "a*", $tainted_value
returned a non-tainted value [RT #52552].5.10.0 では、
pack "a*", $tainted_value
は汚染されていない値を 返していました [RT #52552]。 -
In 5.10.0,
printf
andsprintf
could produce the fatal errorpanic: utf8_mg_pos_cache_update
when printing UTF-8 strings [RT #62666].5.10.0 では、
printf
とsprintf
で UTF-8 文字列を表示するときに 致命的エラーpanic: utf8_mg_pos_cache_update
が出ることがありました [RT #62666]。 -
In the 5.10.0 release, a dynamically created
AUTOLOAD
method might be missed (method cache issue) [RT #60220,60232].5.10.0 リリースでは、動的に作成した
AUTOLOAD
メソッドが失われることが ありました (メソッドキャッシュの問題です) [RT #60220,60232]。 -
In the 5.10.0 release, a combination of
use feature
and//ee
could cause a memory leak [RT #63110].5.10.0 リリースでは、
use feature
と//ee
の組み合わせで メモリリークを起こすことがありました [RT #63110]。 -
-C
on the shebang (#!
) line is once more permitted if it is also specified on the command line.-C
on the shebang line used to be a silent no-op if it was not also on the command line, so perl 5.10.0 disallowed it, which broke some scripts. Now perl checks whether it is also on the command line and only dies if it is not [RT #67880].shebang (
#!
) 行 での-C
は、コマンドラインでも指定されている場合は 再び許可されるようになりました。 shebang 行での-C
は、もし コマンドラインで指定されていなかった 場合には暗黙に no-op となっていました; これは perl 5.10.0 では 不許可となりましたが、これによって動かなくなるスクリプトもありました。 perl はコマンドラインでも指定されているかどうかを調べて、 指定されていないときにだけ die するようになりました [RT #67880]。 -
In 5.10.0, certain types of re-entrant regular expression could crash, or cause the following assertion failure [RT #60508]:
5.10.0 で、ある種の再入可能な正規表現によってクラッシュしたり、 以下のアサーション失敗を出力したりすることがありました [RT #60508]:
Assertion rx->sublen >= (s - rx->subbeg) + i failed
新しい、または変更された診断メッセージ¶
panic: sv_chop %s
-
This new fatal error occurs when the C routine
Perl_sv_chop()
was passed a position that is not within the scalar's string buffer. This could be caused by buggy XS code, and at this point recovery is not possible.これは、C ルーチン
Perl_sv_chop()
に、スカラの文字列バッファ内でない 位置が渡された時に発生する、新しい致命的エラーです。 これはバグっぽい XS コードによって引き起こされ、この時点では 回復は不可能です。 Can't locate package %s for the parents of %s
-
This warning has been removed. In general, it only got produced in conjunction with other warnings, and removing it allowed an ISA lookup optimisation to be added.
この警告は取り除かれました。 一般的に、これは他の警告と同時にのみ生成され、これを取り除くことによって ISA 読み出しの最適化が追加できるようになりました。
v-string in use/require is non-portable
-
This warning has been removed.
この警告は取り除かれました。
Deep recursion on subroutine "%s"
-
It is now possible to change the depth threshold for this warning from the default of 100, by recompiling the perl binary, setting the C pre-processor macro
PERL_SUB_DEPTH_WARN
to the desired value.この警告が出る深さの閾値は、デフォルトでは 100 ですが、C プリプロセッサ マクロ
PERL_SUB_DEPTH_WARN
を好みの値に変えて perl バイナリを 再コンパイルすることによって、変更できるようになりました。
内部の変更¶
-
The J.R.R. Tolkien quotes at the head of C source file have been checked and proper citations added, thanks to a patch from Tom Christiansen.
C ソースファイルの先頭にある J.R.R. Tolkien の引用文がチェックされ、 適切な言及が追加されました; Tom Christiansen からのパッチに感謝します。
-
vcroak()
now accepts a null first argument. In addition, a full audit was made of the "not NULL" compiler annotations, and those for several other internal functions were corrected.vcroak()
は最初の引数として null も受け付けるようになりました。 さらに、「非 NULL」に関するコンパイラ注釈の完全な監査が行われ、 その他のいくつかの内部関数が修正されました。 -
New macros
dSAVEDERRNO
,dSAVE_ERRNO
,SAVE_ERRNO
,RESTORE_ERRNO
have been added to formalise the temporary saving of theerrno
variable.errno
変数を一時的に補完することを形式化するための、dSAVEDERRNO
,dSAVE_ERRNO
,SAVE_ERRNO
,RESTORE_ERRNO
という 新しいマクロが追加されました。 -
The function
Perl_sv_insert_flags
has been added to augmentPerl_sv_insert
.Perl_sv_insert
関数を拡大するために、Perl_sv_insert_flags
関数が 追加されました。 -
The function
Perl_newSV_type(type)
has been added, equivalent toPerl_newSV()
followed byPerl_sv_upgrade(type)
.Perl_newSV()
の後Perl_sv_upgrade(type)
を実行するのと等価な、Perl_newSV_type(type)
関数が追加されました。 -
The function
Perl_newSVpvn_flags()
has been added, equivalent toPerl_newSVpvn()
and then performing the action relevant to the flag.Perl_newSVpvn_flags()
関数が追加されました; これはPerl_newSVpvn()
と 等価で、それからフラグに関連する動作を行います。Two flag bits are currently supported.
現在のところ二つのフラグビットに対応しています。
SVf_UTF8
-
This will call
SvUTF8_on()
for you. (Note that this does not convert an sequence of ISO 8859-1 characters to UTF-8). A wrapper,newSVpvn_utf8()
is available for this.これはあなたのために
SvUTF8_on()
を呼び出します。 (これは ISO 8859-1 文字のシーケンスを UTF-8 に変換しないことに 注意してください。) これのためのラッパであるnewSVpvn_utf8()
が利用可能です。 SVs_TEMP
-
Call
sv_2mortal()
on the new SV.新しい SV に対して
sv_2mortal()
を呼び出します。
There is also a wrapper that takes constant strings,
newSVpvs_flags()
.定数文字列を取るラッパである
newSVpvs_flags()
もあります。 -
The function
Perl_croak_xs_usage
has been added as a wrapper toPerl_croak
.Perl_croak
へのラッパとして、Perl_croak_xs_usage
関数が追加されました。 -
The functions
PerlIO_find_layer
andPerlIO_list_alloc
are now exported.PerlIO_find_layer
関数とPerlIO_list_alloc
関数が エクスポートされるようになりました。 -
PL_na
has been exterminated from the core code, replaced by local STRLEN temporaries, or*_nolen()
calls. Either approach is faster thanPL_na
, which is a pointer deference into the interpreter structure under ithreads, and a global variable otherwise.PL_na
はコアコードから全て取り除かれ、ローカルな STRLEN テンポラリか*_nolen()
呼び出しに置き換えられました。 どちらの手法も、ithreads ではインタプリタ構造体へ、さもなければ グローバル変数へポインタを守るPL_na
よりも高速です。 -
Perl_mg_free()
used to leave freed memory accessible via SvMAGIC() on the scalar. It now updates the linked list to remove each piece of magic as it is freed.Perl_mg_free()
は、スカラでの SvMAGIC() 経由でアクセスできる 開放されたメモリをそのままにしていました。 それぞれのマジックのかけらが開放されるごとに削除されるように、 リンクリストが更新されるようになりました。 -
Under ithreads, the regex in
PL_reg_curpm
is now reference counted. This eliminates a lot of hackish workarounds to cope with it not being reference counted.ithreads において、
PL_reg_curpm
内の正規表現は参照カウントを 行うようにありました。 これにより、参照カウントを行っていないことによる多くのハックっぽい 回避方法が不要になります。 -
Perl_mg_magical()
would sometimes incorrectly turn onSvRMAGICAL()
. This has been fixed.Perl_mg_magical()
は時々間違ってSvRMAGICAL()
を作動させていました。 これは修正されました。 -
The public IV and NV flags are now not set if the string value has trailing "garbage". This behaviour is consistent with not setting the public IV or NV flags if the value is out of range for the type.
IV と NV の public フラグは、もし文字列値の末尾に「ゴミ」が ついている場合はセットされなくなりました。 この振る舞いは、値が型の範囲を超えているときに IV や NV の public フラグがセットされないことと一貫しています。
-
SV allocation tracing has been added to the diagnostics enabled by
-Dm
. The tracing can alternatively output via thePERL_MEM_LOG
mechanism, if that was enabled when the perl binary was compiled.-Dm
で有効になる診断に、SV 割り当てトレースが追加されました。 トレースは、もし perl バイナリがコンパイルされたときにPERL_MEM_LOG
機構が有効になっていた場合には、これを通しても出力されます。 -
Uses of
Nullav
,Nullcv
,Nullhv
,Nullop
,Nullsv
etc have been replaced byNULL
in the core code, and non-dual-life modules, asNULL
is clearer to those unfamiliar with the core code.Nullav
,Nullcv
,Nullhv
,Nullop
,Nullsv
などは、 コアコードおよび 2 重管理されていないモジュールではNULL
に置き換えられました;NULL
はコアコードに親しんでいなくても より明確だからです。 -
A macro
MUTABLE_PTR(p)
has been added, which on (non-pedantic) gcc will not cast awayconst
, returning avoid *
. MacrosMUTABLE_SV(av)
,MUTABLE_SV(cv)
etc build on this, casting toAV *
etc without casting awayconst
. This allows proper compile-time auditing ofconst
correctness in the core, and helped picked up some errors (now fixed).MUTABLE_PTR(p)
マクロが追加されました; これは (pedantic でない) gcc ではconst
状態を捨てずに、void *
を返します。MUTABLE_SV(av)
,MUTABLE_SV(cv)
などのマクロはこれを使って 作成され、const
状態を捨てることなくAV *
などにキャストします。 これによりconst
の正当性の適切なコンパイル時の監査が可能になり、 いくつかのエラーの発見に役立ちました(これらは修正されました)。 -
Macros
mPUSHs()
andmXPUSHs()
have been added, for pushing SVs on the stack and mortalizing them.SV をスタックにプッシュし、それを揮発化させるための、
mPUSHs()
とmXPUSHs()
のマクロが追加されました。 -
Use of the private structure
mro_meta
has changed slightly. Nothing outside the core should be accessing this directly anyway.プライベート構造体
mro_meta
の使用が少し変更されました。 どちらにしろ、コアの外側からこれにアクセスすることは出来ません。 -
A new tool,
Porting/expand-macro.pl
has been added, that allows you to view how a C preprocessor macro would be expanded when compiled. This is handy when trying to decode the macro hell that is the perl guts.新しいツールである
Porting/expand-macro.pl
が追加され、 コンパイル時に C プリプロセッサマクロがどのように展開されるかを見られます。 これは perl の内部でマクロを展開しようとする時に便利です。
新しいテスト¶
Many modules updated from CPAN incorporate new tests.
CPAN から更新された多くのモジュールに新しいテストが組み込まれました。
Several tests that have the potential to hang forever if they fail now incorporate a "watchdog" functionality that will kill them after a timeout, which helps ensure that make test
and make test_harness
run to completion automatically. (Jerry Hedden).
いくつかのテストは、テストが時間切れになった後に kill することで make test
と make test_harness
が自動的に実行を終了することを 確実にするために組み込まれた「番犬」機能で失敗すると、 ハングアップしてしまう可能性がありました (Jerry Hedden)。
Some core-specific tests have been added:
いくつかのコア固有のテストが追加されました:
- t/comp/retainedlines.t
-
Check that the debugger can retain source lines from
eval
.デバッガが
eval
からソース行を得られるかをチェックします。 - t/io/perlio_fail.t
-
Check that bad layers fail.
間違った層が失敗するかをチェックします。
- t/io/perlio_leaks.t
-
Check that PerlIO layers are not leaking.
PerlIO 層がリークしていないかをチェックします。
- t/io/perlio_open.t
-
Check that certain special forms of open work.
open のある種の特殊な形式が動作するかをチェックします。
- t/io/perlio.t
-
General PerlIO tests.
PerlIO を全体的にテストします。
- t/io/pvbm.t
-
Check that there is no unexpected interaction between the internal types
PVBM
andPVGV
.内部型
PVBM
とPVGV
の間で想定外の相互作用がないことをチェックします。 - t/mro/package_aliases.t
-
Check that mro works properly in the presence of aliased packages.
エイリアス化されたパッケージが存在したときに MRO が適切に動作するかを チェックします。
- t/op/dbm.t
-
Tests for
dbmopen
anddbmclose
.dbmopen
とdbmclose
をテストします。 - t/op/index_thr.t
-
Tests for the interaction of
index
and threads.index
とスレッドの相互作用をテストします。 - t/op/pat_thr.t
-
Tests for the interaction of esoteric patterns and threads.
難解なパターンとスレッドの相互作用をテストします。
- t/op/qr_gc.t
-
Test that
qr
doesn't leak.qr
がリークしていないことをテストします。 - t/op/reg_email_thr.t
-
Tests for the interaction of regex recursion and threads.
regex 再帰とスレッドの相互作用をテストします。
- t/op/regexp_qr_embed_thr.t
-
Tests for the interaction of patterns with embedded
qr//
and threads.組み込みの
qr//
があるパターンとスレッドの相互作用をテストします。 - t/op/regexp_unicode_prop.t
-
Tests for Unicode properties in regular expressions.
正規表現中の Unicode 特性をテストします。
- t/op/regexp_unicode_prop_thr.t
-
Tests for the interaction of Unicode properties and threads.
Unicode 特性とスレッドの相互作用をテストします。
- t/op/reg_nc_tie.t
-
Test the tied methods of
Tie::Hash::NamedCapture
.Tie::Hash::NamedCapture
の tie されたメソッドをテストします。 - t/op/reg_posixcc.t
-
Check that POSIX character classes behave consistently.
POSIX 文字クラスが一貫性を持って振る舞うかをチェックします。
- t/op/re.t
-
Check that exportable
re
functions in universal.c work.universal.c のエクスポート可能な
re
関数が動作するかをチェックします。 - t/op/setpgrpstack.t
-
Check that
setpgrp
works.setpgrp
が動作するかをチェックします。 - t/op/substr_thr.t
-
Tests for the interaction of
substr
and threads.substr
とスレッドの相互作用をテストします。 - t/op/upgrade.t
-
Check that upgrading and assigning scalars works.
スカラの昇格と代入が動作するかをチェックします。
- t/uni/lex_utf8.t
-
Check that Unicode in the lexer works.
文法解析器中の Unicode が動作するかをチェックします。
- t/uni/tie.t
-
Check that Unicode and
tie
work.Unicode と
tie
が動作するかをチェックします。
既知の問題¶
This is a list of some significant unfixed bugs, which are regressions from either 5.10.0 or 5.8.x.
以下はいくつかの重要な未修正のバグの一覧で、5.10.0 か 5.8.x からの 退行です。
-
List::Util::first
misbehaves in the presence of a lexical$_
(typically introduced bymy $_
or implicitly bygiven
). The variable which gets set for each iteration is the package variable$_
, not the lexical$_
[RT #67694].List::Util::first
は (典型的にはmy $_
やgiven
による) レキシカルな$_
の存在について振る舞いを間違えていました。 each の反復で設定される変数はレキシカルな$_
ではなくパッケージ変数の$_
です [RT #67694]。A similar issue may occur in other modules that provide functions which take a block as their first argument, like
同様の問題は、以下のように、最初の引数としてブロックを取る関数を提供している その他のモジュールにも発生するかもしれません。
foo { ... $_ ...} list
-
The
charnames
pragma may generate a run-time error when a regex is interpolated [RT #56444]:charnames
プラグマは、正規表現が変数展開されたときに実行時エラーを 出すことがあります [RT #56444]:use charnames ':full'; my $r1 = qr/\N{THAI CHARACTER SARA I}/; "foo" =~ $r1; # okay "foo" =~ /$r1+/; # runtime error
A workaround is to generate the character outside of the regex:
回避方法は、正規表現の外側で文字を生成することです:
my $a = "\N{THAI CHARACTER SARA I}"; my $r1 = qr/$a/;
-
Some regexes may run much more slowly when run in a child thread compared with the thread the pattern was compiled into [RT #55600].
正規表現によっては、パターンをコンパイルしたスレッドで実行するのに比べて 子スレッドではとても遅くなることがあります [RT #55600]。
非推奨¶
The following items are now deprecated.
以下のものは非推奨となりました。
-
Switch
is buggy and should be avoided. From perl 5.11.0 onwards, it is intended that any use of the core version of this module will emit a warning, and that the module will eventually be removed from the core (probably in perl 5.14.0). See "Switch statements" in perlsyn for its replacement.Switch
はバグが多いので避けるべきです。 perl 5.11.0 以降、このモジュールのコアバージョンを使うと警告が出力され、 最終的には(おそらく perl 5.14.0 で)コアから取り除かれます。 代替品については "Switch statements" in perlsyn を参照してください。 -
suidperl
will be removed in 5.12.0. This provides a mechanism to emulate setuid permission bits on systems that don't support it properly.suidperl
は 5.12.0 で取り除かれます。 これは setuid 許可ビットを正しく扱えないシステムで、これをエミュレートする 機構を提供しています。
謝辞¶
Some of the work in this release was funded by a TPF grant.
このリリースの作業の一部は TRF の助成金を受けています。
Nicholas Clark officially retired from maintenance pumpking duty at the end of 2008; however in reality he has put much effort in since then to help get 5.10.1 into a fit state to be released, including writing a considerable chunk of this perldelta.
Nicholas Clark は 2008 年末をもって公式にメンテナンス pumpking の役目から 引退しました; しかし、実際のところ彼はこの perldelta のかなり部分を 書くことを含む、5.10.1 をリリースできる状態にするために多くの 努力をしています。
Steffen Mueller and David Golden in particular helped getting CPAN modules polished and synchronised with their in-core equivalents.
特に Steffen Mueller と David Golden は CPAN モジュールを磨き上げて コア内部の等価物と同期させることを助けました。
Craig Berry was tireless in getting maint to run under VMS, no matter how many times we broke it for him.
Craig Berry は、何度私たちが中断させようとしても、飽きることなく VMS で動作するように管理しつつけました。
The other core committers contributed most of the changes, and applied most of the patches sent in by the hundreds of contributors listed in AUTHORS.
その他のコアコミッタはほとんどの変更を提供し、AUTHORS に上げられている 数百の貢献者によって送られたパッチのほとんどを適用しました。
(Sorry to all the people I haven't mentioned by name).
(ここで名前を触れなかった全ての人々に陳謝します)。
Finally, thanks to Larry Wall, without whom none of this would be necessary.
最後に、Larry Wall に感謝します; 彼がいなければこれら全ては不要でした。
バグ報告¶
If you find what you think is a bug, you might check the articles recently posted to the comp.lang.perl.misc newsgroup and the perl bug database at http://rt.perl.org/perlbug/ . There may also be information at http://www.perl.org/ , the Perl Home Page.
もしバグと思われるものを見つけたら、comp.lang.perl.misc ニュースグループに 最近投稿された記事や http://rt.perl.org/perlbug/ にある perl バグ データベースを確認してください。 Perl ホームページ、http://www.perl.org にも情報があります。
If you believe you have an unreported bug, please run the perlbug program included with your release. Be sure to trim your bug down to a tiny but sufficient test case. Your bug report, along with the output of perl -V
, will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
もしまだ報告されていないバグだと確信したら、そのリリースに含まれている perlbug プログラムをを実行してください。 バグの再現スクリプトを十分小さく、しかし有効なコードに切りつめることを 意識してください。バグレポートは perl -V の出力と一緒に perlbug@perl.org に送られ Perl porting チームによって解析されます。
If the bug you are reporting has security implications, which make it inappropriate to send to a publicly archived mailing list, then please send it to perl5-security-report@perl.org. This points to a closed subscription unarchived mailing list, which includes all the core committers, who be able to help assess the impact of issues, figure out a resolution, and help co-ordinate the release of patches to mitigate or fix the problem across all platforms on which Perl is supported. Please only use this address for security issues in the Perl core, not for modules independently distributed on CPAN.
もし報告しようとしているバグがセキュリティに関するもので、公開されている メーリングリストに送るのが不適切なものなら、 perl5-security-report@perl.org に送ってください。 このアドレスは、問題の影響を評価し、解決法を見つけ、Perl が対応している 全てのプラットフォームで問題を軽減または解決するパッチをリリースするのを 助けることが出来る、全てのコアコミッタが参加している非公開の メーリングリストになっています。 このアドレスは、独自に CPAN で配布されているモジュールではなく、 Perl コアのセキュリティ問題だけに使ってください。
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.
INSTALL ファイルに Perl のビルド方法があります。
The README file for general stuff.
README ファイルに一般的なことがあります。
The Artistic and Copying files for copyright information.
Artistic 及び Copying ファイルに著作権情報があります。