perl5201delta - perl v5.20.1 での変更点
この文書は 5.20.0 リリースと 5.20.1 リリースの変更点を記述しています。
5.18.0 のような以前のリリースから更新する場合は、まず 5.18.0 と 5.20.0 の違いについて記述している perl5200delta を読んでください。
故意に、5.20.0 から互換性がなくなるようにした変更はありません。 もし 5.20.0 との互換性がなければ、それはバグですので、報告をお願いします。 以下の "Reporting Bugs" を参照してください。
COW と、意図的に余分に割り当てた PV の問題を避けるための最適化は 無効化されました; これは、より重要な他の最適化を妨げ、一部のプラットフォームで 遅くなっていたからです。 [perl #121975]
レキシカル変数から文字列を返すのは一部の場合で遅くなっていました。 これは修正されました。 [perl #121977]
Config::Perl::V はバージョン 0.20 から 0.22 に更新されました。
対応する Perl のバージョンの一覧が更新され、パース時の問題が修正されました。
Exporter はバージョン 5.70 から 5.71 に更新されました。
文書の不正な POD 文法が修正されました。
ExtUtils::CBuilder はバージョン 0.280216 から 0.280217 に更新されました。
Android ビルドは -lperl と $Config::Config{perllibs}
の両方を リンクするようになりました。
File::Copy はバージョン 2.29 から 2.30 に更新されました。
copy
は読み込み専用ファイルを上書きしないことが文書に記述されました。
Module::CoreList はバージョン 3.11 から 5.020001 に更新されました。
対応する Perl バージョンの一覧が更新されました。
collection はバージョン 3.47 から 3.48 に更新されました。
Android のためにクロスコンパイルして、$Config::Config{sh}
がまだ 定義されていなかったとき、適切な場所にフォールバックするようになりました。 [perl #121963]
PerlIO::via はバージョン 0.14 から 0.15 に更新されました。
XS 実装に小さな移植性の向上が行われました。
Unicode::UCD はバージョン 0.57 から 0.58 に更新されました。
文書は多くの明確化と修正が行われました。
utf8 はバージョン 1.13 から 1.13_01 に更新されました。
文書は小さなフォーマットの向上が行われました。
version はバージョン 0.9908 から 0.9909 に更新されました。
外部ライブラリと Perl は、ロケールとは何かについて異なった考えを持っています。 これは、ロケールの数値セパレータが変更されるとバージョン文字列を パースするときに問題になります。 バージョンのパースは、ロケールを正しく扱えるようにパッチが当てられました。 [perl #121930]
av_len
- これは配列のサイズではなく、配列の最大のインデックスを 返すということが強調されました。 [perl #120386]
SvSetSV
は set magic を行わないことが記述されました。
sv_usepvn_flags
- malloc
ではなく NewX
を使うことを言及するように 文書が修正されました。 [perl #121869]
どこで NUL
は組み込みかも知れず、文字列を終端するのに必要であるかが 明確化されました。
-B
と -T
の意味が明確化されました。
-l
は、シンボリックリンクがファイルシステムで対応していないと偽を返すことが 記述されました。 [perl #121523]
each
, keys
, values
は、他の perl ハッシュと比較して、tie された ハッシュで異なった順序を出力することが記述されました。 [perl #121404]
exec LIST
と system LIST
は Win32 ではシェルに フォールバックするかも知れないことが記述されました。 exec PROGRAM LIST
と system PROGRAM LIST
の間接オブジェクト構文のみが 確実にシェルの使用を避けられます。 これは perlport にも記述されました。 [perl #122046]
our
の意味が明確化されました。 [perl #122132]
既にある SV バッファを変更する様々な方法が説明されました。 [perl #116925]
p5p メーリングリストに関する行動規範が "STANDARDS OF CONDUCT" in perlpolicy に文書化されました。
/x
修飾子は、エスケープすることでコメントが次の行に引き続かないことが 明確化されました。
無限ループのための条件なしの for
/while
の使用法が言及されました。
XS コードでのロケール問題の議論が追加されました。
以下の追加や変更が、警告や致命的エラーメッセージ含む診断出力に行われました。 完全な診断メッセージの一覧については、perldiag を参照してください。
Variable length lookbehind not implemented in regex m/%s/
Unicode の振る舞いに関する情報が追加されました。
Configure の -Dmksymlinks オプションが指定されたとき、Perl のビルドは もはやソースツリーに書き込まなくなりました。 [perl #121585]
一般的に、そして特に Android 用に、クロスコンパイルでのビルド対応が 改良されました。
Perl をビルドするときの設定ヒントで使われるアーキテクチャとバージョン番号が 修正されました。
c99 オプションは整理され、ヒントは SUNWspro 同様 solstudio も 探すようになり、ネイティブな setenv
のための対応が追加されました。
主に 7.3 より前のシステムに影響するような、機能チェックに関する古いバグが 修正されました。
MinGW では %lld
ではなく %I64d
を使うようになりました。
"sync_locale" in perlapi が追加されました。 XS コードでプログラムのロケールを変更することは避けるべきです。 それでも、Gtk
のような、XS から呼び出される一部の非 Perl ライブラリは それをします。 これが起きると、Perl はロケールが変更されたことを知らされる必要があります。 この関数は、Perl に戻る前にそれを行います。
正規表現の中のゼロ幅表明とコードブロックで pos
が間違った値を見るバグが 修正されました。 [perl #122460]
汚染された utf8 文字列に対して s///e
を使うと、"Malformed UTF-8 character (unexpected end of string)" 警告を出すことがありました。 これは修正されました。 [perl #122148]
system
及びその同類は、より多くの Android ビルドで適切に 動作するようになりました。
見落としによって、-Dtargetsh によって Configure に指定された値は 一部のビルドプロセスでは無視されることになっていました。 これにより、Android のためにクロスコンパイルされた perl は system
, exec
, 逆クォートに欠陥のあるバージョンになっていました: コマンドは /system/bin/sh ではなく /bin/sh を探し、デバイスの圧倒的多数では 失敗して、$!
に ENOENT
を設定していました。
Coverity によって検出された多くの問題が 修正されました。
Perl 5.20.1 は、Perl 5.20.0 以降、36 人の作者によって、 170 のファイルに約 12,000 行の変更を加えて、 約 4 ヶ月開発されてきました。
自動生成ファイル、文書、リリースツールを除くと、110 の .pm, .t, .c, .h ファイルに約 2,600 行の変更を加えました。
Perl は、活気のあるユーザーと開発者のコミュニティのおかげで 20 年を超えて 繁栄しています。 以下の人々が、Perl 5.20.1 になるための改良に貢献したことが分かっています:
Aaron Crane, Abigail, Alberto Simões, Alexandr Ciornii, Alexandre (Midnite) Jousset, Andrew Fresh, Andy Dougherty, Brian Fraser, Chris 'BinGOs' Williams, Craig A. Berry, Daniel Dragan, David Golden, David Mitchell, H.Merijn Brand, James E Keenan, Jan Dubois, Jarkko Hietaniemi, John Peacock, kafka, Karen Etheridge, Karl Williamson, Lukas Mai, Matthew Horsfall, Michael Bunk, Peter Martini, Rafael Garcia-Suarez, Reini Urban, Ricardo Signes, Shirakata Kentaro, Smylers, Steve Hay, Thomas Sibley, Todd Rinaldo, Tony Cook, Vladimir Marek, Yves Orton.
これはバージョンコントロール履歴から自動的に生成しているので、ほぼ確実に 不完全です。 特に、Perl バグトラッカーに問題を報告をしてくれた (とてもありがたい)貢献者の 名前を含んでいません。
このバージョンに含まれている変更の多くは、Perl コアに含まれている CPAN モジュール由来のものです。 私たちは Perl の発展を助けている CPAN コミュニティ全体に感謝します。
全ての Perl の歴史的な貢献者のより完全な一覧については、どうか Perl ソース 配布に含まれている AUTHORS を参照してください。
もしバグと思われるものを見つけたら、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 コアのセキュリティ問題だけに使ってください。
変更点の完全な詳細を見る方法については Changes ファイル。
Perl のビルド方法については INSTALL ファイル。
一般的なことについては README ファイル。
著作権情報については Artistic 及び Copying ファイル。