[perldocjp-cvs 1424] CVS update: docs/perl/5.16.0

Back to archive index

argra****@users***** argra****@users*****
2012年 4月 25日 (水) 18:11:12 JST


Index: docs/perl/5.16.0/perl5160delta.pod
diff -u docs/perl/5.16.0/perl5160delta.pod:1.6 docs/perl/5.16.0/perl5160delta.pod:1.7
--- docs/perl/5.16.0/perl5160delta.pod:1.6	Wed Apr 25 04:59:18 2012
+++ docs/perl/5.16.0/perl5160delta.pod	Wed Apr 25 18:11:12 2012
@@ -686,12 +686,12 @@
 
 =begin original
 
-Also, single-character Unicode punctuation variables (like $‰) are now
+Also, single-character Unicode punctuation variables (like C<$‰>) are now
 supported [perl #69032].
 
 =end original
 
-また、($‰ のような)単一文字の Unicode 句読点変数に対応しました
+また、(C<$‰> のような)単一文字の Unicode 句読点変数に対応しました
 [perl #69032]。
 
 =head3 Improved ability to mix locales and Unicode, including UTF-8 locales
@@ -1171,6 +1171,8 @@
 
 =head3 The C<\$> prototype accepts any scalar lvalue
 
+(C<\$> プロトタイプは任意のスカラ左辺値を受け付けるように)
+
 =begin original
 
 The C<\$> and C<\[$]> subroutine prototypes now accept any scalar lvalue
@@ -1226,6 +1228,25 @@
 読み込まないことを保証できないので非推奨になりました。
 L<is_utf8_char_buf()|/Added is_utf8_char_buf()> を参照してください。
 
+=head2 Malformed UTF-8 input could cause attempts to read beyond the end of the buffer
+
+(不正な UTF-8 入力がバッファの末尾を超えて読み込もうとすることがある)
+
+=begin 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>.
+
+=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)
+
 =head2 C<File::Glob::bsd_glob()> memory error with GLOB_ALTDIRFUNC (CVE-2011-2728).
 
 (GLOB_ALTDIRFUNC での C<File::Glob::bsd_glob()> のメモリエラー (CVE-2011-2728))
@@ -1305,20 +1326,23 @@
 F<lib/unicore/ToDigit.pl> です。
 代わりにこのデータを得るために L<Unicode::UCD/prop_invmap()> が使えます。
 
-=head2 C<is_utf8_char()>
+=head2 XS functions C<is_utf8_char()>, C<utf8_to_uvchr()> and
+C<utf8_to_uvuni()>
+
+(XS 関数 C<is_utf8_char()>, C<utf8_to_uvchr()>, C<utf8_to_uvuni()>)
 
 =begin original
 
 This function is deprecated because it could read beyond the end of the
-input string.  Use the new L<is_utf8_char_buf()|/Added is_utf8_char_buf()>
-instead.
+input string.  Use the new L<is_utf8_char_buf()|/Added is_utf8_char_buf()>,
+C<utf8_to_uvchr_buf()> and C<utf8_to_uvuni_buf()> instead.
 
 =end original
 
 この関数は、入力文字列の末尾を超えて読み込むかもしれないので、
 非推奨になりました。
-代わりに新しい L<is_utf8_char_buf()|/Added is_utf8_char_buf()> を
-使ってください。
+代わりに新しい L<is_utf8_char_buf()|/Added is_utf8_char_buf()>,
+C<utf8_to_uvchr_buf()>, C<utf8_to_uvuni_buf()> を使ってください。
 
 =head1 Future Deprecations
 
@@ -1661,7 +1685,7 @@
 未定義として扱い、"uninitialized" 警告を出力していました。
 今では __ANONIO__ と文字列化されます [perl #96326]。
 
-=head2 User-defined case changing operations.
+=head2 User-defined case changing operations
 
 (ユーザー定義大文字変更操作)
 
@@ -1911,7 +1935,7 @@
 
 =head2 Which Non-ASCII characters get quoted by C<quotemeta> and C<\Q> has changed
 
-(C<quotemeta> と C<\Q> でクォートされる非 ASCII 文字が変更されました)
+(C<quotemeta> と C<\Q> でクォートされる非 ASCII 文字の変更)
 
 =begin original
 
@@ -2216,6 +2240,8 @@
 
 =head2 Removed Modules and Pragmata
 
+(削除されたモジュールとプラグマ)
+
 =begin original
 
 As promised in Perl 5.14.0's release notes, the following modules have
@@ -2819,11 +2845,6 @@
 
 =item *
 
-The C<-Dusesitecustomize> and C<-Duserelocatableinc> options now work
-together properly.
-
-=item *
-
 F<regexp.h> has been modified for compatibility with GCC's B<-Werror>
 option, as used by some projects that include perl's header files (5.14.1).
 
@@ -2843,25 +2864,68 @@
 =item *
 
 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
+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.
 
 =item *
 
-Building with C<-DPERL_GLOBAL_STRUCT>
-works again.  This configuration is not
+Building with C<-DPERL_GLOBAL_STRUCT> works again.  This configuration is not
 generally used.
 
 =item *
 
 Perl configured with I<MAD> now correctly frees C<MADPROP> structures when
-OPs are freed.  C<MADPROP>s are now allocated with
-C<PerlMemShared_malloc()>
+OPs are freed.  C<MADPROP>s are now allocated with C<PerlMemShared_malloc()>
+
+=item *
+
+F<makedef.pl> has been refactored.  This should have no noticeable affect on
+any of the platforms that use it as part of their build (AIX, VMS, Win32).
+
+=item *
+
+C<useperlio> can no longer be disabled.
+
+=item *
+
+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
+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.
+
+As F<global.sym> was never installed, this change should not be visible
+outside the build process.
+
+=item *
+
+F<pod/buildtoc>, used by the build process to build L<perltoc>, has been
+refactored and simplified.  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.
+
+=item *
+
+F<pod/roffitall> is now built by F<pod/buildtoc>, instead of being
+shipped with the distribution.  Its list of manpages is now generated
+(and therefore current).  See also RT #103202 for an unresolved related
+issue.
+
+=item *
+
+The man page for C<XS::Typemap> is no longer installed.  C<XS::Typemap>
+is a test module which is not installed, hence installing its
+documentation makes no sense.
+
+=item *
+
+The -Dusesitecustomize and -Duserelocatableinc options now work
+together properly.
 
 =back
 
@@ -2885,6 +2949,19 @@
 
 =back
 
+=head3 HP-UX
+
+=over 4
+
+=item *
+
+HP-UX PA-RISC/64 now supports gcc-4.x
+
+A fix to correct the socketsize now makes the test suite pass on HP-UX
+PA-RISC for 64bitall builds.
+
+=back
+
 =head3 VMS
 
 =over 4
@@ -2940,6 +3017,185 @@
 
 =item *
 
+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)
+
+=item *
+
+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>.
+
+=item *
+
+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>.
+
+=item *
+
+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()>.
+
+=item *
+
+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
+
+=over
+
+=item 1.
+
+Croak "Modification of a read-only value attempted" if read only
+
+=item 2.
+
+Return without error if the SV happened to already have this magic
+
+=item 3.
+
+otherwise croak "Don't know how to handle magic of type \\%o"
+
+=back
+
+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.
+
+=item *
+
+The experimental C<fetch_cop_label> function has been renamed to
+C<cop_fetch_label>.
+
+=item *
+
+The C<cop_store_label> function has been added to the API, but is
+experimental.
+
+=item *
+
+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
+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 code
+which has unwarranted chumminess with the implementation may need updating.
+
+=item *
+
+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.
+
+=item *
+
+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).
+
+=item *
+
+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>.
+That caused problems in thread cloning, so now the C<AvREAL> flag is on,
+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).
+
+=item *
+
+All the C files that make up the Perl core have been converted to UTF-8.
+
+=item *
+
+These new functions have been added as part of the work on Unicode symbols:
+
+    HvNAMELEN
+    HvNAMEUTF8
+    HvENAMELEN
+    HvENAMEUTF8
+    gv_init_pv
+    gv_init_pvn
+    gv_init_pvsv
+    gv_fetchmeth_pv
+    gv_fetchmeth_pvn
+    gv_fetchmeth_sv
+    gv_fetchmeth_pv_autoload
+    gv_fetchmeth_pvn_autoload
+    gv_fetchmeth_sv_autoload
+    gv_fetchmethod_pv_flags
+    gv_fetchmethod_pvn_flags
+    gv_fetchmethod_sv_flags
+    gv_autoload_pv
+    gv_autoload_pvn
+    gv_autoload_sv
+    newGVgen_flags
+    sv_derived_from_pv
+    sv_derived_from_pvn
+    sv_derived_from_sv
+    sv_does_pv
+    sv_does_pvn
+    sv_does_sv
+    whichsig_pv
+    whichsig_pvn
+    whichsig_sv
+    newCONSTSUB_flags
+
+The gv_fetchmethod_*_flags functions, like gv_fetchmethod_flags, are
+experimental and may change in a future release.
+
+=item *
+
+The following functions were added.  These are I<not> part of the API:
+
+    GvNAMEUTF8
+    GvENAMELEN
+    GvENAME_HEK
+    CopSTASH_flags
+    CopSTASH_flags_set
+    PmopSTASH_flags
+    PmopSTASH_flags_set
+    sv_sethek
+    HEKfARG
+
+There is also a C<HEKf> macro corresponding to C<SVf>, for
+interpolating HEKs in formatted strings.
+
+=item *
+
+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>.
+
+=item *
+
+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>.
+
+=item *
+
+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
+from being skipped during method lookup.  It also means that
+C<mro::get_linear_isa> may return an array with one more element than the
+MRO plugin provided [perl #94306].
+
+=item *
+
+C<PL_curstash> is now reference-counted.
+
+=item *
+
 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
@@ -2963,23 +3219,23 @@
 
 =item *
 
-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).
+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
+that is used to guard against reading beyond the end of the input
+string.
+See L<perlapi/utf8_to_uvchr_buf> and L<perlapi/utf8_to_uvuni_buf>.
 
 =item *
 
-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>.
-That caused problems in thread cloning, so now the C<AvREAL> flag is on,
-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).
+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.
 
 =item *
 
-All the C files that make up the Perl core have been converted to UTF-8.
+There is a new C<wrap_op_checker()> function, which provides a thread-safe
+alternative to writing to C<PL_check> directly.
 
 =back
 



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