Skip to content

Commit 56c7f49

Browse files
Archive perldelta 5.43.3
1 parent 8b5b803 commit 56c7f49

File tree

10 files changed

+615
-163
lines changed

10 files changed

+615
-163
lines changed

MANIFEST

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5760,6 +5760,7 @@ pod/perl5420delta.pod Perl changes in version 5.42.0
57605760
pod/perl5430delta.pod Perl changes in version 5.43.0
57615761
pod/perl5431delta.pod Perl changes in version 5.43.1
57625762
pod/perl5432delta.pod Perl changes in version 5.43.2
5763+
pod/perl5433delta.pod Perl changes in version 5.43.3
57635764
pod/perl561delta.pod Perl changes in version 5.6.1
57645765
pod/perl56delta.pod Perl changes in version 5.6
57655766
pod/perl581delta.pod Perl changes in version 5.8.1

Makefile.SH

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,7 @@ esac
638638

639639
$spitshell >>$Makefile <<'!NO!SUBS!'
640640
641-
perltoc_pod_prereqs = extra.pods pod/perl5433delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
641+
perltoc_pod_prereqs = extra.pods pod/perl5434delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
642642
generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs)
643643
generated_headers = uudmap.h bitcount.h mg_data.h
644644
@@ -1147,9 +1147,9 @@ pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc
11471147
pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST
11481148
$(MINIPERL) pod/perlmodlib.PL -q
11491149
1150-
pod/perl5433delta.pod: pod/perldelta.pod
1151-
$(RMS) pod/perl5433delta.pod
1152-
$(LNS) perldelta.pod pod/perl5433delta.pod
1150+
pod/perl5434delta.pod: pod/perldelta.pod
1151+
$(RMS) pod/perl5434delta.pod
1152+
$(LNS) perldelta.pod pod/perl5434delta.pod
11531153
11541154
extra.pods: $(MINIPERL_EXE)
11551155
-@test ! -f extra.pods || rm -f `cat extra.pods`

pod/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
/roffitall
4848

4949
# generated
50-
/perl5433delta.pod
50+
/perl5434delta.pod
5151
/perlapi.pod
5252
/perlintern.pod
5353
/perlmodlib.pod

pod/perl.pod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ aux h2ph h2xs perlbug pl2pm pod2html pod2man splain xsubpp
181181

182182
perlhist Perl history records
183183
perldelta Perl changes since previous version
184+
perl5433delta Perl changes in version 5.43.3
184185
perl5432delta Perl changes in version 5.43.2
185186
perl5431delta Perl changes in version 5.43.1
186187
perl5430delta Perl changes in version 5.43.0

pod/perl5433delta.pod

Lines changed: 332 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,332 @@
1+
=encoding utf8
2+
3+
=head1 NAME
4+
5+
perl5433delta - what is new for perl v5.43.3
6+
7+
=head1 DESCRIPTION
8+
9+
This document describes differences between the 5.43.2 release and the 5.43.3
10+
release.
11+
12+
If you are upgrading from an earlier release such as 5.43.1, first read
13+
L<perl5432delta>, which describes differences between 5.43.1 and 5.43.2.
14+
15+
16+
=head1 Core Enhancements
17+
18+
=head2 Unicode 17.0 is supported
19+
20+
See L<https://www.unicode.org/versions/Unicode17.0.0/>.
21+
22+
23+
=head1 Modules and Pragmata
24+
25+
=head2 Updated Modules and Pragmata
26+
27+
=over 4
28+
29+
=item *
30+
31+
L<B> has been upgraded from version 1.89 to 1.90.
32+
33+
=item *
34+
35+
L<B::Concise> has been upgraded from version 1.007 to 1.009. It now correctly
36+
omits all its internal BEGIN blocks when asked to report BEGIN blocks in a
37+
caller's code. Previously it only omitted some of them.
38+
39+
=item *
40+
41+
L<B::Deparse> has been upgraded from version 1.86 to 1.87.
42+
43+
=item *
44+
45+
L<ExtUtils::ParseXS> has been upgraded from version 3.59 to 3.60. This
46+
release changes the ordering of the processing of typemap files which have
47+
been specified via C<xsubpp -typemap> arguments so that (as was the case
48+
prior to Perl 5.10.0) these files are applied last rather than first, and
49+
thus take priority over any system typemap files.
50+
51+
=item *
52+
53+
L<ExtUtils::Typemaps> has been upgraded from version 3.59 to 3.60.
54+
55+
=item *
56+
57+
L<File::Copy> has been upgraded from version 2.42 to 2.43.
58+
59+
=item *
60+
61+
L<File::Temp> has been upgraded from version 0.2311 to 0.2312.
62+
63+
=item *
64+
65+
L<Filter::Util::Call> has been upgraded from version 1.64 to 1.65.
66+
67+
=item *
68+
69+
L<Module::CoreList> has been upgraded from version 5.20250820 to 5.20250923.
70+
71+
=item *
72+
73+
L<Net::Ping> has been upgraded from version 2.76 to 2.77.
74+
75+
=item *
76+
77+
L<Opcode> has been upgraded from version 1.69 to 1.70.
78+
79+
=item *
80+
81+
L<overloading> has been upgraded from version 0.02 to 0.03.
82+
83+
=item *
84+
85+
L<PerlIO::via> has been upgraded from version 0.20 to 0.21.
86+
87+
=item *
88+
89+
L<Storable> has been upgraded from version 3.38 to 3.39.
90+
91+
=item *
92+
93+
L<Term::Table> has been upgraded from version 0.024 to 0.025.
94+
95+
=item *
96+
97+
L<Time::HiRes> has been upgraded from version 1.9778 to 1.9779.
98+
99+
The subsecond-resolution C<sleep> function provided by L<Time::HiRes> now has
100+
the same prototype as perl's built-in L<sleep function|perlfunc/sleep>. This
101+
means it now requires a scalar argument, not a list, just like C<CORE::sleep>:
102+
103+
use Time::HiRes qw(sleep);
104+
105+
sleep(1, "foo", "bar"); # Syntax error.
106+
# It used to silently ignore the extra arguments.
107+
108+
my @t = 42;
109+
sleep @t;
110+
# Evaluates @t in scalar context (giving the number of elements)
111+
# and sleeps for one second. It used to sleep for 42 seconds.
112+
113+
=item *
114+
115+
L<Time::Piece> has been upgraded from version 1.36 to 1.3701.
116+
117+
=item *
118+
119+
L<utf8> has been upgraded from version 1.27 to 1.29.
120+
121+
=item *
122+
123+
L<XS::APItest> has been upgraded from version 1.44 to 1.46.
124+
125+
=back
126+
127+
=head1 Documentation
128+
129+
=head2 New Documentation
130+
131+
=over 4
132+
133+
=item *
134+
135+
L<perlapi> now contains information about how to find what release of
136+
Perl first contained an API element
137+
138+
=back
139+
140+
=head1 Diagnostics
141+
142+
=head2 Changes to Existing Diagnostics
143+
144+
=over 4
145+
146+
=item *
147+
148+
Certain diagnostics about byte sequences that are supposed to comprise a
149+
UTF-8 encoded character, but that are invalid in some way, now don't
150+
include bytes irrelevant to that determination. An example is
151+
152+
=over
153+
154+
=item old message
155+
156+
Malformed UTF-8 character: C<\xc1\x27> (any UTF-8 sequence that starts with
157+
C<\xc1> is overlong which can and should be represented with a different,
158+
shorter sequence)
159+
160+
=item new message
161+
162+
Malformed UTF-8 character: C<\xc1> (any UTF-8 sequence that starts with
163+
C<\xc1> is overlong which can and should be represented with a different,
164+
shorter sequence)
165+
166+
=back
167+
168+
In this case the C<\xc1> is all that is needed to make the sequence
169+
invalid. Whatever comes after it is irrelevant (in this case, C<\x27>),
170+
and including it in the message might lead the reader to think that it
171+
somehow does matter.
172+
173+
=back
174+
175+
=head1 Configuration and Compilation
176+
177+
=over 4
178+
179+
=item *
180+
181+
C23 F<< <stdckdint.h> >> and associated macros are now used if available.
182+
183+
=back
184+
185+
=head1 Internal Changes
186+
187+
=over 4
188+
189+
=item *
190+
191+
A new function C<valid_utf8_to_uv> has been added. This is synonymous
192+
with C<valid_utf8_to_uvchr>; its reason for existence is to have
193+
consistent spelling with the names of the other functions that translate
194+
from UTF-8, so you don't have to remember a different spelling.
195+
196+
=item *
197+
198+
L<perlapi/C<newSVsv_flags_NN>> is a new function for creating a new SV
199+
and assigning the value(s) of an existing SV to it.
200+
201+
Historically, C<Perl_newSVsv_flags> and C<Perl_sv_mortalcopy_flags> would
202+
pass a new SV head and the original SV to C<Perl_sv_setsv_flags>. However,
203+
the latter contains many branches of no relevance to a fresh SV, so they
204+
now make use of the new function to streamline the process.
205+
206+
C<Perl_newSVsv_flags> is now essentially a NULL pointer check and wrapper
207+
around the new function, so has been moved into F<sv_inline.h>.
208+
209+
=item *
210+
211+
L<perlapi/C<STATIC_ASSERT_DECL>> and C<STATIC_ASSERT_STMT> are like
212+
C<assert()>, but are evaluated at compile time. That means their
213+
argument must be a constant expression that can be verified by the
214+
compiler, and so they effectively have no cost, not appearing in the
215+
code that gets executed. These were added in v5.28, but not until now
216+
have we opened their use up to XS writers. At the same time, a new
217+
variant has been added, C<STATIC_ASSERT_EXPR> which is suitable for use
218+
in an expression, such as a comma expression in a C macro.
219+
220+
=back
221+
222+
=head1 Selected Bug Fixes
223+
224+
=over 4
225+
226+
=item * INTERFACE keyword in XS
227+
228+
Fixed a couple of issues with the INTERFACE keyword in XS.
229+
230+
[L<GH #23640|https://github.com/Perl/perl5/issues/23640>]
231+
232+
=item * C<&CORE::__CLASS__> no longer returns invalid results
233+
234+
C<CORE::__CLASS__> would work as expected when used as a bareword or aliased:
235+
236+
use feature qw(class);
237+
class Foo {
238+
BEGIN { *cls = \&CORE::__CLASS__; }
239+
method bar() {
240+
my $class1 = CORE::__CLASS__; # ok
241+
my $class2 = cls; # ok
242+
}
243+
}
244+
245+
But when called with an ampersand (C<&CORE::__CLASS__()>) or through a
246+
reference (C<< my $ref = \&CORE::__CLASS__; $ref->() >>), it would return
247+
unrelated strings. These runtime calls have been fixed to throw an error of the
248+
form C<&CORE::__CLASS__ cannot be called directly> instead of silently
249+
returning incorrect results.
250+
251+
[L<GH #23737|https://github.com/Perl/perl5/issues/23737>]
252+
253+
=item * C<parse_subsignature()> can now handle empty subroutine signatures
254+
255+
Previously, calling the C<parse_subsignature()> API function with an empty
256+
signature would cause a "Syntax error" failure, requiring code which calls it
257+
to detect the special case and take appropriate steps. This is now fixed,
258+
returning the same optree that the parser would yield for a regular empty
259+
signature during normal parse time.
260+
261+
[L<GH #17689|https://github.com/Perl/perl5/issues/17689>]
262+
263+
=back
264+
265+
=head1 Acknowledgements
266+
267+
Perl 5.43.3 represents approximately 5 weeks of development since Perl
268+
5.43.2 and contains approximately 150,000 lines of changes across 330 files
269+
from 26 authors.
270+
271+
Excluding auto-generated files, documentation and release tools, there were
272+
approximately 26,000 lines of changes to 180 .pm, .t, .c and .h files.
273+
274+
Perl continues to flourish into its fourth decade thanks to a vibrant
275+
community of users and developers. The following people are known to have
276+
contributed the improvements that became Perl 5.43.3:
277+
278+
Branislav Zahradník, brian d foy, Chad Granum, Craig A. Berry, Daniel
279+
Dragan, David Mitchell, Igor Todorovski, James E Keenan, James Raspass, Jörg
280+
Thomas, Karen Etheridge, Karl Williamson, Leon Timmermans, Lukas Mai, Paul
281+
Evans, Philippe Bruhat (BooK), Ricardo Signes, Richard Leach, Samuel Smith,
282+
Samuel Young, TAKAI Kousuke, Thibault Duponchelle, Tomasz Konojacki, Tom
283+
Wyant, Tony Cook, Unicode Consortium.
284+
285+
The list above is almost certainly incomplete as it is automatically
286+
generated from version control history. In particular, it does not include
287+
the names of the (very much appreciated) contributors who reported issues to
288+
the Perl bug tracker.
289+
290+
Many of the changes included in this version originated in the CPAN modules
291+
included in Perl's core. We're grateful to the entire CPAN community for
292+
helping Perl to flourish.
293+
294+
For a more complete list of all of Perl's historical contributors, please
295+
see the F<AUTHORS> file in the Perl source distribution.
296+
297+
=head1 Reporting Bugs
298+
299+
If you find what you think is a bug, you might check the perl bug database
300+
at L<https://github.com/Perl/perl5/issues>. There may also be information at
301+
L<https://www.perl.org/>, the Perl Home Page.
302+
303+
If you believe you have an unreported bug, please open an issue at
304+
L<https://github.com/Perl/perl5/issues>. Be sure to trim your bug down to a
305+
tiny but sufficient test case.
306+
307+
If the bug you are reporting has security implications which make it
308+
inappropriate to send to a public issue tracker, then see
309+
L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
310+
for details of how to report the issue.
311+
312+
=head1 Give Thanks
313+
314+
If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
315+
you can do so by running the C<perlthanks> program:
316+
317+
perlthanks
318+
319+
This will send an email to the Perl 5 Porters list with your show of thanks.
320+
321+
=head1 SEE ALSO
322+
323+
The F<Changes> file for an explanation of how to view exhaustive details on
324+
what changed.
325+
326+
The F<INSTALL> file for how to build Perl.
327+
328+
The F<README> file for general stuff.
329+
330+
The F<Artistic> and F<Copying> files for copyright information.
331+
332+
=cut

0 commit comments

Comments
 (0)