argra****@users*****
argra****@users*****
2012年 5月 4日 (金) 20:19:09 JST
Index: docs/perl/5.16.0/perl5160delta.pod diff -u docs/perl/5.16.0/perl5160delta.pod:1.13 docs/perl/5.16.0/perl5160delta.pod:1.14 --- docs/perl/5.16.0/perl5160delta.pod:1.13 Mon Apr 30 02:31:51 2012 +++ docs/perl/5.16.0/perl5160delta.pod Fri May 4 20:19:08 2012 @@ -450,16 +450,14 @@ å«ãããã«ãªãã¾ãã(以åã¯å«ãã§ãã¾ããã§ãããããã®ã»ã¨ãã©ã¯ Perl ã使ã£ã¦ããæ¨å¥¨ãããååã§ãã)ã Unicode 㯠U+008E ãã U+008F ã®éã®ä¸è¿°ã®åã¤ã®ç¬¦å·ä½ç½®ã«å¯¾ãã -ååãæ¨å¥¨ãã¦ããããand in -standardizing them Unicode subtly changed the names that Perl had -previously given them, by replacing the final blank in each name by a -hyphen. +ååãæ¨å¥¨ãã¦ããããããããæ¨æºåããéã« Unicode 㯠Perl ã以å +ä¸ãã¦ããååããããããã®ååã®æå¾ã®ç©ºç½ããã¤ãã³ã«ãããã¨ã§ +å¾®å¦ã«å¤æ´ãã¾ããã Unicode ã¯ã¾ããFILE SEPARATOR ã®ããã« Perl ã§ã¯éæ¨å¥¨ã¨ããååã å ¬å¼ã«åãå ¥ãã¾ããã ä»ã§ã¯å¯ä¸ã®éæ¨å¥¨ã®åå㯠BELL ã§ãã æçµçã«ãä¸è¿°ã®åã¤ã®ç¬¦å·ä½ç½®ã®ååã¨ãã¦å¤ã(ä»ã§ã¯å¤ããã®ã¨ãªã£ã㨠èãããã)ååã§ã¯ãªããæ°ããå ¬å¼ã®åå(ãã£ãã§å²ã¾ãããã®)ã使ãã¾ãã -(TBT) =begin original @@ -908,10 +906,10 @@ =end original -C<$$> 㯠Perl 5.8.0 ã§èªã¿è¾¼ã¿ããããã«ãªãã¾ããã +C<$$> 㯠Perl 5.8.0 ã§èªã¿è¾¼ã¿å°ç¨ã«ãªãã¾ããã ãããã¨ãã©ã: C<local $$> ã§åã³æ¸ãè¾¼ã¿å¯è½ã«ãªããã¨ãããã¾ãã CPAN ã¢ã¸ã¥ã¼ã«ã«ãã£ã¦ã¯èªã¿è¾¼ã¿å°ç¨ã®ãã§ãã¯ãåé¿ããããã« -C<local $$> ã XS ã³ã¼ãã使ã£ã¦ãããã®ãããã®ã§ãC<$$> ãèªã¿è¾¼ã¿å°ç¨ã« +C<local $$> ã XS ã³ã¼ãã使ã£ã¦ãããã®ãããã®ã§ãC<$$> ãèªã¿è¾¼ã¿å°ç¨ã« ä¿ã£ã¦ããçç±ãããã¾ããã (ãã®å¤æ´ã¯ã¾ããéå»äºææ§ãç¶æããéã«ä¿®æ£ããã¹ããã°ã許ãã¾ãã) @@ -1015,7 +1013,7 @@ =head3 The C<CORE::> prefix -(C<CORE::> åç½®è©) +(C<CORE::> æ¥é è¾) =begin original @@ -1024,7 +1022,7 @@ =end original -C<CORE::> åç½®è©ã¯ããã¨ã C<use feature> ã¹ã³ã¼ãã®å¤å´ã§ãã +C<CORE::> æ¥é è¾ã¯ããã¨ã C<use feature> ã¹ã³ã¼ãã®å¤å´ã§ãã L<feature.pm|feature> ã§æå¹ã«ãªããã¼ã¯ã¼ãã§ä½¿ãããããã«ãªãã¾ããã =head3 Subroutines in the C<CORE> namespace @@ -1241,11 +1239,10 @@ =end original -Two new XS-accessible functions, C<utf8_to_uvchr_buf()> and -C<utf8_to_uvuni_buf()> are now available to prevent this, and the Perl -core has been converted to use them. -See L</Internal Changes>. -(TBT) +äºã¤ã®æ°ãã XS ã¢ã¯ã»ã¹å¯è½ãªé¢æ°ã§ãã C<utf8_to_uvchr_buf()> 㨠+C<utf8_to_uvuni_buf()> ããããé¿ããããã«å©ç¨å¯è½ã¨ãªããPerl ã³ã¢ã¯ +ãããã使ãããã«å¤æããã¾ããã +L</Internal Changes> ãåç §ãã¦ãã ããã =head2 C<File::Glob::bsd_glob()> memory error with GLOB_ALTDIRFUNC (CVE-2011-2728). @@ -3415,10 +3412,9 @@ =end original -C<USE_LOCALE{,_COLLATE,_CTYPE,_NUMERIC}> have been added the output of perl -V -as they have affect the behaviour of the interpreter binary (albeit only -in a small area). -(TBT) +ã¤ã³ã¿ããªã¿ãã¤ããªã®æ¯ãèã(ä½ãå°ããé¨åã«ã ã)ã«å½±é¿ãä¸ãã +C<USE_LOCALE{,_COLLATE,_CTYPE,_NUMERIC}> ã perl -V ã®åºåã« +追å ããã¾ããã =item * @@ -3450,12 +3446,13 @@ =end original The magic types and magic vtables are now generated from data in a new script -F<regen/mg_vtable.pl>, instead of being maintained by hand. As different -EBCDIC variants can't agree on the code point for '~', the character to code -point conversion is done at build time by F<generate_uudmap> to a new generated -header F<mg_data.h>. C<PL_vtbl_bm> and C<PL_vtbl_fm> are now defined by the -pre-processor as C<PL_vtbl_regexp>, instead of being distinct C variables. -C<PL_vtbl_sig> has been removed. +F<regen/mg_vtable.pl>, instead of being maintained by hand. +ç°ãªã£ã EBCDIC ããªã¢ã³ãã¯ç¬¦å·ä½ç½®ã¨ã㦠'~' ã使ããªãã®ã§ã +符å·ä½ç½®ãå¤æã®æå㯠F<generate_uudmap> ããæ°ããçæãããããã +F<mg_data.h> ã§ãã«ãæã«è¡ããã¾ãã +C<PL_vtbl_bm> 㨠C<PL_vtbl_fm> ã¯æ確㪠C ã®å¤æ°ã§ã¯ãªãã +C<PL_vtbl_regexp> ã¨ãã¦ããªããã»ããµã§å®ç¾©ãããããã«ãªãã¾ããã +C<PL_vtbl_sig> ã¯åé¤ããã¾ããã (TBT) =item * @@ -3493,9 +3490,8 @@ =end original F<makedef.pl> ããªãã¡ã¯ã¿ãªã³ã°ããã¾ããã -This should have no noticeable affect on -any of the platforms that use it as part of their build (AIX, VMS, Win32). -(TBT) +ããããã«ãã®ä¸é¨ã¨ãã¦ä½¿ã£ã¦ãããã©ãããã©ã¼ã (AIX, VMS, Win32) ã« +é¡èãªå½±é¿ãä¸ãããã¨ã¯ãªãã¯ãã§ãã =item * @@ -3520,9 +3516,10 @@ =end original -The file F<global.sym> is no longer needed, and has been removed. It -contained a list of all exported functions, one of the files generated by -F<regen/embed.pl> from data in F<embed.fnc> and F<regen/opcodes>. The code +F<global.sym> ã¯ä¸è¦ã«ãªã£ãã®ã§åé¤ããã¾ããã +ããã¯å ¨ã¦ã®ã¨ã¯ã¹ãã¼ããããé¢æ°ã®ä¸è¦§ã§ãF<embed.fnc> 㨠+F<regen/opcodes> ã®ãã¼ã¿ãã F<regen/embed.pl> ã§çæããããã®ã§ãã +The code has been refactored so that the only user of F<global.sym>, F<makedef.pl>, now reads F<embed.fnc> and F<regen/opcodes> directly, removing the need to store the list of exported functions in an intermediate file. @@ -3551,10 +3548,10 @@ L<perltoc> ããã«ãããããã®ãã«ãããã»ã¹ã§ä½¿ããã F<pod/buildtoc> 㯠ãªãã¡ã¯ã¿ãªã³ã°ããåç´åããã¾ããã -It now only contains code to build L<perltoc>; -the code to regenerate Makefiles has been moved to F<Porting/pod_rules.pl>. -It's a bug if this change has any material effect on the build process. -(TBT) +L<perltoc> ããã«ãããã³ã¼ãã ããå«ã¾ããããã«ãªãã¾ãã; +Makefiles ãåçå¶ããããã®ã³ã¼ã㯠F<Porting/pod_rules.pl> ã« +移åãã¾ããã +ãã®å¤æ´ããã«ãããã»ã¹ã«å®è³ªçãªå½±é¿ãä¸ãã¦ããã®ã¯ãã°ã§ããã =item * @@ -3777,74 +3774,169 @@ =head1 Internal Changes +(å é¨ã®å¤æ´) + =over 4 =item * +=begin original + The compiled representation of formats is now stored via the C<mg_ptr> of their C<PERL_MAGIC_fm>. Previously it was stored in the string buffer, beyond C<SvLEN()>, the regular end of the string. C<SvCOMPILED()> and C<SvCOMPILED_{on,off}()> now exist solely for compatibility for XS code. The first is always 0, the other two now no-ops. (5.14.1) +=end original + +ãã©ã¼ãããã®ã³ã³ãã¤ã«è¡¨ç¾ã¯ PERL_MAGIC_fm ã® mg_ptr çµç±ã§ +ä¿ç®¡ãããããã«ãªãã¾ããã +以åã¯é常ã®æååã®æ«å°¾ã§ãã SvLEN() ã®åããã®æååãããã¡ã« +ä¿ç®¡ããã¦ãã¾ããã +SvCOMPILED() 㨠SvCOMPILED_{on,off}() 㯠XS ã³ã¼ãã¨ã®äºææ§ã®ããã ãã« +åå¨ããããã«ãªãã¾ããã +æåã¯å¸¸ã« 0ãå¾ã®äºã¤ã¯ä½ãããªããªãã¾ãã (5.14.1)ã + =item * +=begin original + Some global variables have been marked C<const>, members in the interpreter structure have been re-ordered, and the opcodes have been re-ordered. The op C<OP_AELEMFAST> has been split into C<OP_AELEMFAST> and C<OP_AELEMFAST_LEX>. +=end original + +ããã¤ãã®ã°ãã¼ãã«å¤æ°ã C<const> ã¨ãã¦ãã¼ã¯ãããã¤ã³ã¿ããªã¿ +æ§é ä½ã®ã¡ã³ãã¼ã®é åºãå ¥ãæ¿ãããããªãã³ã¼ãã®é åºãå ¥ãæ¿ãããã¾ããã +C<OP_AELEMFAST> op 㯠C<OP_AELEMFAST> 㨠C<OP_AELEMFAST_LEX> ã« +åå²ããã¾ããã + =item * +=begin original + When empting a hash of its elements (e.g. via undef(%h), or %h=()), HvARRAY field is no longer temporarily zeroed. Any destructors called on the freed elements see the remaining elements. Thus, %h=() becomes more like C<delete $h{$_} for keys %h>. +=end original + +(ä¾ãã° undef(%h) ã %h=() ã«ãã£ã¦) ããã·ã¥ã®è¦ç´ ã空ã«ããã¨ãã +HvARRAY ãã£ã¼ã«ãã¯ä¸æçã« 0 ã«ãããªããªãã¾ããã +解æ¾ãããè¦ç´ ã§å¼ã³åºãããä»»æã®ãã¹ãã©ã¯ã¿ã¯æ®ã£ã¦ããè¦ç´ ã +è¦ããã¨ãã§ãã¾ãã +å¾ã£ã¦ã%h=() ã¯ããã C<delete $h{$_} for keys %h> ã«ä¼¼ã¦ãããã®ã« +ãªãã¾ããã + =item * +=begin original + Boyer-Moore compiled scalars are now PVMGs, and the Boyer-Moore tables are now stored via the mg_ptr of their C<PERL_MAGIC_bm>. Previously they were PVGVs, with the tables stored in the string buffer, beyond C<SvLEN()>. This eliminates the last place where the core stores data beyond C<SvLEN()>. +=end original + +ãã¤ã¤ã¼-ã ã¼ã¢ã³ã³ãã¤ã«æ¸ã¿ã¹ã«ã©ã¯ PVMG ã¨ãªãã +ãã¤ã¤ã¼-ã ã¼ã¢ãã¼ãã«ã¯ C<PERL_MAGIC_bm> ã® mg_ptr çµç±ã§ +è£å®ãããããã«ãªãã¾ããã +以åã¯ããã㯠PVGV ã§ããã¼ãã«ã¯æååãããã¡ã® C<SvLEN()> ãè¶ ãã +ä½ç½®ã«è£å®ããã¦ãã¾ããã +ããã«ããã³ã¢ã C<SvLEN()> ã声対置ã«ãã¼ã¿ãè£å®ããæå¾ã®å ´æã +é¤å»ããã¾ããã + =item * +=begin original + Simplified logic in C<Perl_sv_magic()> introduces a small change of behaviour for error cases involving unknown magic types. Previously, if C<Perl_sv_magic()> was passed a magic type unknown to it, it would +=end original + +C<Perl_sv_magic()> ã®ãã¸ãã¯ãåç´åãããä¸æãªãã¸ãã¯åã«é¢ä¿ãã +ã¨ã©ã¼ã®å ´åã«ãããã«æ¯ãèããå¤æ´ããã¾ããã +以åã¯ãC<Perl_sv_magic()> ã«ä¸æãªãã¸ãã¯åã渡ãããã¨: + =over =item 1. +=begin original + Croak "Modification of a read-only value attempted" if read only +=end original + +èªã¿è¾¼ã¿å°ç¨ãªã "Modification of a read-only value attempted" 㧠+croak ãã + =item 2. +=begin original + Return without error if the SV happened to already have this magic +=end original + +SV ããã¾ãã¾ãã§ã«ãã®ãã¸ãã¯ãä¿æãã¦ãããªãã¨ã©ã¼ãªãã§è¿ã + =item 3. +=begin original + otherwise croak "Don't know how to handle magic of type \\%o" +=end original + +ãã以å¤ãªã "Don't know how to handle magic of type \\%o" 㧠croak ãã + =back +=begin original + Now it will always croak "Don't know how to handle magic of type \\%o", even on read only values, or SVs which already have the unknown magic type. +=end original + +ä»ã§ã¯ãèªã¿è¾¼ã¿å°ç¨ã®å¤ã§ããæ¢ã«ä¸æãªãã¸ãã¯åãä¿æãã¦ãã SV ã§ã +常㫠"Don't know how to handle magic of type \\%o" 㧠croak ãã¾ãã + =item * +=begin original + The experimental C<fetch_cop_label> function has been renamed to C<cop_fetch_label>. +=end original + +å®é¨ç㪠C<fetch_cop_label> é¢æ°ã¯ C<cop_fetch_label> ã«ååã +å¤æ´ããã¾ããã + =item * +=begin original + The C<cop_store_label> function has been added to the API, but is experimental. +=end original + +C<cop_store_label> é¢æ°ã API ã«è¿½å ããã¾ããããå®é¨çãªãã®ã§ãã + =item * +=begin original + F<embedvar.h> has been simplified, and one level of macro indirection for PL_* variables has been removed for the default (non-multiplicity) configuration. PERLVAR*() macros now directly expand their arguments to @@ -3852,20 +3944,49 @@ F<embedvar.h> defining a macro to map C<PL_Idefgv> to C<PL_defgv>. XS code which has unwarranted chumminess with the implementation may need updating. +=end original + +F<embedvar.h> ãåç´åãããããã©ã«ãã® (éå¤éå) è¨å®ã§ã® PL_* +å¤æ°ã® 1 ã¬ãã«ã®éæ¥ãã¯ããåé¤ããã¾ããã +PERLVAR*() ãã¯ãã¯ãnow directly expand their arguments to +tokens such as C<PL_defgv>, instead of expanding to C<PL_Idefgv>, with +F<embedvar.h> defining a macro to map C<PL_Idefgv> to C<PL_defgv>. +å®è£ ä¸ã®ä¿è¨¼ããã¦ããªãå好æ§ãã㤠XS ã³ã¼ãã¯æ´æ°ãå¿ è¦ããããã¾ããã +(TBT) + =item * +=begin original + An API has been added to explicitly choose whether or not to export XSUB symbols. More detail can be found in the comments for commit e64345f8. +=end original + +XSUB ã·ã³ãã«ãã¨ã¯ã¹ãã¼ããããã©ãããæ示çã«é¸æããããã® API ã +追å ããã¾ããã +ãããªã詳細ã¯ã³ããã e64345f8 ã®ã³ã¡ã³ãã«ããã¾ãã + =item * +=begin original + The C<is_gv_magical_sv> function has been eliminated and merged with C<gv_fetchpvn_flags>. It used to be called to determine whether a GV should be autovivified in rvalue context. Now it has been replaced with a new C<GV_ADDMG> flag (not part of the API). +=end original + +C<is_gv_magical_sv> é¢æ°ãåé¤ãããC<gv_fetchpvn_flags> ã¨çµ±åããã¾ããã +GV ãå³è¾ºå¤ã³ã³ããã¹ãã§èªåæå¹åãããã¹ããã©ããã決å®ããããã« +å¼ã³åºããã¦ãã¾ããã +ãã㯠(API ã®ä¸é¨ã§ã¯ãªã) æ°ãã C<GV_ADDMG> ãã©ã°ã§ç½®ãæãããã¾ããã + =item * +=begin original + The returned code point from the function C<utf8n_to_uvuni()> when the input is malformed UTF-8, malformations are allowed, and C<utf8> warnings are off is now the Unicode REPLACEMENT CHARACTER @@ -3874,8 +3995,22 @@ only malformations that have well-defined values are a zero-length string (0 is the return), and overlong UTF-8 sequences. +=end original + +The returned code point from the function C<utf8n_to_uvuni()> +when the input is malformed UTF-8, malformations are allowed, and +C<utf8> warnings are off is now the Unicode REPLACEMENT CHARACTER +whenever the malformation is such that no well-defined code point can be +computed. +以åã¯è¿ãããå¤ã¯åºæ¬çã«ã¯ãã¿ã§ããã +ããç¥ããã¦ããå¤ã®å¯ä¸ã®ä¸æ£å½¢ã¯é·ã 0 ã®æåå (0 ãè¿ããã¾ã) 㨠+é·ããã UTF-8 ã·ã¼ã±ã³ã¹ã§ãã +(TBT) + =item * +=begin original + Padlists are now marked C<AvREAL>; i.e., reference-counted. They have always been reference-counted, but were not marked real, because F<pad.c> did its own clean-up, instead of using the usual clean-up code in F<sv.c>. @@ -3883,14 +4018,37 @@ but is turned off in F<pad.c> right before the padlist is freed (after F<pad.c> has done its custom freeing of the pads). +=end original + +ããããªã¹ã㯠C<AvREAL> ã¨ãã¦ãã¼ã¯ãããããã«ãªãã¾ãã; ã¤ã¾ãã +åç §ã«ã¦ã³ãããã¾ãã +ããã¯å¸¸ã«åç §ã«ã¦ã³ãããã¾ãããé常㮠F<sv.c> ã®ã¯ãªã¼ã³ããã +ã³ã¼ãã使ãã®ã§ã¯ãªããF<pad.c> ãèªèº«ã§ã¯ãªã¼ã³ããããã¦ããããã +å®éã«ã¯ãã¼ã¯ããã¦ãã¾ããã§ããã +ããã¯ã¹ã¬ããã®ã¯ãã¼ã³åã§åé¡ãå¼ãèµ·ããã®ã§ã C<AvREAL> ãã©ã°ã +ãªã³ã«ããããã«ãªãã¾ããããããããªã¹ãã解æ¾ãããç´å (F<pad.c> ã +ç¬èªã®ãããã®è§£æ¾ãè¡ã£ãå¾) F<pad.c> ã«ãã£ã¦ãªãã«ããã¾ãã + =item * +=begin original + All the C files that make up the Perl core have been converted to UTF-8. +=end original + +Perl ã³ã¢ã®å ¨ã¦ã® C ãã¡ã¤ã«ã UTF-8 ã«å¤æããã¾ããã + =item * +=begin original + These new functions have been added as part of the work on Unicode symbols: +=end original + +以ä¸ã®æ°ããé¢æ°ã Unicode æåã§ã®ä½æ¥ã®ä¸é¨ã¨ãã¦è¿½å ããã¾ããã + HvNAMELEN HvNAMEUTF8 HvENAMELEN @@ -3922,13 +4080,27 @@ whichsig_sv newCONSTSUB_flags +=begin original + The gv_fetchmethod_*_flags functions, like gv_fetchmethod_flags, are experimental and may change in a future release. +=end original + +gv_fetchmethod_*_flags é¢æ°ã¯ãgv_fetchmethod_flags ã¨åæ§ã«å®é¨çã§ããã +å°æ¥ã®ãªãªã¼ã¹ã§å¤æ´ãããããããã¾ããã + =item * +=begin original + The following functions were added. These are I<not> part of the API: +=end original + +以ä¸ã®é¢æ°ã追å ããã¾ããã +ããã㯠API ã®ä¸é¨ I<ã§ã¯ããã¾ãã> ã + GvNAMEUTF8 GvENAMELEN GvENAME_HEK @@ -3939,24 +4111,52 @@ sv_sethek HEKfARG +=begin original + There is also a C<HEKf> macro corresponding to C<SVf>, for interpolating HEKs in formatted strings. +=end original + +ãã©ã¼ããããããæååã® HEK ãå±éããããã«ãC<SVf> ã«å¯¾å¿ãã +C<HEKf> ãã¯ããããã¾ãã + =item * +=begin original + C<sv_catpvn_flags> takes a couple of new internal-only flags, C<SV_CATBYTES> and C<SV_CATUTF8>, which tell it whether the char array to be concatenated is UTF8. This allows for more efficient concatenation than creating temporary SVs to pass to C<sv_catsv>. +=end original + +C<sv_catpvn_flags> ã¯äºã¤ã®æ°ããå é¨å°ç¨ã®ãã©ã° C<SV_CATBYTES> 㨠+C<SV_CATUTF8> ãåãããã«ãªããé£çµãããæåé åã UTF8 ãã©ããã +ç¥ããã¾ãã +ããã«ãã C<sv_catsv> ã«æ¸¡ãããã«ä¸æç㪠SV ãä½æããããã +ããå¹ççã«çµåãè¡ããããã«ãªãã¾ãã + =item * +=begin original + For XS AUTOLOAD subs, $AUTOLOAD is set once more, as it was in 5.6.0. This is in addition to setting C<SvPVX(cv)>, for compatibility with 5.8 to 5.14. See L<perlguts/Autoloading with XSUBs>. +=end original + +XS AUTOLOAD ãµãã«ã¼ãã³ã®ããã«ã$AUTOLOAD ã 5.6.0 ã®é ã®ããã« +åã³è¨å®ãããããã«ãªãã¾ããã +ããã¯ã5.8 ãã 5.14 ã®äºææ§ã®ããã«ãC<SvPVX(cv)> ã®è¨å®ã«è¿½å ããã¾ãã +L<perlguts/Autoloading with XSUBs> ãåç §ãã¦ãã ããã + =item * +=begin original + Perl now checks whether the array (the linearised isa) returned by a MRO plugin begins with the name of the class itself, for which the array was created, instead of assuming that it does. This prevents the first element @@ -3964,35 +4164,90 @@ C<mro::get_linear_isa> may return an array with one more element than the MRO plugin provided [perl #94306]. +=end original + +Perl now checks whether the array (the linearised isa) returned by a MRO +plugin begins with the name of the class itself, for which the array was +created, instead of assuming that it does. +ããã¯ã¡ã½ããæ¤ç´¢ä¸ã«æåã®è¦ç´ ãã¹ããããããã®ãé²ãã¾ãã +ããã¯ã¾ããC<mro::get_linear_isa> ã MRO ãã©ã°ã¤ã³ãæä¾ãããããä¸ã¤ +è¦ç´ ã®å¤ãé åãè¿ããããããªããã¨ãæå³ãã¾ã [perl #94306]ã +(TBT) + =item * +=begin original + C<PL_curstash> is now reference-counted. +=end original + +C<PL_curstash> ã¯åç §ã«ã¦ã³ããããããã«ãªãã¾ããã + =item * +=begin original + There are now feature bundle hints in C<PL_hints> (C<$^H>) that version declarations use, to avoid having to load F<feature.pm>. One setting of the hint bits indicates a "custom" feature bundle, which means that the entries in C<%^H> still apply. F<feature.pm> uses that. +=end original + +F<feature.pm> ãèªã¿è¾¼ãå¿ è¦æ§ãé¿ããããã«ããã¼ã¸ã§ã³å®£è¨ã«ä½¿ã +æ°ããæ©è½ãã³ãã«ãã³ã C<PL_hints> (C<$^H>) ã追å ããã¾ããã +ãã³ããããã®ä¸ã¤ã®è¨å®ã¯ãã«ã¹ã¿ã ãæ©è½ãã³ãã«ã示ãã¦ãã¦ã +ãã㯠C<%^H> ã®ã¨ã³ããªãã¾ã é©ç¨ããã¦ãããã¨ãæå³ãã¾ãã +F<feature.pm> ã¯ããã使ãã¾ãã + +=begin original + The C<HINT_FEATURE_MASK> macro is defined in F<perl.h> along with other hints. Other macros for setting and testing features and bundles are in the new F<feature.h>. C<FEATURE_IS_ENABLED> (which has moved to F<feature.h>) is no longer used throughout the codebase, but more specific macros, e.g., C<FEATURE_SAY_IS_ENABLED>, that are defined in F<feature.h>. +=end original + +C<HINT_FEATURE_MASK> ãã¯ãããã®ä»ã®ãã³ãã¨å ±ã« F<perl.h> ã« +å®ç¾©ããã¾ããã +æ©è½ã¨ãã³ãã«ãè¨å®ããã³ãã¹ãããããã®ãã®ä»ã®ãã¯ãã¯æ°ãã +F<feature.h> ã«ããã¾ãã +(F<feature.h> ã«ç§»åãã) C<FEATURE_IS_ENABLED> ã¯ã³ã¼ããã¼ã¹å ¨ä½ãã +ãã¯ã使ãããªããªãã¾ãããã C<FEATURE_SAY_IS_ENABLED> ã®ãã㪠+ããéå®çãªãã¯ã㯠F<feature.h> ã«å®ç¾©ããã¦ãã¾ãã + =item * +=begin original + F<lib/feature.pm> is now a generated file, created by the new F<regen/feature.pl> script, which also generates F<feature.h>. +=end original + +F<lib/feature.pm> ã¯æ°ãã F<regen/feature.pl> ã¹ã¯ãªããã§çæããã +ãã¡ã¤ã«ã¨ãªãããã®ã¹ã¯ãªãã㯠F<feature.h> ãçæãã¾ãã + =item * +=begin original + Tied arrays are now always C<AvREAL>. If C<@_> or C<DB::args> is tied, it is reified first, to make sure this is always the case. +=end original + +tie ãããé åã¯å¸¸ã« C<AvREAL> ã«ãªãã¾ããã +C<@_> ã¾ã㯠C<DB::args> ã tie ãããã¨ã常ã«å½ã¦ã¯ã¾ãããã«ã +æåã«å ·ä½åããã¾ãã + =item * +=begin original + Two new functions C<utf8_to_uvchr_buf()> and C<utf8_to_uvuni_buf()> have been added. These are the same as C<utf8_to_uvchr> and C<utf8_to_uvuni> (which are now deprecated), but take an extra parameter @@ -4000,17 +4255,43 @@ string. See L<perlapi/utf8_to_uvchr_buf> and L<perlapi/utf8_to_uvuni_buf>. +=end original + +äºã¤ã®æ°ããé¢æ° C<utf8_to_uvchr_buf()> 㨠C<utf8_to_uvuni_buf()> ã +追å ããã¾ããã +ãããã¯(éæ¨å¥¨ã¨ãªã£ã) C<utf8_to_uvchr> ããã³ C<utf8_to_uvuni> 㨠+åãã§ãããå ¥åæååã®æ«å°¾ãè¶ ãã¦èªã¿è¾¼ãã®ãå®ãããã«ä½¿ããã追å ã® +å¼æ°ãåãã¾ãã +L<perlapi/utf8_to_uvchr_buf> 㨠L<perlapi/utf8_to_uvuni_buf> ã +åç §ãã¦ãã ããã + =item * +=begin original + The regular expression engine now does TRIE case insensitive matches under Unicode. This may change the output of C<< use re 'debug'; >>, and will speed up various things. +=end original + +æ£è¦è¡¨ç¾ã¨ã³ã¸ã³ã¯ Unicode ã§ã®å¤§æåå°æåãç¡è¦ãããããã³ã°ã« TRIE ã +ããããã«ãªãã¾ããã +ããã«ãã C<< use re 'debug'; >> ã®åºåãå¤ããå¯è½æ§ãããã +ã¾ãè²ã ãªãã¨ãé«éåãã¾ãã + =item * +=begin original + There is a new C<wrap_op_checker()> function, which provides a thread-safe alternative to writing to C<PL_check> directly. +=end original + +C<PL_check> ãç´æ¥æ¸ãããã®ã¹ã¬ããã»ã¼ããªä»£æ¿çãæä¾ããããã«ã +C<wrap_op_checker()> é¢æ°ã追å ããã¾ããã + =back =head1 Selected Bug Fixes