[ 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.35.1
+perldelta - what is new for perl v5.35.9
=head1 DESCRIPTION
-This document describes differences between the 5.35.0 release and the 5.35.1
+This document describes differences between the 5.35.8 release and the 5.35.9
release.
-If you are upgrading from an earlier release such as 5.34.0, first read
-L<perl5350delta>, which describes differences between 5.34.0 and 5.35.0.
+If you are upgrading from an earlier release such as 5.35.7, first read
+L<perl5358delta>, which describes differences between 5.35.7 and 5.35.8.
=head1 Notice
[ List each enhancement as a =head2 entry ]
+=head2 @_ is now experimental within signatured subs
+
+Even though subroutine signatures currently remain experimental, use of the
+default arguments array (C<@_>) with a subroutine that has a signature is
+specifically also experimental, with its own warning category. Silencing the
+C<experimental::signatures> warning category is not sufficient to dismiss
+this. The new warning is emitted with the category name
+C<experimental::args_array_with_signatures>.
+
+Any subroutine that has a signature and tries to make use of the defaults
+argument array or an element thereof (C<@_> or C<$_[INDEX]>), either
+explicitly or implicitly (such as C<shift> or C<pop> with no argument) will
+provoke a warning at compile-time:
+
+ use experimental 'signatures';
+
+ sub f ($x, $y = 123) {
+ say "The first argument is $_[0]";
+ }
+
+Z<>
+
+ Use of @_ in array element with signatured subroutine is experimental
+ at file.pl line 4.
+
+The behaviour of code which attempts to do this is no longer specified, and
+may be subject to change in a future version.
+
+=head2 The C<isa> operator is no longer experimental
+
+Introduced in Perl version 5.32.0, this operator has remained unchanged
+since then. The operator is now considered a stable languauge feature.
+
+For more detail see L<perlop/Class Instance Operator>.
+
=head1 Security
XXX Any security-related notices go here. In particular, any security
XXX Any deprecated features, syntax, modules etc. should be listed here.
+=head2 Downgrading a C<use VERSION> statement to below v5.11
+
+Attempting to issue a second C<use VERSION> statement that requests a version
+lower than C<v5.11> when an earlier statement that requested a version at
+least C<v5.11> has already been seen, will now print a deprecation warning.
+
+For example:
+
+ use v5.14;
+ say "The say statement is permitted";
+ use v5.8; # This will print a warning
+ print "We must use print\n";
+
+This is because of an intended related change to the interaction between
+C<use VERSION> and C<use strict>. If you specify a version >= 5.11, strict is
+enabled implicitly. If you request a version < 5.11, strict will become
+disabled I<even if you had previously written> C<use strict>. This was not
+the previous behaviour of C<use VERSION>, which at present will track
+explicitly-enabled strictness flags independently.
+
+Code which wishes to mix versions in this manner should use lexical scoping
+with block syntax to ensure that the differently versioned regions remain
+lexically isolated.
+
+ {
+ use v5.14;
+ say "The say statement is permitted";
+ }
+ {
+ use v5.8; # No warning is emitted
+ print "We must use print\n";
+ }
+
=head2 Module removals
XXX Remove this section if not applicable.
=item *
-L<File::Copy> has been upgraded from version 2.35 to 2.36.
+L<XXX> has been upgraded from version A.xx to B.yy.
-Inode numbers are now compared as strings, so that large inode numbers
-are correctly distinguished. (GH #18788)
-
-=item *
-
-L<IO> has been upgraded from version 1.46 to 1.47.
-
-Implement sync() for win32.
-
-=item *
-
-L<PathTools|Cwd> has been upgraded from version 3.80 to 3.81.
-
-Inodes numbers are now compared as strings, so that large inode numbers
-are correctly distinguished. (GH #18788)
-
-=item *
-
-L<Unicode::Collate> has been upgraded from version 1.29 to 1.30.
-
-One warning in F<mkheader> averted (rt.cpan.org #133952).
+If there was something important to note about this change, include that here.
=back
=item *
-L<Can't modify %s in %s|perldiag/"Can't modify %s in %s">
-(for scalar assignment to C<undef>)
-
-Attempting to perform a scalar assignment to C<undef>, for example via
-C<undef = $foo;>, previously triggered a fatal runtime error with the
-message "L<Modification of a read-only value attempted|perldiag/"Modification of a read-only value attempted">."
-It is more helpful to detect such attempted assignments prior to
-runtime, so they are now compile time errors, resulting in the message
-"Can't modify undef operator in scalar assignment".
-
-=item *
+L<Subroutine %s redefined|perldiag/"Subroutine %s redefined">
-XXX Describe change here
+Localized subroutine redefinitions no longer trigger this warning.
=back
=head1 Internal Changes
+XXX Changes which affect the interface available to C<XS> code go here. Other
+significant internal changes for future core maintainers should be noted as
+well.
+
+[ List each change as an =item entry ]
+
=over 4
=item *
-Since the removal of PERL_OBJECT in Perl 5.8, PERL_IMPLICIT_CONTEXT and
-MULTIPLICITY have been synonymous and they were being used interchangeably.
-To simplify the code, all instances of PERL_IMPLICIT_CONTEXT have been
-replaced with MULTIPLICITY.
-
-PERL_IMPLICIT_CONTEXT will remain defined for compatibility with XS modules.
+New equality-test functions C<sv_numeq> and C<sv_streq> have been added, along
+with C<..._flags>-suffixed variants. These expose a simple and consistent API
+to perform numerical or string comparison which is aware of operator
+overloading.
=back
=item *
-utime() now correctly sets errno/C<$!> when called on a closed handle.
+XXX
=back
=head1 Obituary
-Raun "Spider" Boardman (SPIDB on CPAN), author of at least 66 commits to the
-Perl 5 core distribution between 1996 and 2002, passed away May 24 2021 from
-complications of COVID. He will be missed.
+XXX If any significant core contributor or member of the CPAN community has
+died, add a short obituary here.
=head1 Acknowledgements
XXX Generate this with:
- perl Porting/acknowledgements.pl v5.35.0..HEAD
+ perl Porting/acknowledgements.pl v5.35.8..HEAD
=head1 Reporting Bugs