[ this is a template for a new perldelta file. Any text flagged as
XXX needs to be processed before release. ]
-perldelta - what is new for perl v5.17.2
+perldelta - what is new for perl v5.17.3
=head1 DESCRIPTION
-This document describes differences between the 5.17.1 release and
-the 5.17.2 release.
+This document describes differences between the 5.17.2 release and
+the 5.17.3 release.
-If you are upgrading from an earlier release such as 5.17.0, first read
-L<perl5171delta>, which describes differences between 5.17.0 and
-5.17.1.
+If you are upgrading from an earlier release such as 5.17.1, first read
+L<perl5172delta>, which describes differences between 5.17.1 and
+5.17.2.
=head1 Notice
[ List each enhancement as a =head2 entry ]
-=head2 C<kill> with negative signal names
-
-C<kill> has always allowed a negative signal number, which kills the
-process group instead of a single process. It has also allowed signal
-names. But it did not behave consistently, because negative signal names
-were treated as 0. Now negative signals names like C<-INT> are supported
-and treated the same way as -2 [perl #112990].
-
=head1 Security
XXX Any security-related notices go here. In particular, any security
=item *
-L<File::stat> has been upgraded from version 1.06 to 1.07.
-
-Previously C<File::stat>'s overloaded C<-x> and C<-X> operators did not give
-the correct results for directories or executable files when running as
-root. They had been treating executable permissions for root just like for
-any other user, performing group membership tests I<etc> for files not owned
-by root. They now follow the correct Unix behaviour - for a directory they
-are always true, and for a file if any of the three execute permission bits
-are set then they report that root can execute the file. Perl's builtin
-C<-x> and C<-X> operators have always been correct.
-
-=item *
-
-L<Tie::StdHandle> has been upgraded from version 4.2 to 4.3.
-
-C<READ> now respects the offset argument to C<read> [perl #112826].
-
-=item *
-
-L<IO> has been upgraded from version 1.25_07 to 1.25_08.
-
-L<IO::Socket> tries harder to cache or otherwise fetch socket
-information.
-
-=item *
-
-L<Storable> has been upgraded from version 2.36 to 2.37.
-
-Restricted hashes were not always thawed correctly [perl #73972].
-
-Storable would croak when freezing a blessed REF object with a
-C<STORABLE_freeze()> method [perl #113880].
+L<B> has been upgraded from version 1.36 to version 1.37. All C<CVf_*> and
+C<GVf_*> and more SV-related flag values are now provided as constants in
+the C<B::> namespace and available for export. The default export list has
+not changed.
=back
However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
section.
-=head3 L<perlfunc>
+=head3 L<XXX>
=over 4
=item *
-Clarified documentation of C<our>.
+XXX Description of the change here
=back
=item *
-L<Group name must start with a non-digit word character in regex; marked by <-- HERE in mE<sol>%sE<sol>|perldiag/"Group name must start with a non-digit word character in regex; marked by <-- HERE in m/%s/">
-
-This error has been added for C<(?&0)>, which is invalid. It used to
-produce an incomprehensible error message [perl #101666].
+XXX L<message|perldiag/"message">
=back
=item *
-C<chr()> now warns when passed a negative value [perl #83048].
-
-=item *
-
-C<srand()> now warns when passed a value that doesn't fit in a C<UV> (since the
-value will be truncated rather than overflowing) [perl #40605].
-
-=item *
-
-Running perl with the C<-i> flag now warns if no input files are provided on
-the command line [perl #113410].
+XXX L<message|perldiag/"message">
=back
=item *
-The 'Can't use "my %s" in sort comparison' error has been downgraded to a
-warning, '"my %s" used in sort comparison' (with 'state' instead of 'my'
-for state variables). In addition, the heuristics for guessing whether
-lexical $a or $b has been misused have been improved to generate fewer
-false positives. Lexical $a and $b are no longer disallowed if they are
-outside the sort block. Also, a named unary or list operator inside the
-sort block no longer causes the $a or $b to be ignored [perl #86136].
+XXX Describe change here
=back
=item *
-Building perl with some Windows compilers used to fail due to a problem
-with miniperl's C<glob> operator (which uses the C<perlglob> program)
-deleting the PATH environment variable [perl #113798].
+XXX
=back
=over 4
-=item XXX
+=item XXX-some-platform
+XXX
=back
=over 4
-=item VMS
-
-Quotes are now removed from the command verb (but not the parameters) for commands
-spawned via C<system>, backticks, or a piped C<open>. Previously, quotes on the verb
-were passed through to DCL, which would fail to recognize the command. Also, if the
-verb is actually a path to an image or command procedure on an ODS-5 volume, quoting it
-now allows the path to contain spaces.
-
-=item AIX
+=item XXX-some-platform
-Configure now always adds -qlanglvl=extc99 to the CC flags on AIX when
-using xlC. This will make it easier to compile a number of XS-based modules
-that assume C99 [perl #113778].
+XXX
=back
=item *
-OP allocation for CVs now uses a slab allocator. This simplifies
-memory management for OPs allocated to a CV, so cleaning up after a
-compilation error is simpler and safer [perl #111462][perl #112312].
-
-=item *
-
-PERL_DEBUG_READONLY_OPS has been rewritten to work with the new slab
-allocator, allowing it to catch more violations that befor.
-
-=item *
-
-The old slab allocator for ops, which was only enabled for PERL_IMPLICIT_SYS and PERL_DEBUG_READONLY_OPS, has been retired.
+XXX
=back
=item *
-A regression introduced in v5.14.0 has been fixed, in which some calls
-to the C<re> module would clobber C<$_> [perl #113750].
-
-=item *
-
-C<do FILE> now always either sets or clears C<$@>, even when the file can't be
-read. This ensures that testing C<$@> first (as recommended by the
-documentation) always returns the correct result.
-
-=item *
-
-The array iterator used for the C<each @array> construct is now correctly
-reset when C<@array> is cleared (RT #75596). This happens for example when the
-array is globally assigned to, as in C<@array = (...)>, but not when its
-B<values> are assigned to. In terms of the XS API, it means that C<av_clear()>
-will now reset the iterator.
-
-This mirrors the behaviour of the hash iterator when the hash is cleared.
-
-=item *
-
-C<< $class->can >>, C<< $class->isa >>, and C<< $class->DOES >> now return
-correct results, regardless of whether that package referred to by C<$class>
-exists [perl #47113].
-
-=item *
-
-Arriving signals no longer clear C<$@> [perl #45173].
-
-=item *
-
-Allow C<my ()> declarations with an empty variable list [perl #113554].
-
-=item *
-
-During parsing, subs declared after errors no longer leave stubs
-[perl #113712].
-
-=item *
-
-Closures containing no string evals no longer hang on to their containing
-subroutines, allowing variables closed over by outer subroutines to be
-freed when the outer sub is freed, even if the inner sub still exists
-[perl #89544].
-
-=item *
-
-Duplication of in-memory filehandles by opening with a "<&=" or ">&=" mode
-stopped working properly in 5.16.0. It was causing the new handle to
-reference a different scalar variable. This has been fixed [perl #113764].
-
-=item *
-
-C<qr//> expressions no longer crash with custom regular expression engines
-that do not set C<offs> at regular expression compilation time
-[perl #112962].
-
-=item *
-
-C<delete local> no longer crashes with certain magical arrays and hashes
-[perl #112966].
-
-=item *
-
-C<local> on elements of certain magical arrays and hashes used not to
-arrange to have the element deleted on scope exit, even if the element did
-not exist before C<local>.
-
-=item *
-
-C<scalar(write)> no longer returns multiple items [perl #73690].
-
-=item *
-
-String to floating point conversions no longer misparse certain strings under
-C<use locale> [perl #109318].
-
-=item *
-
-C<@INC> filters that die no longer leak memory [perl #92252].
-
-=item *
-
-The implementations of overloaded operations are now called in the correct
-context. This allows, among other things, being able to properly override
-C<< <> >> [perl #47119].
-
-=item *
-
-Specifying only the C<fallback> key when calling C<use overload> now behaves
-properly [perl #113010].
-
-=item *
-
-C<< sub foo { my $a = 0; while ($a) { ... } } >> and
-C<< sub foo { while (0) { ... } } >> now return the same thing [perl #73618].
-
-=item *
-
-Fixed the debugger C<l> and C<M> commands, and other debugger
-functionality which was broken in 5.17.0 [perl #113918].
-
-=item *
-
-String negation now behaves the same under C<use integer;> as it does
-without [perl #113012].
-
-=item *
-
-C<chr> now returns the Unicode replacement character (U+FFFD) for -1,
-regardless of the internal representation. -1 used to wrap if the argument
-was tied or a string internally.
-
-=item *
-
-Using a C<format> after its enclosing sub was freed could crash as of
-perl 5.12.0, if the format referenced lexical variables from the outer sub.
-
-=item *
-
-Using a C<format> after its enclosing sub was undefined could crash as of
-perl 5.10.0, if the format referenced lexical variables from the outer sub.
-
-=item *
-
-Using a C<format> defined inside a closures, which format references
-lexical variables from outside, never really worked unless the C<write>
-call was directly inside the closure. In 5.10.0 it even started crashing.
-Now the copy of that closure nearest the top of the call stack is used to
-find those variables.
-
-=item *
-
-Formats that close over variables in special blocks no longer crash if a
-stub exists with the same name as the special block before the special
-block is compiled.
-
-=item *
-
-The parser no longer gets confused, treating C<eval foo ()> as a syntax
-error if preceded by C<print;> [perl #16249].
-
-=item *
-
-The return value of C<syscall> is no longer truncated on 64-bit platforms
-[perl #113980].
-
-=item *
-
-Constant folding no longer causes C<print 1 ? FOO : BAR> to print to the
-FOO handle [perl #78064].
-
-=item *
-
-C<do subname> now calls the named subroutine and uses the file name it
-returns, instead of opening a file named "subname".
-
-=item *
-
-Subroutines looked up by rv2cv check hooks (registered by XS modules) are
-now taken into consideration when determining whether C<foo bar> should be
-the sub call C<foo(bar)> or the method call C<< "bar"->foo >>.
-
-=item *
-
-C<CORE::foo::bar> is no longer treated specially, allowing global overrides
-to be called directly via C<CORE::GLOBAL::uc(...)> [perl #113016].
-
-=item *
-
-Calling an undefined sub whose typeglob has been undefined now produces the
-customary "Undefined subroutine called" error, instead of "Not a CODE
-reference".
+XXX
=back
XXX Generate this with:
- perl Porting/acknowledgements.pl v5.17.1..HEAD
+ perl Porting/acknowledgements.pl v5.17.2..HEAD
=head1 Reporting Bugs