C<length undef> now returns undef.
+=item *
+
+Unsupported private C API functions are now declared "static" to prevent
+leakage to Perl's public API
+
+=item *
+
+F<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.
+
+=item *
+
+F<miniperl>'s @INC is now restricted to just -I..., the split of $ENV{PERL5LIB}, and "."
+
+
=back
=head1 Core Enhancements
=head2 // now behaves like || in when clauses
-=head2 You can now set C<-W> from the C<PERL5OPT> environment varialbe
+=head2 You can now set C<-W> from the C<PERL5OPT> 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
With version objects, we need them to use MODULE VERSION syntax. This
patch removes the deprecation note.
+=head2 Added security contact information to L<perlsec>
+
=head1 Performance Enhancements
=over 4
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
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<Nullav>, C<Nullcv>, C<Nullhv>, C<Nullop>, C<Nullsv> etc have been
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 <nick@ccl4.org>
-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 <sog@msg.com.mx>
-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 <zefram@fysh.org>
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 <nick@ccl4.org>
-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 <ams@toroid.org>
-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<x2070>. The new code accepts both, and
- processes octal entities correctly as well.
-
- Signed-off-by: Abhijit Menon-Sen <ams@toroid.org>
-
-commit 61131c9411631986e27506a8a66b4d43f2f3e4e0
-Author: Karl Williamson <khw@khw-desktop.(none)>
-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 <lkundrak@v3.sk>
-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 <perl@profvince.com>
-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<use utf8>
-
-=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 <lkundrak@fedoraproject.org>
-
-
-=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