In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/906024c7fead4086ed911b8052d784aa07c2f1e2?hp=a24e5063e082f524bc799cca6607afc923ee5cbf>
- Log ----------------------------------------------------------------- commit 906024c7fead4086ed911b8052d784aa07c2f1e2 Author: Father Chrysostomos <[email protected]> Date: Tue Apr 24 22:27:04 2012 -0700 perlsub: Fix new typo Since the typo was added during code freeze, I hope Iâm not going too far in fixing it during code freeze. :-) M pod/perlsub.pod commit 1405d8c98626803a37408a7d016b294df6686604 Author: Father Chrysostomos <[email protected]> Date: Tue Apr 24 22:23:34 2012 -0700 perl5160delta: The coreargs opcode is undeserving of mention M Porting/perl5160delta.pod commit 3e3075706c843ebcfe1b0e90aa4e54be5dafdeec Author: Father Chrysostomos <[email protected]> Date: Tue Apr 24 22:22:38 2012 -0700 perl5160delta: 2 dots after spaces, please M Porting/perl5160delta.pod commit 44d827786f8553a965b6bc9297fddb57791abea9 Author: Father Chrysostomos <[email protected]> Date: Tue Apr 24 22:19:47 2012 -0700 perl5160delta: Document wrap_op_checker This was added in e8570548af4, but was somehow missed from perl5158delta. M Porting/perl5160delta.pod commit 132f64c45cf03ff9f05a1d7041c9ac9ecbdfea2f Author: Father Chrysostomos <[email protected]> Date: Tue Apr 24 22:18:17 2012 -0700 perl5160delta: Tweak punctuation M Porting/perl5160delta.pod commit 662ded96f89fe17cb0065b57b259632cbf394446 Author: Father Chrysostomos <[email protected]> Date: Tue Apr 24 22:15:13 2012 -0700 perl5160delta: More details for C<utf8_to_uv*_buf> I had a note to myself to make sure these were added. I donât remember why they were not already there. Perhaps the changes were after 5.15.9. M Porting/perl5160delta.pod commit cb592430394b1612b2e964d2b8e2b89c81d68737 Author: Father Chrysostomos <[email protected]> Date: Tue Apr 24 22:08:16 2012 -0700 perl5160delta: Add missing C<> M Porting/perl5160delta.pod ----------------------------------------------------------------------- Summary of changes: Porting/perl5160delta.pod | 51 ++++++++++++++++++++++++++------------------ pod/perlsub.pod | 4 +- 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/Porting/perl5160delta.pod b/Porting/perl5160delta.pod index f8ff298..55e218e 100644 --- a/Porting/perl5160delta.pod +++ b/Porting/perl5160delta.pod @@ -286,7 +286,7 @@ One-character non-ASCII non-punctuation variables (like C<$é>) are now subject to "Used only once" warnings. They used to be exempt, as they was treated as punctuation variables. -Also, single-character Unicode punctuation variables (like $â°) are now +Also, single-character Unicode punctuation variables (like C<$â°>) are now supported [perl #69032]. =head3 Improved ability to mix locales and Unicode, including UTF-8 locales @@ -499,6 +499,13 @@ guarantee that it doesn't read (up to 12 bytes in the worst case) beyond the end of its input string. See 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 + +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>. + =head2 C<File::Glob::bsd_glob()> memory error with GLOB_ALTDIRFUNC (CVE-2011-2728). Calling C<File::Glob::bsd_glob> with the unsupported flag @@ -530,11 +537,12 @@ file most likely for applications to have used is F<lib/unicore/ToDigit.pl>. L<Unicode::UCD/prop_invmap()> can be used to get at its data instead. -=head2 C<is_utf8_char()> +=head2 XS functions C<is_utf8_char()>, C<utf8_to_uvchr()> and +C<utf8_to_uvuni()> 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. =head1 Future Deprecations @@ -715,7 +723,7 @@ Previously, it would stringify as an empty string, but some operators would treat it as undefined, producing an "uninitialized" warning. Now it stringifies as __ANONIO__ [perl #96326]. -=head2 User-defined case changing operations. +=head2 User-defined case-changing operations This feature was deprecated in Perl 5.14, and has now been removed. The CPAN module L<Unicode::Casing> provides better functionality without @@ -1714,35 +1722,36 @@ without cc. =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 +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>. +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>. +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 +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 +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 @@ -1778,18 +1787,13 @@ experimental. 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 +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 +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 * -A C<coreargs> opcode has been added, to be used by C<&CORE::foo> subs to sort -out C<@_>. - -=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. @@ -1932,6 +1936,11 @@ 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 * + +There is a new C<wrap_op_checker()> function, which provides a thread-safe +alternative to writing to C<PL_check> directly. + =back =head1 Selected Bug Fixes diff --git a/pod/perlsub.pod b/pod/perlsub.pod index 2ab59fe..760e496 100644 --- a/pod/perlsub.pod +++ b/pod/perlsub.pod @@ -222,8 +222,8 @@ X<&> Since Perl 5.16.0, the C<__SUB__> token is available under C<use feature 'current_sub'> and C<use 5.16.0>. It will evaluate to a reference to the -currently sub, which allows for recursive calls without knowing your -subroutine's name. +currently-running sub, which allows for recursive calls without knowing +your subroutine's name. use 5.16.0; my $factorial = sub { -- Perl5 Master Repository
