[perldocjp-cvs 1252] CVS update: docs/perl/5.14.0

Back to archive index

argra****@users***** argra****@users*****
2011年 4月 26日 (火) 01:22:18 JST


Index: docs/perl/5.14.0/perl5140delta.pod
diff -u docs/perl/5.14.0/perl5140delta.pod:1.15 docs/perl/5.14.0/perl5140delta.pod:1.16
--- docs/perl/5.14.0/perl5140delta.pod:1.15	Mon Apr 25 00:56:49 2011
+++ docs/perl/5.14.0/perl5140delta.pod	Tue Apr 26 01:22:17 2011
@@ -1625,16 +1625,16 @@
 
 =end original
 
-Calling defined on a stash has been deprecated since 5.6.0, warned on
-lexicals since 5.6.0, and warned for stashes and other package
-variables since 5.12.0.  C<defined %hash> has always exposed an
-implementation detail: emptying a hash by deleting all entries from it does
-not make C<defined %hash> false.
+スタッシュに対して defined を呼び出すことは 5.6.0 から非推奨になり、
+レキシカルでは 5.6.0 から警告が出力され、スタッシュとその他の
+パッケージ変数に対しては 5.12.0 から警告を出していました。
+C<defined %hash> は常に実装の詳細を露出させていました:
+全てのエントリを削除することでハッシュを空にしても
+C<defined %hash> は偽になりませんでした。
 従って、C<defined %hash> は、任意のハッシュが空かどうかを判定するには
 不正なコードです。
 代わりに、空の C<%hash> はスカラコンテキストでは常に偽を返すという
 振る舞いを使ってください。
-(TBT)
 
 =head3 Clearing stashes
 
@@ -1651,8 +1651,8 @@
 
 =end original
 
-スタッシュリスト代入 C<%foo:: = ()> used to make the stash temporarily 
-anonymous while it was being emptied.
+スタッシュリスト代入 C<%foo:: = ()> は、一時的に無名の空のスタッシュを
+作っていました。
 その結果、どこかでリファレンスされているサブルーチンも無名になり、
 C<caller> では "(unknown)" になります。
 They now retain their package names such that
@@ -1821,12 +1821,11 @@
 
 スカラ変数に local() を行うと新しい値が与えられますが、全てのマジカルな
 機能はそのままでした。
-This has proven to be problematic for the default
-scalar variable $_, where L<perlsub> recommends that any subroutine
-that assigns to $_ should first localize it.
+L<perlsub> はデフォルトスカラ変数 $_ に代入する全てのサブルーチンはまず
+ローカル化することを勧めていますが、$_ に対しては問題があることが
+判明しています。
 これにより、もし $_ が読み込み専用変数の別名となっていると例外が
 投げられ、一般的には様々な想定外の副作用があります。
-(TBT)
 
 =begin original
 
@@ -2318,11 +2317,10 @@
 =end original
 
 これは B<-X> やレキシカルな警告ビットに従うのではなく、強制的な警告です。
-The warning is modelled on that supplied by F<deprecate.pm> for
-deprecated-in-core F<.pm> libraries.  It points to the specific CPAN
-distribution that contains the F<.pl> libraries.
+この警告は、コアで非推奨となった F<.pm> ライブラリのための
+F<deprecate.pm> によって供給されます。
+これは F<.pl> ライブラリを含んでいる特定の CPAN 配布を示しています。
 もちろん、CPAN 版は警告は出ません。
-(TBT)
 
 =head2 List assignment to C<$[>
 
@@ -2624,10 +2622,8 @@
 これにより、速度が数 % 向上し、5.8.0 で導入された「安全なシグナル」による
 速度の低下のほとんど全てを取り除けているはずです。
 シグナルは以前と同じように、同じ文の中で発行されます。
-If this does I<not> happen, or
-if you find it possible to create uninterruptible loops, this is a
-bug, and reports are encouraged of how to recreate such issues.
-(TBT)
+もしこれが I<起こらない> か、あるいはもし中断不能なループが作成できることを
+発見したなら、それはバグです; 問題を再現する方法を報告してください。
 
 =head2 Optimisation of shift() and pop() calls without arguments
 
@@ -6408,7 +6404,7 @@
 
 =end original
 
-The "Found = in conditional" warning that is emitted when a constant is
+"Found = in conditional" 警告は、is emitted when a constant is
 assigned to a variable in a condition is now withheld if the constant is
 actually a subroutine or one generated by C<use constant>, since the value
 of the constant may not be known at the time the program is written
@@ -7533,9 +7529,8 @@
 
 =end original
 
-カスタムチェックフックを書くのを助けるために、several subtasks within standard
-C<entersub> op checking have been separated out and exposed in the API.
-(TBT)
+カスタムチェックフックを書くのを助けるために、標準の C<entersub> op チェックに
+あるいくつかの副タスクが分離され、API に露出しました。
 
 =head3 Improved support for custom OPs
 
@@ -7731,11 +7726,11 @@
 
 =end original
 
-A stash can now have a list of effective names in addition to its usual
-name.  The first effective name can be accessed via the C<HvENAME> macro,
-which is now the recommended name to use in MRO linearisations (C<HvNAME>
-being a fallback if there is no C<HvENAME>).
-(TBT)
+スタッシュは、通常の名前に追加して、有向な名前のリストを持つように
+なりました。
+最初の有効な名前は C<HvENAME> マクロ経由でアクセスでき、これは
+MRO 線形化で使う推奨される名前となりました
+(C<HvENAME> がない場合は C<HvNAME> にフォールバックします)。
 
 =begin original
 
@@ -7770,7 +7765,8 @@
 They allow extension authors to find and remove magic attached to
 scalars based on both the magic type and the magic virtual table, similar to how
 sv_magicext() attaches magic of a certain type and with a given virtual table
-to a scalar.  This eliminates the need for extensions to walk the list of
+to a scalar.
+これは eliminates the need for extensions to walk the list of
 C<MAGIC> pointers of an C<SV> to find the magic that belongs to them.
 (TBT)
 
@@ -7810,10 +7806,10 @@
 
 =end original
 
-The C<PERL_STATIC_INLINE> define has been added to provide the best-guess
-incantation to use for static inline functions, if the C compiler supports
-C99-style static inline.  If it doesn't, it'll give a plain C<static>.
-(TBT)
+C コンパイラが C99 形式の静的インライン関数に対応している場合、
+静的インライン関数を使うような指示を提供する、
+C<PERL_STATIC_INLINE> 定義が追加されました。
+対応していない場合は、普通の C<static> を返します。
 
 =begin original
 
@@ -7837,10 +7833,10 @@
 
 =end original
 
-A new option, C<PERL_PV_ESCAPE_NONASCII>, has been added to C<pv_escape> to
-dump all characters above ASCII in hexadecimal.  Before, one could get all
-characters as hexadecimal or the Latin1 non-ASCII as octal.
-(TBT)
+C<pv_escape> に、ASCII 以上の全ての文字を 16 進数でダンプする
+C<PERL_PV_ESCAPE_NONASCII> オプションが新しく追加されました。
+以前は、全ての文字を 16 進数にするか、Latin1 非-ASCII を 8 進数にするか
+でした。
 
 =head3 C<lex_start>
 
@@ -7883,8 +7879,9 @@
 =end original
 
 The option to define C<PERL_POLLUTE> to expose older 5.005 symbols for
-backwards compatibility has been removed.  Its use was always discouraged,
-and MakeMaker contains a more specific escape hatch:
+backwards compatibility has been removed.
+この使用は常に勧められず、
+MakeMaker はより具体的な回避方法を持っています:
 (TBT)
 
     perl Makefile.PL POLLUTE=1
@@ -7896,9 +7893,8 @@
 
 =end original
 
-This can be used for modules that have not been upgraded to 5.6 naming
-conventions (and really should be completely obsolete by now).
-(TBT)
+これは、まだ 5.6 命名規約に更新されていない (そして今では完全に
+古いものである) モジュールで使えます。
 
 =head3 Check API compatibility when loading XS modules
 
@@ -8009,8 +8005,9 @@
 reference-counted.  To ensure consistent behaviour, direct assignment to
 it, for example C<CvGV(cv) = gv> is now a compile-time error.  A new macro,
 C<CvGV_set(cv,gv)> has been introduced to run this operation
-safely.  Note that modification of this field is not part of the public
-API, regardless of this new macro (and despite its being listed in this section).
+safely.
+この新しいマクロにも関わらず(そしてこの節に書いているにも関わらず)
+このフィールドの変更は公式 API の一部ではないことに注意してください。
 (TBT)
 
 =head3 CvSTASH() is no longer an lvalue
@@ -8084,14 +8081,16 @@
 変更されました。
 This is a result of Perl's now allowing
 internal storage and manipulation of code points that are problematic
-in some situations.  Hence, the default actions for these functions has
-been complemented to allow these code points.  The new flags are
-documented in L<perlapi>.  Code that requires the problematic code
-points to be rejected needs to change to use the new flags.  Some flag
-names are retained for backward source compatibility, though they do
-nothing, as they are now the default.  However the flags
-C<UNICODE_ALLOW_FDD0>, C<UNICODE_ALLOW_FFFF>, C<UNICODE_ILLEGAL>, and
-C<UNICODE_IS_ILLEGAL> have been removed, as they stem from a
+in some situations.
+従って、これらの関数のデフォルトアクションはこれらの符号位置を認めるように
+補完されました。
+新しいフラグは L<perlapi> で文書化されています。
+Code that requires the problematic code
+points to be rejected needs to change to use the new flags.
+一部のフラグ名は後方ソース互換性のために保持していますが、何もしません;
+今ではデフォルトとなっています。
+しかし C<UNICODE_ALLOW_FDD0>, C<UNICODE_ALLOW_FFFF>, C<UNICODE_ILLEGAL>,
+C<UNICODE_IS_ILLEGAL> は削除されました; as they stem from a
 fundamentally broken model of how the Unicode non-character code points
 should be handled, which is now described in
 (TBT)
@@ -8161,10 +8160,7 @@
 =end original
 
 C<find_rundefsvoffset> 関数は非推奨となりました。
-It appeared that
-its design was insufficient for reliably getting the lexical C<$_> at
-run-time.
-(TBT)
+この設計は、確実に実行時にレキシカルな C<$_> を得るには不十分と思われます。
 
 =begin original
 
@@ -8189,10 +8185,9 @@
 
 =end original
 
-Those are left from an old implementation of C<MULTIPLICITY> using C++ objects,
-which was removed in Perl 5.8.
+これらは Perl 5.8 で削除された、C++ オブジェクトを使った C<MULTIPLICITY> の
+古い実装から残されていました。
 今ではこれらのマクロは全く何もしないので、もう使うべきではありません。
-(TBT)
 
 =begin original
 
@@ -8232,9 +8227,10 @@
 This now uses
 a separate variable C<PL_restartjmpenv>, where previously it relied on
 the C<blk_eval.cur_top_env> pointer in the C<eval> context frame that
-has nominally just been discarded.  This change means that code running
-during various stages of Perl-level unwinding no longer needs to take
-care to avoid destroying the ghost frame.
+has nominally just been discarded.
+この変更は、Perl レベルの巻き戻しのさまざまなステージで実行中の
+コードが、もはや幽霊フレームを破壊することを避けるために気をつかう
+必要はありません。
 (TBT)
 
 =head3 Scope stack entries
@@ -8276,8 +8272,8 @@
 C<SV> bodies and C<HE>s, with freed memory remaining bound to those arenas
 until interpreter exit.  Now it allocates memory from arenas private to the
 specific pointer table, and that memory is returned to the system when
-C<Perl_ptr_table_free> is called.  Additionally, allocation and release are
-both less CPU intensive.
+C<Perl_ptr_table_free> is called.
+さらに、割り当てと解放は両方とも CPU パワーを使わなくなります。
 (TBT)
 
 =head3 C<UNDERBAR>
@@ -8325,14 +8321,13 @@
 
 =end original
 
-The opcode bodies for C<chop> and C<chomp> and for C<schop> and C<schomp>
-have been merged.  The implementation functions Perl_do_chop() and
-Perl_do_chomp(), never part of the public API, have been merged and
-moved to a static function in F<pp.c>.  This shrinks the Perl binary
-slightly, and should not affect any code outside the core (unless it is
-relying on the order of side-effects when C<chomp> is passed a I<list> of
-values).
-(TBT)
+C<chop> および C<chomp> のオペコードボディと C<schop> および C<schomp> の
+オペコードボディがマージされました。
+実装関数である Perl_do_chop() と Perl_do_chomp() (公式 API ではありません) は
+マージされ、F<pp.c> の静的関数として移動しました。
+これにより Perl バイナリが少し小さくなり、(C<chomp> が I<list> の値を
+渡されたときの副作用の順序に依存していない限り) コアの外側のコードには
+一切影響を与えないはずです。
 
 =head1 Selected Bug Fixes
 
@@ -8572,9 +8567,9 @@
 
 A regular expression match in the right-hand side of a global substitution
 (C<s///g>) that is in the same scope will no longer cause match variables
-to have the wrong values on subsequent iterations.  This can happen when an
-array or hash subscript is interpolated in the right-hand side, as in
-C<s|(.)|@a{ print($1), /./ }|g> [perl #19078].
+to have the wrong values on subsequent iterations. 
+これは、C<s|(.)|@a{ print($1), /./ }|g> のように、配列やハッシュの添え字が
+右側で展開されたときに起こります [perl #19078]。
 (TBT)
 
 =item *
@@ -8590,8 +8585,9 @@
 
 Several cases in which characters in the Latin-1 non-ASCII range (0x80 to
 0xFF) used not to match themselves, or used to match both a character class
-and its complement, have been fixed.  For instance, U+00E2 could match both
-C<\w> and C<\W> [perl #78464] [perl #18281] [perl #60156].
+and its complement, have been fixed.
+例えば、U+00E2 は C<\w> と C<\W> の両方にマッチングしていました
+[perl #78464] [perl #18281] [perl #60156]。
 (TBT)
 
 =item *
@@ -8605,11 +8601,10 @@
 
 =end original
 
-Matching a Unicode character against an alternation containing characters
-that happened to match continuation bytes in the former's UTF8
-representation (like C<qq{\x{30ab}} =~ /\xab|\xa9/>) would cause erroneous
-warnings [perl #70998].
-(TBT)
+(C<qq{\x{30ab}} =~ /\xab|\xa9/> のように)
+前の UTF8 表現の継続バイトとマッチングするような
+文字を含む選択に対して Unicode 文字をマッチングすると、
+間違った警告を引き起こしていました [perl #70998]。
 
 =item *
 
@@ -8676,12 +8671,11 @@
 above 255 are treated as Unicode, but code points between 0 and 255
 are treated using the current locale rules, regardless of whether
 the pattern or the string is encoded in UTF8.  The few case-insensitive
-matches that cross the 255/256 boundary are not allowed.  For
-example, 0xFF does not caselessly match the character at 0x178,
-LATIN CAPITAL LETTER Y WITH DIAERESIS, because 0xFF may not be LATIN
-SMALL LETTER Y in the current locale, and Perl has no way of knowing
-if that character even exists in the locale, much less what code
-point it is.
+matches that cross the 255/256 boundary are not allowed.
+例えば、0xFF は 0x178 LATIN CAPITAL LETTER Y WITH DIAERESIS と
+大文字小文字なしにマッチングします; 0xFF は現在のロケールでは
+LATIN SMALL LETTER Y に含まれず、Perl はロケール中にこの文字が
+含まれているかや、ましてやどの符号位置かを知る方法がないからです。
 (TBT)
 
 =item *
@@ -8695,10 +8689,10 @@
 
 =end original
 
-The C<(?|...)> regular expression construct no longer crashes if the final
-branch has more sets of capturing parentheses than any other branch.  This
-was fixed in Perl 5.10.1 for the case of a single branch, but that fix did
-not take multiple branches into account [perl #84746].
+The C<(?|...)> 正規表現構造は、no longer crashes if the final
+branch has more sets of capturing parentheses than any other branch.
+これは単一ブランチの場合は Perl 5.10.1 で修正されましたが、
+これは複数ブランチを考慮に入れていませんでした [perl #84746]。
 (TBT)
 
 =item *
@@ -8806,13 +8800,13 @@
 
 =end original
 
-When strict "refs" mode is off, C<%{...}> in rvalue context returns
-C<undef> if its argument is undefined.  An optimisation introduced in Perl
-5.12.0 to make C<keys %{...}> faster when used as a boolean did not take
-this into account, causing C<keys %{+undef}> (and C<keys %$foo> when
-C<$foo> is undefined) to be an error, which it should be so in strict
-mode only [perl #81750].
-(TBT)
+strict "refs" モードがオフのとき、右辺値コンテキストでの C<%{...}> は
+引数が未定義のときには C<undef> を返します。
+Perl 5.12.0 で導入された、C<keys %{...}> が真偽値として使われるときに
+高速化する最適化はこれを考慮に入れておらず、
+C<keys %{+undef}> (および C<$foo> が未定義のときのand C<keys %$foo>) は、
+strict モードが有効のときにだけエラーになるべきですが、そうでないときも
+エラーになっていました [perl #81750]。
 
 =item *
 
@@ -8894,10 +8888,9 @@
 
 =end original
 
-Defining a constant with the same name as one of Perl's special blocks
-(like C<INIT>) stopped working in 5.12.0, 
+(C<INIT> のような) Perl の特殊ブロックと同じ名前の定数の定義は
+5.12.0 から動作しなくなっていました。
 これは修正されました [perl #78634]。
-(TBT)
 
 =item *
 
@@ -8908,9 +8901,8 @@
 
 =end original
 
-A reference to a literal value used as a hash key (C<$hash{\"foo"}>) used
-to be stringified, even if the hash was tied [perl #79178].
-(TBT)
+ハッシュキーとして使われるリテラル値へのリファレンス (C<$hash{\"foo"}>) は、
+ハッシュが tie されていても文字列化されていました [perl #79178]。
 
 =item *
 
@@ -8936,10 +8928,7 @@
 =end original
 
 C<state> は属性とともに使えるようになりました。
-It
-used to mean the same thing as
-C<my> if any attributes were present [perl #68658].
-(TBT)
+属性があっても、C<my> と同じ意味になっていました [perl #68658]。
 
 =item *
 
@@ -8971,7 +8960,7 @@
 
 Accessing an element of a package array with a hard-coded number (as
 opposed to an arbitrary expression) would crash if the array did not exist.
-Usually the array would be autovivified during compilation, but typeglob
+普通は配列はコンパイル中に自動有効化されますが、typeglob
 manipulation could remove it, as in these two cases which used to crash:
 (TBT)
 
@@ -9000,10 +8989,9 @@
 
 =end original
 
-The C<B> module was returning C<B::OP>s instead of C<B::LOGOP>s for
-C<entertry> [perl #80622].
+The C<B> モジュールは C<entertry> に対して C<B::LOGOP> ではなく
+C<B::OP> を返していました [perl #80622]。
 これは C<B> 自身ではなく Perl コアのバグによるものでした。
-(TBT)
 
 =back
 



perldocjp-cvs メーリングリストの案内
Back to archive index