名前

perldelta - what is new for perl v5.12.1

perl5121delta - perl v5.12.1 での変更点

説明

This document describes differences between the 5.12.0 release and the 5.12.1 release.

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

If you are upgrading from an earlier release such as 5.10.1, first read perl5120delta, which describes differences between 5.10.1 and 5.12.0.

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

互換性がなくなる変更

There are no changes intentionally incompatible with 5.12.0. If any incompatibilities with 5.12.0 exist, they are bugs. Please report them.

故意に、5.12.0 から互換性がなくなるようにした変更はありません。 もし 5.12.0 との互換性がなければ、それはバグです。 どうか報告してください。

コアの拡張

Other than the bug fixes listed below, there should be no user-visible changes to the core language in this release.

このリリースでは、以下に記したバグ修正の他には、ユーザーに見えるような 形でのコア言語への変更はないはずです。

モジュールとプラグマ

プラグマの変更

  • We fixed exporting of is_strict and is_lax from version.

    version からの is_strictis_lax のエクスポートを修正しました。

    These were being exported with a wrapper that treated them as method calls, which caused them to fail. They are just functions, are documented as such, and should never be subclassed, so this patch just exports them directly as functions without the wrapper.

    これらは、メソッド呼び出しとして扱われるラッパとして エクスポートされていたので、失敗を引き起こしていました。 これらは文書化されている通りに単なる関数で決してサブクラス化されないので、 このパッチはラッパなしの関数として単にエクスポートします。

更新されたモジュール

  • We upgraded CGI.pm to version 3.49 to incorporate fixes for regressions introduced in the release we shipped with Perl 5.12.0.

    Perl 5.12.0 と共に配布されたバージョンでの退行を修正するために、 CGI.pm をバージョン 3.49 に更新しました。

  • We upgraded Pod::Simple to version 3.14 to get an improvement to \C\<\< \>\> parsing.

    \C\<\< \>\> のパースを改善するために、Pod::Simple をバージョン 3.14 に 更新しました。

  • We made a small fix to the CPANPLUS test suite to fix an occasional spurious test failure.

    時々間違ってテストが失敗することを修正するために、 CPANPLUS のテストを少し修正しました。

  • We upgraded Safe to version 2.27 to wrap coderefs retured by reval() and rdo().

    reval()rdo() から返されるコードリファレンスをラップするために、 Safe をバージョン 2.27 に更新しました。

既存の文書の変更

  • We added the new maintenance release policy to perlpolicy.pod

    新しい保守リリースポリシーを perlpolicy.pod に追加しました。

  • We've clarified the multiple-angle-bracket construct in the spec for POD in perlpodspec

    perlpodspec での POD の仕様として、多重山かっこ構造を明確化しました。

  • We added a missing explanation for a warning about := to perldiag.pod

    := に関する警告の説明が perldiag.pod から漏れていたのを追加しました。

  • We removed a false claim in perlunitut that all text strings are Unicode strings in Perl.

    We removed a false claim in perlunitut にある、全てのテキスト文字列が Perl は Unicode 文字列であるという間違った主張を削除しました。

  • We updated the Github mirror link in perlrepository to mirrors/perl, not github/perl

    perlrepository の Github ミラーのリンクを github/perl から mirrors/perl に更新しました。

  • We fixed a a minor error in perl5114delta.pod.

    perl5114delta.pod の細かいミスを修正しました。

  • We replaced a mention of the now-obsolete Switch.pm with given/when.

    今では非推奨になった Switch.pm から given/when へ、 言及を置き換えました。

  • We improved documentation about $sitelibexp/sitecustomize.pl in perlrun.

    perlrun での $sitelibexp/sitecustomize.pl に関する文書を 改良しました。

  • We corrected perlmodlib.pod which had unintentionally omitted a number of modules.

    意図せずに perlmodlib.pod から漏れた多くのモジュールを修正しました。

  • We updated the documentation for 'require' in perlfunc.pod relating to putting Perl code in @INC.

    perlfunc.pod の 'require' について、 @INC に Perl コードを置くことに 関係する文書を更新しました。

  • We reinstated some erroneously-removed documentation about quotemeta in perlfunc.

    perlfunc から間違って削除されたクォートメタに関する文書を復元しました。

  • We fixed an a2p example in perlutil.pod.

    perlutil.pod での a2p の例を修正しました。

  • We filled in a blank in perlport.pod with the release date of Perl 5.12.

    perlport.pod での Perl 5.12 のリリース日の空白を埋めました。

  • We fixed broken links in a number of perldelta files.

    多くの perldelta ファイルでの壊れたリンクを修正しました。

  • The documentation for Carp.pm incorrectly stated that the $Carp::Verbose variable makes cluck generate stack backtraces.

    Carp.pm の文書は、$Carp::Verbose 変数がスタックのバックトレースを 生成すると間違って記述されていました。

  • We fixed a number of typos in Pod::Functions

    Pod::Functions での多くのタイプミスを修正しました。

  • We improved documentation of case-changing functions in perlfunc.pod

    perlfunc.pod 内の、大文字小文字変換関数の文書を改良しました。

  • We corrected perlgpl.pod to contain the correct version of the GNU General Public License.

    正しいバージョンの GNU General Public License が含まれるように、 perlgpl.pod を修正しました。

テスト

テストの改良

  • t/op/sselect.t is now less prone to clock jitter during timing checks on Windows.

    t/op/sselect.t は、Windows でのタイミングチェック中の時間計測の ぶれが少なくなりました。

    sleep() time on Win32 may be rounded down to multiple of the clock tick interval.

    Win32 での sleep() 時間は clock tick 間隔の倍数に 切り捨てられるかもしれません。

  • lib/blib.t and lib/locale.t: Fixes for test failures on Darwin/PPC

    lib/blib.tlib/locale.t: Darwin/PPC でテストが失敗するのを 修正しました。

  • perl5db.t: Fix for test failures when Term::ReadLine::Gnu is installed.

    perl5db.t: Term::ReadLine::Gnu がインストールされていると テストが失敗するのを修正しました。

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

設定の改良

  • We updated INSTALL with notes about how to deal with broken dbm.h on OpenSUSE (and possibly other platforms)

    OpenSUSE (と、おそらく他のプラットフォーム) での壊れている dbm.h の 扱い方に関する注意に関して、INSTALL を更新しました。

バグ修正

  • A bug in how we process filetest operations could cause a segfault. Filetests don't always expect an op on the stack, so we now use TOPs only if we're sure that we're not stat'ing the _ filehandle. This is indicated by OPf_KIDS (as checked in ck_ftst).

    ファイルテスト演算子の処理の仕方によるバグにより、 セグメンテーションフォールトを引き起こしていました。 ファイルテストは常にスタック上のオペコードであるということを 期待しないので、_ ファイルハンドルを stat しているのではないことが 確実なときにのみ TOP を使うようになりました。 これは (ck_ftst でチェックされるように) OPf_KIDS として示されます。

    http://rt.perl.org/rt3/Public/Bug/Display.html?id=74542 も 参照してください。

  • When deparsing a nextstate op that has both a change of package (relative to the previous nextstate) and a label, the package declaration is now emitted first, because it is syntactically impermissible for a label to prefix a package declaration.

    (以前の nextstate と比べて)パッケージの変更とラベルの両方を持つ nextstate オペコードを逆パースするとき、パッケージ宣言がまず有効に なります; なぜならパッケージ宣言に前置するラベルは文法的に許可されないからです。

  • XSUB.h now correctly redefines fgets under PERL_IMPLICIT_SYS

    XSUB.h は PERL_IMPLICIT_SYS 時に正しく fgets を再定義するようになりました。

    http://rt.cpan.org/Public/Bug/Display.html?id=55049 も 参照してください。

  • utf8::is_utf8 now respects GMAGIC (e.g. $1)

    utf8::is_utf8 は GMAGIC (e.g. $1) を尊重するようになりました。

  • XS code using fputc() or fputs(): on Windows could cause an error due to their arguments being swapped.

    Windows で fputc()fputs() を使った XS コードが、 引数が入れ替わっていることによるエラーを引き起こすことがありました。

    http://rt.perl.org/rt3/Public/Bug/Display.html?id=72704 も 参照してください。

  • We fixed a small bug in lex_stuff_pvn() that caused spurious syntax errors in an obscure situation. It happened when stuffing was performed on the last line of a file and the line ended with a statement that lacked a terminating semicolon.

    lex_stuff_pvn() が不明確な条件で間違った文法エラーを起こすという小さい バグを修正しました。 これは詰め込みがファイルの最後の行に対して実行され、終端のセミコロンなしの 文で行が終わっているときに起こります。

    http://rt.perl.org/rt3/Public/Bug/Display.html?id=74006 も 参照してください。

  • We fixed a bug that could cause \N{} constructs followed by a single . to be parsed incorrectly.

    \N{} 構造の直後に単一の . があった場合に正しくパースされない問題を 修正しました。

    http://rt.perl.org/rt3/Public/Bug/Display.html?id=74978 も 参照してください。

  • We fixed a bug that caused when(scalar) without an argument not to be treated as a syntax error.

    引数なしの when(scalar) が文法エラーとして扱われないバグを修正しました。

    http://rt.perl.org/rt3/Public/Bug/Display.html?id=74114 も 参照してください。

  • We fixed a regression in the handling of labels immediately before string evals that was introduced in Perl 5.12.0.

    Perl 5.12.0 で導入された文字列の eval の直前のラベルの扱いに関する 退行を修正しました。

    http://rt.perl.org/rt3/Public/Bug/Display.html?id=74290 も 参照してください。

  • We fixed a regression in case-insensitive matching of folded characters in regular expressions introduced in Perl 5.12.0.

    Perl 5.12.0 で導入された、正規表現で、包まれた文字列に大文字小文字を 無視したマッチングの退行を修正しました。

    http://rt.perl.org/rt3/Public/Bug/Display.html?id=72998 も 参照してください。

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

HP-UX

  • Perl now allows -Duse64bitint without promoting to use64bitall on HP-UX

    HP-UX で use64bitall に昇格することなく -Duse64bitint を 使えるようになりました。

AIX

  • Perl now builds on AIX 4.2

    Perl を AIX 4.2 でビルドできるようになりました。

    The changes required work around AIX 4.2s' lack of support for IPv6, and limited support for POSIX sigaction().

    この変更のためには、AIX 4.2 が IPv6 対応していないことと、 POSIX sigaction() の対応が限定的であることを回避する必要がありました。

FreeBSD 7

  • FreeBSD 7 no longer contains /usr/bin/objformat. At build time, Perl now skips the objformat check for versions 7 and higher and assumes ELF.

    FreeBSD 7 はもはや /usr/bin/objformat を含んでいません。 ビルド時に、バージョンが 7 以上の場合は objformat のチェックを スキップし、ELF を仮定します。

VMS

  • It's now possible to build extensions on older (pre 7.3-2) VMS systems.

    古い (7.3-2 以前の) VMS システムでエクステンションを ビルドできるようになりました。

    DCL symbol length was limited to 1K up until about seven years or so ago, but there was no particularly deep reason to prevent those older systems from configuring and building Perl.

    DCL シンボルの長さは 7 年ほどの間最大 1K に制限されていましたが、 このような古いシステムのために Perl の設定、ビルドを妨げる 深い理由は特になくなりました。

  • We fixed the previously-broken -Uuseperlio build on VMS.

    以前は壊れていた VMS での -Uuseperlio ビルドを修正しました。

    We were checking a variable that doesn't exist in the non-default case of disabling perlio. Now we only look at it when it exists.

    perlio を無効にするというデフォルトではない場合に存在しない変数を チェックしていました。 今は、それが存在するときにだけ見ます。

  • We fixed the -Uuseperlio command-line option in configure.com.

    configure.com での -Uuseperlio コマンドラインオプションを修正しました。

    Formerly it only worked if you went through all the questions interactively and explicitly answered no.

    以前は、全ての質問に対話的に答えて、明示的に「いいえ」と答えた 時にのみ動作していました。

既知の問題

  • List::Util::first misbehaves in the presence of a lexical $_ (typically introduced by my $_ or implicitly by given). The variable which gets set for each iteration is the package variable $_, not the lexical $_.

    List::Util::first は (典型的には my $_given による) レキシカルな $_ の存在について振る舞いを間違えていました。 each の反復で設定される変数はレキシカルな $_ ではなくパッケージ変数の $_ です。

    A similar issue may occur in other modules that provide functions which take a block as their first argument, like

    同様の問題は、以下のように、最初の引数としてブロックを取る関数を提供している その他のモジュールにも発生するかもしれません。

        foo { ... $_ ...} list

    http://rt.perl.org/rt3/Public/Bug/Display.html?id=67694 も 参照してください。

  • Module::Load::Conditional and version have an unfortunate interaction which can cause CPANPLUS to crash when it encounters an unparseable version string. Upgrading to CPANPLUS 0.9004 or Module::Load::Conditional 0.38 from CPAN will resolve this issue.

    Module::Load::Conditionalversion の不幸な相互作用により、 パースできないバージョン文字列に遭遇したときに CPANPLUS がクラッシュするようになっていました。 CPAN から、CPANPLUS を 0.9004 に更新するか、 Module::Load::Conditional を 0.38 に更新することでこの問題を 解決できます。

Acknowledgements

Perl 5.12.1 represents approximately four weeks of development since Perl 5.12.0 and contains approximately 4,000 lines of changes across 142 files from 28 authors.

Perl 5.12.1 は、Perl 5.12.0 以降、28 人の作者によって、 142 ファイルに対しておよそ 4000 行以上の変更を加えて、 ほぼ 4 週間開発されてきました。

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

Perl は、活気のあるユーザーと開発者のコミュニティのおかげで 20 年を超えて繁栄しています。 以下の人々が、Perl 5.12.1 になるための改良に貢献したことが 分かっています:

Ævar Arnfjörð Bjarmason, Chris Williams, chromatic, Craig A. Berry, David Golden, Father Chrysostomos, Florian Ragwitz, Frank Wiegand, Gene Sullivan, Goro Fuji, H.Merijn Brand, James E Keenan, Jan Dubois, Jesse Vincent, Josh ben Jore, Karl Williamson, Leon Brocard, Michael Schwern, Nga Tang Chan, Nicholas Clark, Niko Tyni, Philippe Bruhat, Rafael Garcia-Suarez, Ricardo Signes, Steffen Mueller, Todd Rinaldo, Vincent Pit and Zefram.

バグ報告

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.

Perl のビルド方法については INSTALL ファイル。

The README file for general stuff.

一般的なことについては README ファイル。

The Artistic and Copying files for copyright information.

著作権情報については Artistic 及び Copying ファイル。