This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
(perl #133706) remove exploit code from Storable
[perl5.git] / pod / perl5294delta.pod
CommitLineData
4234ac96
AC
1=encoding utf8
2
3=head1 NAME
4
5perl5294delta - what is new for perl v5.29.4
6
7=head1 DESCRIPTION
8
9This document describes differences between the 5.29.3 release and the 5.29.4
10release.
11
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.
14
15=head1 Core Enhancements
16
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
23=head1 Incompatible Changes
24
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
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
44All four functions only paid attention to the C<:utf8> flag. Other
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
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
86=head1 Modules and Pragmata
87
88=head2 Updated Modules and Pragmata
89
90=over 4
91
92=item *
93
94L<B> has been upgraded from version 1.74 to 1.75.
95
96=item *
97
98L<B::Concise> has been upgraded from version 1.003 to 1.004.
99
100=item *
101
102L<B::Deparse> has been upgraded from version 1.48 to 1.49.
103
104=item *
105
106L<bignum> has been upgraded from version 0.50 to 0.51.
107
108=item *
109
110L<bytes> has been upgraded from version 1.06 to 1.07.
111
112=item *
113
114L<CPAN> has been upgraded from version 2.20-TRIAL to 2.21-TRIAL.
115
116=item *
117
118L<Devel::Peek> has been upgraded from version 1.27 to 1.28.
119
120=item *
121
122L<feature> has been upgraded from version 1.53 to 1.54.
123
124=item *
125
126L<File::Copy> has been upgraded from version 2.33 to 2.34.
127
128=item *
129
130L<File::Glob> has been upgraded from version 1.31 to 1.32.
131
132=item *
133
134L<Module::CoreList> has been upgraded from version 5.20180920 to 5.20181020.
135
136=item *
137
138L<sigtrap> has been upgraded from version 1.08 to 1.09.
139
140=item *
141
142L<Unicode::UCD> has been upgraded from version 0.71 to 0.72.
143
144=item *
145
146L<vars> has been upgraded from version 1.04 to 1.05.
147
148C<vars.pm> no longer disables non-vars strict when checking if strict
149vars is enabled. [perl #130674]
150
151=back
152
153=head2 Removed Modules and Pragmata
154
155=over 4
156
157=item *
158
159B::Debug is no longer distributed with the core distribution. It remains
160available on CPAN.
161
162=back
163
164=head1 Internal Changes
165
166=over 4
167
168=item *
169
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.
173
174=back
175
176=head1 Selected Bug Fixes
177
178=over 4
179
180=item *
181
182C<pack "u", "invalid uuencoding"> now properly NUL terminates the
183zero-length SV produced. [perl #132655]
184
185=item *
186
187Improve the debugging output for calloc() calls with C<-Dm>. [perl #133439]
188
189=item *
190
191Regexp script runs were failing to permit ASCII digits in some cases.
192[perl #133547]
193
194=item *
195
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]
201
202=back
203
204=head1 Acknowledgements
205
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.
209
210Excluding auto-generated files, documentation and release tools, there were
211approximately 6,300 lines of changes to 110 .pm, .t, .c and .h files.
212
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:
216
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.
221
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.
226
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.
230
231For a more complete list of all of Perl's historical contributors, please
232see the F<AUTHORS> file in the Perl source distribution.
233
234=head1 Reporting Bugs
235
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
238L<http://www.perl.org/> , the Perl Home Page.
239
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>,
243will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
244
245If the bug you are reporting has security implications which make it
246inappropriate to send to a publicly archived mailing list, then see
247L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
248for details of how to report the issue.
249
250=head1 Give Thanks
251
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:
254
255 perlthanks
256
257This will send an email to the Perl 5 Porters list with your show of thanks.
258
259=head1 SEE ALSO
260
261The F<Changes> file for an explanation of how to view exhaustive details on
262what changed.
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