This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Tick off 5.29.4 release
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
21d34e95 5perldelta - what is new for perl v5.29.4
e4c43fa1 6
4026b091
S
7=head1 DESCRIPTION
8
21d34e95 9This document describes differences between the 5.29.3 release and the 5.29.4
4026b091
S
10release.
11
21d34e95
JSA
12If you are upgrading from an earlier release such as 5.29.2, first read
13L<perl5293delta>, which describes differences between 5.29.2 and 5.29.3.
7a54f67e 14
21d34e95
JSA
15=head1 Core Enhancements
16
4288c5b9
KW
17=head2 The maximum number of times a pattern can match has been doubled
18to 65535
19
20This means if you specify C<qr/a+/> that there can be anywhere from 1
21through 65535 C<"a">'s in a row, instead of 32267 as previously.
22
21d34e95
JSA
23=head1 Incompatible Changes
24
c22e17d0
DIM
25=head2 Assigning non-zero to C<$[> is fatal
26
27Setting L<< C<$[>|perlvar/$[ >> to a non-zero value has been deprecated since
28Perl 5.12 and now throws a fatal error.
29See L<<< perldeprecation/Assigning non-zero to C<< $[ >> is fatal >>>.
30
2ba232eb
TC
31=head2 Previously deprecated sysread()/syswrite() on :utf8 handles now fatal
32
33Calling sysread(), syswrite(), send() or recv() on a C<:utf8> handle,
34whether applied explicitly or implicitly, is now fatal. This was
35deprecated in perl 5.24.
36
37There were two problems with calling these functions on C<:utf8>
38handles:
39
40=over
41
42=item *
43
8de8eb77 44All four functions only paid attention to the C<:utf8> flag. Other
2ba232eb
TC
45layers were completely ignored, so a handle with
46C<:encoding(UTF-16LE)> layer would be treated as UTF-8. Other layers,
47such as compression are completely ignored with or without the
48C<:utf8> flag.
49
50=item *
51
52sysread() and recv() would read from the handle, skipping any
53validation by the layers, and do no validation of their own. This
54could lead to invalidly encoded perl scalars.
55
56=back
57
58[perl #125760]
59
747c94ed
JK
60=head2 my() in false conditional prohibited
61
62Declarations such as C<my $x if 0> are no longer permitted.
63
64[perl #133543]
65
66=head2 Fatalize $* and $#
67
68These special variables, long deprecated, now throw exceptions when used.
69
70[perl #133583]
71
72=head2 Fatalize unqualified use of dump()
73
74The C<dump()> function, long discouraged, may no longer be used unless it is
75fully qualified, I<i.e.>, C<CORE::dump()>.
76
77[perl #133584]
78
79=head2 Remove File::Glob::glob()
80
81The C<File::Glob::glob()> function, long deprecated, has been removed and now
82throws an exception which advises use of C<File::Glob::bsd_glob()> instead.
83
84[perl #133586]
85
21d34e95 86=head1 Modules and Pragmata
7a54f67e 87
21d34e95 88=head2 Updated Modules and Pragmata
295a484e 89
21d34e95 90=over 4
928a385c
KE
91
92=item *
93
8de8eb77 94L<B> has been upgraded from version 1.74 to 1.75.
1060c83c 95
569dc109 96=item *
1060c83c 97
8de8eb77 98L<B::Concise> has been upgraded from version 1.003 to 1.004.
65104f4c
JK
99
100=item *
101
8de8eb77 102L<B::Deparse> has been upgraded from version 1.48 to 1.49.
21d34e95
JSA
103
104=item *
105
8de8eb77 106L<bignum> has been upgraded from version 0.50 to 0.51.
21d34e95
JSA
107
108=item *
109
8de8eb77 110L<bytes> has been upgraded from version 1.06 to 1.07.
21d34e95
JSA
111
112=item *
113
8de8eb77 114L<CPAN> has been upgraded from version 2.20-TRIAL to 2.21-TRIAL.
b0a362a2
SH
115
116=item *
117
8de8eb77 118L<Devel::Peek> has been upgraded from version 1.27 to 1.28.
21d34e95
JSA
119
120=item *
121
8de8eb77 122L<feature> has been upgraded from version 1.53 to 1.54.
21d34e95
JSA
123
124=item *
125
8de8eb77 126L<File::Copy> has been upgraded from version 2.33 to 2.34.
21d34e95
JSA
127
128=item *
129
8de8eb77 130L<File::Glob> has been upgraded from version 1.31 to 1.32.
21d34e95 131
8de8eb77 132=item *
21d34e95 133
8de8eb77 134L<Module::CoreList> has been upgraded from version 5.20180920 to 5.20181020.
21d34e95 135
8de8eb77 136=item *
21d34e95 137
8de8eb77 138L<sigtrap> has been upgraded from version 1.08 to 1.09.
21d34e95 139
8de8eb77 140=item *
21d34e95 141
8de8eb77 142L<Unicode::UCD> has been upgraded from version 0.71 to 0.72.
21d34e95 143
8de8eb77 144=item *
21d34e95 145
8de8eb77 146L<vars> has been upgraded from version 1.04 to 1.05.
21d34e95 147
8de8eb77
AC
148C<vars.pm> no longer disables non-vars strict when checking if strict
149vars is enabled. [perl #130674]
21d34e95
JSA
150
151=back
152
8de8eb77 153=head2 Removed Modules and Pragmata
21d34e95 154
373fec1e
SH
155=over 4
156
8de8eb77 157=item *
373fec1e 158
8de8eb77
AC
159B::Debug is no longer distributed with the core distribution. It remains
160available on CPAN.
21d34e95
JSA
161
162=back
163
164=head1 Internal Changes
165
21d34e95
JSA
166=over 4
167
168=item *
169
feb5f5fa
KW
170The sizing pass has been eliminated from the regular expression
171compiler. An extra pass may instead be needed in some cases to count
172the number of parenthetical capture groups.
7a54f67e
CBW
173
174=back
175
7a54f67e
CBW
176=head1 Selected Bug Fixes
177
7a54f67e
CBW
178=over 4
179
180=item *
181
7a432bd4
TC
182C<pack "u", "invalid uuencoding"> now properly NUL terminates the
183zero-length SV produced. [perl #132655]
21d34e95 184
fa126b81
TC
185=item *
186
187Improve the debugging output for calloc() calls with C<-Dm>. [perl #133439]
188
8de8eb77 189=item *
21d34e95 190
8de8eb77
AC
191Regexp script runs were failing to permit ASCII digits in some cases.
192[perl #133547]
7a54f67e 193
1060c83c
S
194=item *
195
8de8eb77
AC
196On Unix-like systems supporting a platform-specific technique for
197determining L<< C<$^X>|perlvar/$^X >>, Perl failed to fall back to the
198generic technique when the platform-specific one fails (for example, a Linux
199system with /proc not mounted). This was a regression in Perl 5.28.0.
200[perl #133573]
373fec1e
SH
201
202=back
203
8de8eb77 204=head1 Acknowledgements
7a54f67e 205
8de8eb77
AC
206Perl 5.29.4 represents approximately 4 weeks of development since Perl
2075.29.3 and contains approximately 8,400 lines of changes across 180 files
208from 17 authors.
373fec1e 209
8de8eb77
AC
210Excluding auto-generated files, documentation and release tools, there were
211approximately 6,300 lines of changes to 110 .pm, .t, .c and .h files.
21d34e95 212
8de8eb77
AC
213Perl continues to flourish into its fourth decade thanks to a vibrant
214community of users and developers. The following people are known to have
215contributed the improvements that became Perl 5.29.4:
7a54f67e 216
8de8eb77
AC
217Aaron Crane, Alexandr Savca, Andreas König, Chris 'BinGOs' Williams, Craig
218A. Berry, Dagfinn Ilmari Mannsåker, David Mitchell, Eugen Konkov, James E
219Keenan, John SJ Anderson, Karl Williamson, Matthias Bethke, Nicolas R.,
220Sisyphus, Slaven Rezic, Tomasz Konojacki, Tony Cook.
21d34e95 221
8de8eb77
AC
222The list above is almost certainly incomplete as it is automatically
223generated from version control history. In particular, it does not include
224the names of the (very much appreciated) contributors who reported issues to
225the Perl bug tracker.
c4070876 226
8de8eb77
AC
227Many of the changes included in this version originated in the CPAN modules
228included in Perl's core. We're grateful to the entire CPAN community for
229helping Perl to flourish.
c4070876 230
8de8eb77
AC
231For a more complete list of all of Perl's historical contributors, please
232see the F<AUTHORS> file in the Perl source distribution.
f5b73711 233
44691e6f
AB
234=head1 Reporting Bugs
235
373fec1e
SH
236If you find what you think is a bug, you might check the perl bug database
237at L<https://rt.perl.org/> . There may also be information at
b5cbfe35 238L<http://www.perl.org/> , the Perl Home Page.
44691e6f 239
e08634c5
SH
240If you believe you have an unreported bug, please run the L<perlbug> program
241included with your release. Be sure to trim your bug down to a tiny but
242sufficient test case. Your bug report, along with the output of C<perl -V>,
b5cbfe35 243will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 244
87c118b9
DM
245If the bug you are reporting has security implications which make it
246inappropriate to send to a publicly archived mailing list, then see
373fec1e
SH
247L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
248for details of how to report the issue.
44691e6f 249
390ae6f9
S
250=head1 Give Thanks
251
373fec1e
SH
252If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
253you can do so by running the C<perlthanks> program:
390ae6f9
S
254
255 perlthanks
256
257This will send an email to the Perl 5 Porters list with your show of thanks.
258
44691e6f
AB
259=head1 SEE ALSO
260
e08634c5
SH
261The F<Changes> file for an explanation of how to view exhaustive details on
262what changed.
44691e6f
AB
263
264The F<INSTALL> file for how to build Perl.
265
266The F<README> file for general stuff.
267
268The F<Artistic> and F<Copying> files for copyright information.
269
270=cut