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