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