From: Jesse Vincent Date: Wed, 30 Sep 2009 13:41:25 +0000 (+0900) Subject: Further perldelta scrubbing X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=7f0da121bc66337b3b16e9b917ab4b287c9e6f7b;p=p5sagit%2Fp5-mst-13.2.git Further perldelta scrubbing --- diff --git a/pod/perl5110delta.pod b/pod/perl5110delta.pod index 612a6f0..bddb9f1 100644 --- a/pod/perl5110delta.pod +++ b/pod/perl5110delta.pod @@ -257,6 +257,24 @@ in a change of behaviour between 5.8.x and 5.10.0: C now returns undef. +=item * + +Unsupported private C API functions are now declared "static" to prevent +leakage to Perl's public API + +=item * + +F no longer builds with UTF-8 support in the regexp engine to support the bootstrapping process + +This allows a build to complete with PERL_UNICODE set and a UTF-8 locale. +Without this there's a bootstrapping problem, as miniperl can't load the UTF-8 +components of the regexp engine, because they're not yet built. + +=item * + +F's @INC is now restricted to just -I..., the split of $ENV{PERL5LIB}, and "." + + =back =head1 Core Enhancements @@ -348,10 +366,25 @@ on how to specify C when creating a distribution for CPAN. =head2 // now behaves like || in when clauses -=head2 You can now set C<-W> from the C environment varialbe +=head2 You can now set C<-W> from the C environment variable + +=head2 Add support for Abstract namespace sockets + +Abstract namespace sockets are Linux-specific socket type that live in +AF_UNIX family, slightly abusing it to be able to use arbitrary +character arrays as addresses: They start with nul byte and are not +terminated by nul byte, but with the length passed to the socket() +system call. + + =head1 Modules and Pragmata +=head2 Dual-lifed modules moved + +Dual-lifed modules maintained primarily in the Perl core now live in ext/. +Dual-lifed modules maintained primarily on CPAN now live in cpan/ + =head2 New Modules and Pragmata =over 4 @@ -1193,6 +1226,8 @@ pod/perlthrtut.pod is the same material reworked for ithreads. With version objects, we need them to use MODULE VERSION syntax. This patch removes the deprecation note. +=head2 Added security contact information to L + =head1 Performance Enhancements =over 4 @@ -1645,6 +1680,10 @@ or cause the following assertion failure [RT #60508]: Assertion rx->sublen >= (s - rx->subbeg) + i failed +=item * + +Previously missing files from Unicode 5.1 Character Database are now included. + =back =head1 New or Changed Diagnostics @@ -1781,6 +1820,12 @@ that was enabled when the F binary was compiled. Smartmatch resolution tracing has been added as a new diagnostic. Use C<-DM> to enable it. + +=item * + +A new debugging flag C<-DB> now dumps subroutine definitions, leaving +C<-Dx> for its original purpose of dumping syntax trees. + =item * Uses of C, C, C, C, C etc have been @@ -2402,109 +2447,6 @@ were only for one or the other.) This doesn't contradict the documentation, as there isn't any. Oops. -=head2 Give G_VOID, G_SCALAR and G_ARRAY the same numeric values as OPf_WANT_VOID, OPf_WANT_SCALAR and OPf_WANT_LIST. - - -=head2 Squeeze the context type down to 4 bits, and move the private flags to fit within the next 4 bits. - - -=head2 In struct block change blku_type from U8 to U16, and the "spare" U8 to U16, with the lockstep changes in struct subst. -Eliminate lval from -struct block_sub, and instead store it in the U16 in struct block. - - -=head2 In struct block_eval, eliminate old_in_eval and old_op_type by storing the data in blk_u16. - - -=head2 The layout for struct block_loop under ithreads can be simplified. - -Instead of wedging the pad offset into a void* iterdata, and always -storing PL_comppad even when it isn't used, instead do this: - - PAD *oldcomppad; /* Also used for the GV, if targoffset is 0 */ - /* This is also accessible via cx->blk_loop.my_op->op_targ */ - PADOFFSET targoffset; - -and store the GV pointer in oldcompad. Pointers to pointers seems -cleaner. This also allows us to eliminate the flag bit CXp_PADVAR. - - -=head2 In XS_PerlIO_get_layers() take advantage of the implementation of - -In XS_PerlIO_get_layers() take advantage of the implementation of -PerlIO_get_layers(), by co-opting the new SVs it creates, rather than -copying them. - - -=head2 Micro-optimise the order of the context types. [Because I can :-)] - -=head2 [patch] optimize OP_IS_(FILETEST|SOCKET) macros - -=head2 Eliminate ck_lengthconst. - -=head2 Chainsaw DEBUG_S out, as suggested by Vincent Pit. - -=head2 Unsupported private API functions are now declared "static" to prevent leakage to the public API - -=head2 Perl_cv_ckproto() is not part of the public API, and not used anywhere. It has been removed - -=head2 Remove all the 5005threads specific mutex macros, which are now vestigial. - -=head2 Do not honor TMPDIR for anonymous temporary files when tainting - -Use a default of /tmp on Unixes when TMPDIR is unset or empty, or -when creation of a temporary file in it fails - -=head2 Add a pluggable hook in op_free() - - - - -=head2 Dual-lifed modules moved - -Dual-lifed modules maintained primarily in the Perl core now live in ext/. -Dual-lifed modules maintained primarily on CPAN now live in cpan/ - -=head2 MAD now builds on C++ - - Fix building MAD with C++ - a MAD_PV of "" is illegal, as it will be free()d. - -commit 4e73d6a402bc493d66d19c409c41e1e271c6450b -Author: Nicholas Clark -Date: Wed Sep 23 11:59:31 2009 +0100 - - Add a --chdir option to configpm, and use this in the Win32 Makfiles. - - A slight Makefile simplification, and another move towards Win32 standardising - on running miniperl as $(MINIPERL), which currently is ..\miniperl.exe - - -=head2 miniperl no longer builds with UTF-8 support in the regexp engine to support the bootstrapping process - - This allows a build to complete with PERL_UNICODE set and a UTF-8 locale. - Without this there's a bootstrapping problem, as miniperl can't load the UTF-8 - components of the regexp engine, because they're not yet built. - -=head2 miniperl now has a restricted @INC - - Restrict miniperl to just -I..., the split of $ENV{PERL5LIB}, and "." in @INC - -=head2 miniperl now identifies itself in the output of miniperl -V - -PERL_IS_MINIPERL is now declared in the verbose configuration output. - -=head2 Parallel testing is pretty much done. - -commit d8723a6a74b2c12e9d732728dbe717672ab893f2 -Author: Salvador Ortiz Garcia -Date: Sun Sep 6 23:41:57 2009 +0200 - - Corrupt filename when setting %INC entry in a @INC hook - - The code in pp_ctl.c after calling an @INC hook blindly assumes that the - SV setted by the user in %INC is an SVPV (SvPOK true) for setting the - filename. So when the user uses other scalar types, the output of - __FILE__, warn, die, caller, etc. shows random garbage. Author: Zefram Date: Sun Sep 6 17:29:43 2009 +0200 @@ -2525,125 +2467,6 @@ Date: Sun Sep 6 17:29:43 2009 +0200 things happen. The resulting A:H works either way, which is essential for its dual-life nature. -commit 354c724e8ab74f150e14800acc80d505949161f5 -Author: Nicholas Clark -Date: Fri Sep 4 11:04:30 2009 +0100 - - OS/2 hadn't been updated to cope with the ext/ restructuring. - - I don't have OS/2, so I can't test this, but the code in Configure will assume - flat directories, because ext/File-Glob is present, and hence not search - recursively and not find the OS/2 extensions if they are copied into ext/OS2/* - - I believe that without this change OS/2 will not have been building since the - change to flattened ext. This change may not be sufficient to get OS/2 - building again, but it is in the right direction. - -commit bf6bfb44d9f2e07e4bd25b8eba2d9132fcec637e -Author: Abhijit Menon-Sen -Date: Fri Sep 4 12:41:56 2009 +0530 - - Entity-encode E<0xNNNN> and E<0NNN> correctly - - Fixes bug #68964 reported by samv, where pod2html encoded E<0x2070> to - &0x2070 and not ⁰. perlpodspec says E<0x2070> should work, but the - code in Pod::Html accepted only E. The new code accepts both, and - processes octal entities correctly as well. - - Signed-off-by: Abhijit Menon-Sen - -commit 61131c9411631986e27506a8a66b4d43f2f3e4e0 -Author: Karl Williamson -Date: Thu Sep 3 11:29:30 2009 -0600 - - Add missing files from Unicode 5.1 Character Database - - -=head2 set PERL_LEGACY_UNICODE_CHARCLASS_MAPPINGS to 0 and enable proper POSIX char class matching - - This also alters which Unicode properties that the POSIX character - class and the Perl "special" character classes, like \w and \d map - to. At the same time it allows a number of tests for POSIX character - class behaviour to be switched from todo to non todo. Legacy testing - is still available by changing the define and setting the - PERL_TEST_LEGACY_POSIX_CC value to true. - - -commit 89904c08923161afd23c629d5c2c7472a09c16bb -Author: Lubomir Rintel -Date: Mon Aug 31 11:45:23 2009 +0200 - - Fix unpack of abstract socket addrs with nul byte - - Addresses of Linux abstract namespace sockets are not nul-terminated C - strings, but rather an arbitrary character arrays. According to unix(7) - documentation from Linux, "Null bytes in the name have no special - significance." - - unpack_sockaddr_un() was just throwing the initial nul byte away and - then treating the rest like ordinary C string when computing the length - of the address, which was wrong. This fix utilizes the length of the PV - for addresses starting with nul instead. - - The regression test was extended with check for the problem. - - -commit 16fa5c119c4bda5c0396a5f81296bd1ccc128a9c -Author: Vincent Pit -Date: Thu Aug 27 11:13:09 2009 +0200 - - Speed up repeatcpy() by at least 40% for 1-char or numerous repeats - - And don't make it receive the interpreter anymore. - - For 1-char repeats, use memset(). Otherwise, use the old implementation up - to some (small) length, and then use memcpy() in a binary manner, based on - what we previously copied. - - Note that we use memcpy() so both strings shouldn't overlap. The previous - implementation didn't allow this as well. This would be a good place to use - the restrict keyword from C99. I'm not sure if Configure has a probe for it. - -=head2 set utf8 bit on inferred method names when C - -=head2 New debugging flag -DB now dumps subroutine definitions, - leaving -Dx for its original purpose of dumping syntax trees. - - -=head2 Make MAD understand the "..." operator - - -=head2 Add support for Abstract namespace sockets - - Abstract namespace sockets are Linux-specific socket type that live in - AF_UNIX family, slightly abusing it to be able to use arbitrary - character arrays as addresses: They start with nul byte and are not - terminated by nul byte, but with the length passed to the socket() - system call. - - Added regression test for the correct address length computation. - - Signed-off-by: Lubomir Rintel - - -=head2 Note that linearising C3 MRO is now 40% faster for single inheritance. - -=head2 Fix a B::Deparse bug - constants and PCSs were appearing as subroutine stubs. - - - - - - -=head2 Win32: Don't explicitly link against msvcrt when using MinGW. - - The latest releases of MinGW generate hard linker errors - when msvcrt is specified explicitly. It will still link - against this library implicitly anyways, so specifying it - isn't needed. - -=head2 Add security contact information to perlsec - =item Introduce "delete local" commit 7332a6c406299d5e73836d2410689bd7c3ae4782