Skip to content

prepare perldelta for the release of v5.42.0 #23366

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: blead
Choose a base branch
from
Draft

Conversation

book
Copy link
Contributor

@book book commented Jun 11, 2025

This is a manual merge of the perl541*delta.pod files in preparation for the 5.42.0 release.

Review and comments (especially about omissions and inconsistencies) are very welcome.

We wonder if the (currently)sections about apostrophe_as_package_separator and smartmatch really belong to "Incompatible Changes" and not to "Core Enhancements". The "unfeatures" are backward-compatible by design.

Co-authored-by: Thibault Duponchelle <thibault.duponchelle@gmail.com>
Co-authored-by: Eric Herman <eric@freesa.org>
@Leont
Copy link
Contributor

Leont commented Jun 11, 2025

The cloning of dirhandle bug isn't mentioned (probably because I neglected to write that for the dev release). That should absolutely be in the stable release though.


=head2 New C<any> and C<all> operators

Two new experimental features have been added, which add two new list-processing
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rather than have 2x "two new", how about "Two new experimental features add the list-processing operators, C and C."?

Comment on lines +100 to +102
This can be controlled with the C<apostrophe_as_package_separator>
feature which is enabled by default, but is disabled from the 5.41
feature bundle onwards.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For this perldelta, should it read "disabled from the 5.42 feature bundle onwards"?

Comment on lines +146 to +151
They were deprecated in Perl v5.38.0 and scheduled for removal in Perl
5.42.0, and entirely removed in Perl 5.41.3.

After some discussion these have been re-instated in 5.41.9.

Using them no longer produces a deprecation warning.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably too much detail for this perldelta. How about something along the lines of:

"They were deprecated in Perl v5.38.0 and scheduled for removal in Perl 5.42.0, but after some discussion their removal has been indefinitely postponed. Using them no longer produces a deprecation warning."

Note that calling C<eval EXPR> in a function unconditionally causes a function
to reference its enclosing functions as it always has.

=head2 Switch and Smart Match operator reinstated
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs merging with the previous version of this notice.


=item *

XXX
C<Perl_leave_adjust_stacks>: additional efficiency for mortal copies.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this needs to be included. It's unlikely to be very user-noticeable.

Comment on lines +413 to +426
=item *

Subroutines in packages no longer need to be stored in typeglobs:
declaring a subroutine will now put a simple sub reference directly in the
stash if possible, saving memory. The typeglob still notionally exists,
so accessing it will cause the stash entry to be upgraded to a typeglob
(i.e. this is just an internal implementation detail).
This optimization does not currently apply to XSUBs or exported
subroutines, and method calls will undo it, since they cache things in
typeglobs.
[L<GH #23001|https://github.com/Perl/perl5/issues/23001>]

(This optimization was originally announced in L<perl5220delta>, but due to a
bug it only worked for subroutines in package C<main>, not in modules.)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIRC this got reverted

Comment on lines +996 to +998
=item *

pp_reverse: don't COW buffer just to then un-COW it [L<GH #22729|https://github.com/Perl/perl5/issues/22729>]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't need to be included. There's no API change, it doesn't change the visible operation of the OP and the performance change won't be noticeable to end users.

@book
Copy link
Contributor Author

book commented Jun 12, 2025

The cloning of dirhandle bug isn't mentioned (probably because I neglected to write that for the dev release). That should absolutely be in the stable release though.

Please take the time to write it in: you're the best positioned to do it.

@book
Copy link
Contributor Author

book commented Jun 12, 2025

@richardleach Thanks a lot for your review! I'll go over it soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants