argra****@users*****
argra****@users*****
2015年 6月 10日 (水) 01:14:36 JST
Index: docs/perl/5.22.0/perl5220delta.pod diff -u docs/perl/5.22.0/perl5220delta.pod:1.2 docs/perl/5.22.0/perl5220delta.pod:1.3 --- docs/perl/5.22.0/perl5220delta.pod:1.2 Thu Jun 4 23:45:53 2015 +++ docs/perl/5.22.0/perl5220delta.pod Wed Jun 10 01:14:36 2015 @@ -1895,9 +1895,8 @@ =end original -Deparse C<$#_> as that instead of as C<$#{_}>. +C<$#{_}> としてではなく C<$#_> を逆パースするようになりました。 L<[perl #123947]|https://rt.perl.org/Ticket/Display.html?id=123947> -(TBT) =begin original @@ -1906,9 +1905,9 @@ =end original -BEGIN blocks at the end of the enclosing scope are now deparsed in the -right place. [perl #77452] -(TBT) +スコープの終わりにある BEGIN ブロックは正しい位置で +逆パースされるようになりました。 +[perl #77452] =begin original @@ -1982,8 +1981,9 @@ =end original -Non-ASCII characters are now consistently escaped in strings, instead of -some of the time. (There are still outstanding problems with regular +文字列中の非 ASCII 文字は、時々ではなく一貫して +エスケープされるようになりました。 +(There are still outstanding problems with regular expressions and identifiers that have not been fixed.) (TBT) @@ -2009,8 +2009,8 @@ =end original C<require(foo())>, C<do(foo())>, C<goto(foo())> and similar constructs with -loop controls are now deparsed correctly. The outer parentheses are not -optional. +loop controls are now deparsed correctly. +外側のかっこはオプションではありません。 (TBT) =begin original @@ -2059,9 +2059,9 @@ =end original -In deparsing feature bundles, C<B::Deparse> was emitting C<no feature;> first -instead of C<no feature ':all';>. This has been fixed. -(TBT) +機能バンドルの逆パース時に、C<B::Deparse> は C<no feature ':all';> ではなく +C<no feature;> を最初に出力していました。 +これは修正されました。 =begin original @@ -3760,7 +3760,6 @@ =end original -The specification of the pod language is changing so that UTF-8 でない場合の pod の(特に示されていない限り)デフォルト エンコーディングは ISO 8859-1 (Latin1) ではなく CP1252 であるというように pod 言語の仕様が変更されました。 @@ -4609,8 +4608,9 @@ 正規表現の中の大かっこ文字クラスの中で、 you had a range which has exactly one end of it specified using C<\N{}>, and -the other end is specified using a non-portable mechanism. Perl treats -the range as a Unicode range, that is, all the characters in it are +the other end is specified using a non-portable mechanism. +Perl は範囲を Unicode の範囲として扱います; これは、 +all the characters in it are considered to be the Unicode characters, and which may be different code points on some platforms Perl runs on. 例えば、C<[\N{U+06}-\x08]> は、C<[\N{U+06}-\N{U+08}]> と指定したかのように @@ -4808,14 +4808,12 @@ =end original -(D deprecated) You defined a character name which contained a no-break -space character. +(D deprecated) ノーブレークスペースを含む文字名を定義しました。 通常のスペースに変更してください。 -Usually these names are -defined in the C<:alias> import argument to C<use charnames>, but they -could be defined by a translator installed into C<$^H{charnames}>. See -L<charnames/CUSTOM ALIASES>. -(TBT) +普通はこれらの名前は C<use charnames> の C<:alias> インポート引数で +定義されますが、C<$^H{charnames}> でインストールされた変換器によって +定義されることもあります。 +L<charnames/CUSTOM ALIASES> を参照してください。 =item * @@ -5140,11 +5138,10 @@ =end original -This is not a new diagnostic, but in earlier releases was accidentally -not displayed if the transliteration contained wide characters. This is -now fixed, so that you may see this diagnostic in places where you -previously didn't (but should have). -(TBT) +これは新しい診断メッセージではありませんが、以前のリリースでは文字変換に +ワイド文字が含まれているときには誤って表示されていませんでした。 +これは修正されたので、以前は表示されていなかった (しかし表示されるべきで +あった)場所でこのメッセージが出るかもしれません。 =item * @@ -6203,8 +6200,9 @@ =end original Experimental support has been added to allow ops in the optree to locate -their parent, if any. This is enabled by the non-default build option -C<-DPERL_OP_PARENT>. It is envisaged that this will eventually become +their parent, if any. +これは非デフォルトビルドオプション C<-DPERL_OP_PARENT> で有効になります。 +It is envisaged that this will eventually become enabled by default, so XS code which directly accesses the C<op_sibling> field of ops should be updated to be future-proofed. (TBT) @@ -6258,8 +6256,7 @@ =end original -should now be written as: -(TBT) +これは以下のように書くべきです: for (; OpHAS_SIBLING(kid); kid = OpSIBLING(kid)) { ... } @@ -6319,8 +6316,9 @@ =end original -A C-level C<Perl_op_parent()> function and a Perl-level C<B::OP::parent()> -method have been added. The C function only exists under +C レベルの C<Perl_op_parent()> 関数と、Perl レベルの C<B::OP::parent()> +メソッドが追加されました。 +The C function only exists under C<PERL_OP_PARENT> builds (using it is build-time error on vanilla perls). C<B::OP::parent()> exists always, but on a vanilla build it always returns C<NULL>. Under C<PERL_OP_PARENT>, they return the parent @@ -6339,8 +6337,8 @@ C<PERL_OP_PARENT> was introduced in 5.21.2, but the interface was changed considerably in 5.21.11. If you updated your code before the -5.21.11 changes, it may require further revision. The main changes after -5.21.2 were: +5.21.11 changes, it may require further revision. +5.21.2 以降の主な変更点は: (TBT) =over 4 @@ -6511,7 +6509,8 @@ The C<CvPADLIST> field has been reused for a different internal purpose for XSUBs. So in particular, you can no longer rely on it being NULL as a -test of whether a CV is an XSUB. Use C<CvISXSUB()> instead. +test of whether a CV is an XSUB. +代わりに C<CvISXSUB()> を使ってください。 (TBT) =item * @@ -6642,7 +6641,8 @@ =end original -A new opcode class, C<< METHOP >>, has been introduced. It holds +新しいオペコードクラスである C<< METHOP >> が導入されました。 +It holds information used at runtime to improve the performance of class/object method calls. (TBT) @@ -6714,8 +6714,8 @@ C<CvGV> (which is not part of the API) is now a more complex macro, which may call a function and reify a GV. For those cases where it has been used as a boolean, C<CvHASGV> has been added, which will return true for CVs that -notionally have GVs, but without reifying the GV. C<CvGV> also returns a GV -now for lexical subs. +notionally have GVs, but without reifying the GV. +また、C<CvGV> はレキシカルサブルーチンに対して GV を返すようになりました。 L<[perl #120441]|https://rt.perl.org/Ticket/Display.html?id=120441> (TBT) @@ -6735,7 +6735,8 @@ Changing the program's locale should be avoided by XS code. Nevertheless, certain non-Perl libraries called from XS need to do so, such as C<Gtk>. When this happens, Perl needs to be told that the locale has -changed. Use this function to do so, before returning to Perl. +changed. +そうするために、Perl に戻る前にこの関数を使ってください。 (TBT) =item * @@ -6869,8 +6870,9 @@ =end original -Pad names are now always UTF-8. The C<PadnameUTF8> macro always returns -true. Previously, this was effectively the case already, but any support +パッド名は常に UTF-8 になりました。 +C<PadnameUTF8> マクロは常に真を返します。 +Previously, this was effectively the case already, but any support for two different internal representations of pad names has now been removed. (TBT) @@ -6989,8 +6991,9 @@ =end original -C<pack("D", $x)> and C<pack("F", $x)> now zero the padding on x86 long -double builds. Under some build options on GCC 4.8 and later, they used +C<pack("D", $x)> と C<pack("F", $x)> は、x86 long double ビルドで +ゼロパディングされるようになりました。 +Under some build options on GCC 4.8 and later, they used to either overwrite the zero-initialized padding, or bypass the initialized buffer entirely. これにより F<op/pack.t> が失敗していました。 @@ -7205,8 +7208,9 @@ =end original -The original visible value of C<$/> is now preserved when it is set to -an invalid value. Previously if you set C<$/> to a reference to an +C<$/> の元の見える値は、不正な値を設定されたときは値が +保存されるようになりました。 +Previously if you set C<$/> to a reference to an array, for example, perl would produce a runtime error and not set C<PL_rs>, but Perl code that checked C<$/> would see the array reference. @@ -7225,7 +7229,7 @@ =end original -In a regular expression pattern, a POSIX class, like C<[:ascii:]>, must +正規表現パターンの中で、a POSIX class, like C<[:ascii:]>, must be inside a bracketed character class, like C<qr/[[:ascii:]]/>. A warning is issued when something looking like a POSIX class is not inside a bracketed class. @@ -7371,8 +7375,9 @@ =end original -A bug in regular expression patterns that could lead to segfaults and -other crashes has been fixed. This occurred only in patterns compiled +セグメンテーションフォルトやクラッシュを引き起こす、正規表現パターンの +バグが修正されました。 +This occurred only in patterns compiled with C</i> while taking into account the current POSIX locale (which usually means they have to be compiled within the scope of C<S<use locale>>), and there must be a string of at least 128 consecutive bytes to match. @@ -7514,8 +7519,8 @@ Fix a couple of string grow size calculation overflows; in particular, a repeat expression like S<C<33 x ~3>> could cause a large buffer overflow since the new output buffer size was not correctly handled by -C<SvGROW()>. An expression like this now properly produces a memory wrap -panic. +C<SvGROW()>. +このような式は正しくメモリラップ panic を出力するようになりました。 L<[perl #123554]|https://rt.perl.org/Ticket/Display.html?id=123554>. (TBT) @@ -7716,12 +7721,11 @@ =end original -C<use>, C<no>, statement labels, special blocks (C<BEGIN>) and pod are now -permitted as the first thing in a C<map> or C<grep> block, the block after -C<print> or C<say> (or other functions) returning a handle, and within -C<${...}>, C<@{...}>, etc. +C<use>, C<no>, 文ラベル、特殊ブロック (C<BEGIN>)、pod は +C<map> や C<grep> ブロックの最初のもの、ハンドルを返す C<print> や C<say> +(あるいはその他の関数)の後のブロック、C<${...}>, C<@{...}> などの内側で +使えるようになりました。 L<[perl #122782]|https://rt.perl.org/Ticket/Display.html?id=122782>. -(TBT) =item * @@ -7907,8 +7911,8 @@ VMS のような一部のシステムでは、C<crypt> は非 ASCII 文字列を 返すことがあります。 If a -scalar assigned to had contained a UTF-8 string previously, then C<crypt> -would not turn off the UTF-8 flag, thus corrupting the return value. +scalar assigned to had contained a UTF-8 string previously, +C<crypt> は UTF-8 フラグをオフにしないので、返り値が壊れていました。 これは S<C<$lexical = crypt ...>> で起きていました。 (TBT) @@ -8218,7 +8222,8 @@ External libraries and Perl may have different ideas of what the locale is. This is problematic when parsing version strings if the locale's numeric -separator has been changed. Version parsing has been patched to ensure +separator has been changed. +バージョンのパースは、has been patched to ensure it handles the locales correctly. L<[perl #121930]|https://rt.perl.org/Ticket/Display.html?id=121930>. (TBT) @@ -8320,11 +8325,10 @@ =end original -Compilation of anonymous constants (I<e.g.>, C<sub () { 3 }>) no longer deletes -any subroutine named C<__ANON__> in the current package. Not only was -C<*__ANON__{CODE}> cleared, but there was a memory leak, too. This bug goes -back to Perl 5.8.0. -(TBT) +無名定数のコンパイル (例えば C<sub () { 3 }>) は、もはや現在のパッケージの +C<__ANON__> という名前のサブルーチンを削除しなくなりました。 +C<*__ANON__{CODE}> がクリアされるだけでなく、メモリリークもありました。 +このバグは Perl 5.8.0 までさかのぼります。 =item * @@ -8337,8 +8341,8 @@ =end original Stub declarations like C<sub f;> and C<sub f ();> no longer wipe out constants -of the same name declared by C<use constant>. This bug was introduced in Perl -5.10.0. +of the same name declared by C<use constant>. +このバグは Perl 5.10.0 で導入されました。 (TBT) =item * @@ -8349,8 +8353,8 @@ =end original -C<qr/[\N{named sequence}]/> now works properly in many instances. -(TBT) +C<qr/[\N{named sequence}]/> は多くのインスタンスで適切に +動作するようになりました。 =begin original @@ -8372,11 +8376,11 @@ usual single character. Bracketed character classes generally only match single characters, but now special handling has been added so that they can match named sequences, but not if the class is inverted or the sequence is -specified as the beginning or end of a range. In these cases, the only -behavior change from before is a slight rewording of the fatal error message -given when this class is part of a C<?[...])> construct. When the C<[...]> -stands alone, the same non-fatal warning as before is raised, and only the -first character in the sequence is used, again just as before. +specified as the beginning or end of a range. +これらの場合、以前からの振る舞いの変更点は、このクラスが +C<?[...])> 構文のときの致命的エラーメッセージの文言が少し変わることだけです。 +C<[...]> を単体で使うと、以前と同様非致命的警告が発生し、これも以前と同様、 +並びの最初の文字だけが使われます。 (TBT) =item * @@ -8389,10 +8393,9 @@ =end original -Tainted constants evaluated at compile time no longer cause unrelated -statements to become tainted. +コンパイル時に評価された汚染された定数はもはや無関係な文を +汚染しなくなりました。 L<[perl #122669]|https://rt.perl.org/Ticket/Display.html?id=122669> -(TBT) =item * @@ -8404,10 +8407,9 @@ =end original -S<C<open $$fh, ...>>, which vivifies a handle with a name like -C<"main::_GEN_0">, was not giving the handle the right reference count, so -a double free could happen. -(TBT) +S<C<open $$fh, ...>> が C<"main::_GEN_0"> のような名前を持つハンドルを +有効化するとき、ハンドルに正しい参照カウントが与えられておらず、 +二重解放が起こる可能性がありました。 =item * @@ -8419,7 +8421,8 @@ =end original -When deciding that a bareword was a method name, the parser would get confused +裸の単語がメソッド名であると決定するとき、 +the parser would get confused if an C<our> sub with the same name existed, and look up the method in the package of the C<our> sub, instead of the package of the invocant. (TBT) @@ -8434,10 +8437,9 @@ =end original -The parser no longer gets confused by C<\U=> within a double-quoted string. It -used to produce a syntax error, but now compiles it correctly. +パーサはもはやダブルクォートされた文字列の中の C<\U=> で混乱しなくなりました。 +これは文法エラーを出力していましたが、正しくコンパイルされるようになりました。 L<[perl #80368]|https://rt.perl.org/Ticket/Display.html?id=80368> -(TBT) =item * @@ -8485,12 +8487,11 @@ =end original -Perl 5.20.0 introduced a regression in which a UTF-8 encoded regular -expression pattern that contains a single ASCII lowercase letter did not -match its uppercase counterpart. That has been fixed in both 5.20.1 and -5.22.0. +Perl 5.20.0 では、単一の ASCII 小文字を含む、UTF-8 でエンコードされた +正規表現パターンが大文字で対応するものにマッチングしないという退行が +導入されていました。 +これは 5.20.1 と 5.22.0 の両方で修正されました。 L<[perl #122655]|https://rt.perl.org/Ticket/Display.html?id=122655> -(TBT) =item * @@ -8518,11 +8519,10 @@ =end original -Loading Unicode tables during a regular expression match could cause assertion -failures under debugging builds if the previous match used the very same -regular expression. +正規表現マッチング中に Unicode テーブルを読み込むと、デバッグビルドで、 +前回のマッチングが全く同じ正規表現だったとき、アサート失敗を +引き起こしていました。 L<[perl #122747]|https://rt.perl.org/Ticket/Display.html?id=122747> -(TBT) =item * @@ -8604,11 +8604,11 @@ =end original -Long here-doc terminators could cause a bad read on short lines of input. This -has been fixed. It is doubtful that any crash could have occurred. This bug -goes back to when here-docs were introduced in Perl 3.000 twenty-five years -ago. -(TBT) +長いヒヤドキュメント終端子は、入力の短い行で読み込みが間違っていました。 +これは修正されました。 +これによってクラッシュが起こることがあったかどうかは疑わしいです。 +このバグは、25 年前、ヒヤドキュメントが導入された Perl 3.000 まで +さかのぼります。 =item * @@ -8625,7 +8625,9 @@ An optimization in C<split> to treat S<C<split /^/>> like S<C<split /^/m>> had the unfortunate side-effect of also treating S<C<split /\A/>> like S<C<split /^/m>>, -which it should not. This has been fixed. (Note, however, that S<C<split /^x/>> +which it should not. +これは修正されました。 +(しかし、S<C<split /^x/>> does not behave like S<C<split /^x/m>>, which is also considered to be a bug and will be fixed in a future version.) L<[perl #122761]|https://rt.perl.org/Ticket/Display.html?id=122761> @@ -8656,11 +8658,11 @@ =end original -Locking and unlocking values via L<Hash::Util> or C<Internals::SvREADONLY> -no longer has any effect on values that were read-only to begin with. -Previously, unlocking such values could result in crashes, hangs or -other erratic behavior. -(TBT) +L<Hash::Util> や C<Internals::SvREADONLY> 経由で値をロックや +アンロックしたとき、読み込み専用の値だったときにも何の影響も +与えなくなりました。 +以前は、このような値をアンロックするとクラッシュ、ハング、あるいは +その他の異常な振る舞いを引き起こしていました。 =item * @@ -8747,9 +8749,8 @@ =end original -S<C<() = @array = split>> において、先頭の S<C<() =>> no longer confuses -the optimizer into assuming a limit of 1. -(TBT) +S<C<() = @array = split>> において、先頭の S<C<() =>> はもはや、 +上限を 1 と仮定することで最適化器を混乱させなくなりました。 =item * @@ -8773,10 +8774,9 @@ =end original -Fixed a NaN double-to-long-double conversion error on VMS. For quiet NaNs -(and only on Itanium, not Alpha) negative infinity instead of NaN was -produced. -(TBT) +VMS での NaN の double から long-double への変換エラーが修正されました。 +暗黙の NaN の場合 (そして Alpha でなく Itanium の場合のみ) NaN ではなく +負の無限が出力されていました。 =item * @@ -8884,12 +8884,9 @@ =end original Win32 で、変数が、後でフォークされた疑似プロセス内で C<local> 化された -場合、 -restoring the original value in the child pseudo-process caused -memory corruption and a crash in the child pseudo-process (and therefore the -OS process). +場合、子疑似プロセスの基の値を復元するときにメモリ破壊と +子疑似プロセス(従って OS プロセス)のクラッシュを引き起こしていました。 L<[perl #40565]|https://rt.perl.org/Ticket/Display.html?id=40565>. -(TBT) =item * @@ -8902,11 +8899,10 @@ =end original -Calling C<write> on a format with a C<^**> field could produce a panic -in C<sv_chop()> if there were insufficient arguments or if the variable -used to fill the field was empty. +C<^**> があるフォーマットに対して C<write> を呼び出すと、引数が不十分だったり +フィールドを埋める変数が空だったりしたときに C<sv_chop()> で +panic を出力していました。 L<[perl #123245]|https://rt.perl.org/Ticket/Display.html?id=123245>. -(TBT) =item *