This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Module::CoreList for 5.21.3
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
13900f93 5perldelta - what is new for perl v5.21.3
c68523cb 6
238894db 7=head1 DESCRIPTION
c68523cb 8
13900f93 9This document describes differences between the 5.21.2 release and the 5.21.3
238894db 10release.
c68523cb 11
13900f93
A
12If you are upgrading from an earlier release such as 5.21.1, first read
13L<perl5212delta>, which describes differences between 5.21.1 and 5.21.2.
14
7065301c
RS
15=head1 Core Enhancements
16
d1f01a63 17=head2 C<defined(@array = LIST)> is no longer fatal
7e957246 18
d1f01a63
PM
19In 5.21.1, C<defined(@array)> was made fatal. This has been relaxed
20to not die if the argument is assigning to an array.
7e957246 21
f88f10f5
PM
22=head2 Floating point handling and parsing has been improved
23
21f3b41e
JH
24Parsing and printing of floating point values has been improved.
25XXX what in addition to hexadecimal floats? if nothing, change the head2.
26
27As a completely new feature, hexadecimal floating point literals
28(like 0x1.23p-4) are now supported, and they can be output with
29C<printf %a>.
f88f10f5 30
0346c3a9 31=head1 Security
7e957246 32
6ab3666b 33=head2 The L<Safe> module could allow outside packages to be replaced
13900f93 34
6ab3666b
PM
35Critical bugfix: outside packages could be replaced. L<Safe> has
36been patched to 2.38 to address this.
8bdb3f93 37
13900f93 38=head1 Incompatible Changes
8bdb3f93 39
1178d2cf
DIM
40=head2 S<C<use UNIVERSAL '...'>> is now a fatal error
41
42Importing functions from C<UNIVERSAL> has been deprecated since v5.12, and
43is now a fatal error. S<C<"use UNIVERSAL">> without any arguments is still
44allowed.
45
7ef8b31d 46=head1 Modules and Pragmata
f6f3144e 47
13900f93 48=head2 Updated Modules and Pragmata
7065301c 49
13900f93 50=over 4
7065301c 51
aac7f82f
A
52=item *
53
f88f10f5 54L<B::Debug> has been upgraded from version 1.19 to 1.21.
b3e82ed1
PM
55
56=item *
57
ca58223b
PM
58L<Config::Perl::V> has been upgraded from version 0.20 to 0.22.
59
60=item *
61
23b03637
PM
62L<CPAN::Meta> has been upgraded from version 2.141520 to 2.142060.
63
64=item *
65
85e8fb10
PM
66L<CPAN::Meta::Requirements> has been upgraded from version 2.125 to 2.126.
67
68=item *
69
134f90c2
PM
70L<ExtUtils::CBuilder> was moved from F<dist> to F<cpan>.
71
72=item *
73
74L<ExtUtils::Install> was moved from F<dist> to F<cpan>.
75
76=item *
77
7d19f6a1 78L<ExtUtils::Manifest> has been upgraded from version 1.64 to 1.65.
134f90c2 79It was also moved from F<dist> to F<cpan>.
7d19f6a1 80
7d19f6a1
PM
81=item *
82
55e8b286
PM
83L<HTTP::Tiny> has been upgraded from version 0.043 to 0.047.
84
85=item *
86
d99849ae
PM
87L<IPC::Open3> has been upgraded from version 1.17 to 1.18.
88
89=item *
90
796f59e8 91L<perl5db.pl> has been upgraded from version 1.45 to 1.46.
f7df1a8c 92
0bb39c26
TC
93=item *
94
95L<POSIX> has been upgraded from version 1.41 to 1.42.
96
9c97a342
PM
97=item *
98
d99849ae
PM
99L<Opcode> has been upgraded from version 1.27 to 1.28.
100
101=item *
102
6ab3666b
PM
103L<Safe> has been upgraded from version 2.37 to 2.38.
104
6ab3666b
PM
105=item *
106
9c97a342
PM
107L<Socket> has been upgraded from version 2.014 to 2.015.
108
d99849ae
PM
109=item *
110
111L<Sys::Hostname> has been upgraded from version 1.18 to 1.19
112
13900f93 113=back
aac7f82f 114
13900f93 115=head1 Documentation
aac7f82f 116
13900f93 117=head2 Changes to Existing Documentation
6d9b7c7c 118
2a395b86
PM
119=head3 L<perlexperiment>
120
121=over 4
122
123=item *
124
125Added reference to L<feature>.
126
127=back
128
129=head3 L<perlguts>
130
131=over 4
132
133=item *
134
135Details on C level symbols and libperl.t added.
136
137=back
138
139=head3 L<perlhacktips>
140
141=over 4
142
143=item *
144
145Recommended replacements for tmpfile, atoi, strtol, and strtoul added.
0f4a583b 146
2a395b86
PM
147=back
148
149=head3 L<perlop>
150
151=over 4
152
153=item *
154
155ASCII v. EBCDIC clarifications added.
156
157=back
158
159=head3 L<perlsec>
160
161=over 4
162
163=item *
164
165Comments added on algorithmic complexity and tied hashes.
166
167=back
6d9b7c7c 168
2a395b86 169=head3 L<perlvms>
7f55cec0 170
13900f93 171=over 4
7f55cec0
SH
172
173=item *
174
2a395b86 175Updated documentation on environment and shell interaction in VMS.
aac7f82f 176
13900f93 177=back
aac7f82f 178
13900f93 179=head1 Diagnostics
091fed7c 180
13900f93
A
181The following additions or changes have been made to diagnostic output,
182including warnings and fatal error messages. For the complete list of
183diagnostic messages, see L<perldiag>.
902c1f75 184
13900f93 185=head2 New Diagnostics
2901561d 186
13900f93 187=head3 New Errors
4594cf53 188
13900f93 189=over 4
96dcbc37
DD
190
191=item *
192
a1d26ccd
PM
193L<Hexadecimal float: internal error|perldiag/"Hexadecimal float: internal error">
194
195(F) Something went horribly bad in hexadecimal float handling.
196
197=item *
198
199L<Hexadecimal float: unsupported long double format|perldiag/"Hexadecimal float: unsupported long double format">
200
201(F) You have configured Perl to use long doubles but
202the internals of the long double format are unknown,
203therefore the hexadecimal float output is impossible.
7065301c 204
13900f93 205=back
58f25ac1 206
13900f93
A
207=head3 New Warnings
208
209=over 4
58f25ac1
MH
210
211=item *
212
a5873648
PM
213L<Hexadecimal float: exponent overflow|perldiag/"Hexadecimal float: exponent overflow">
214
215(W overflow) The hexadecimal floating point has larger exponent
216than the floating point supports.
217
218=item *
219
220L<Hexadecimal float: exponent underflow|perldiag/"Hexadecimal float: exponent underflow">
221
222(W overflow) The hexadecimal floating point has smaller exponent
223than the floating point supports.
224
225=item *
226
a5873648
PM
227L<Hexadecimal float: mantissa overflow|perldiag/"Hexadecimal float: mantissa overflow">
228
229(W overflow) The hexadecimal floating point literal had more bits in
230the mantissa (the part between the 0x and the exponent, also known as
231the fraction or the significand) than the floating point supports.
232
233=item *
234
235L<Hexadecimal float: precision loss|perldiag/"Hexadecimal float: precision loss">
236
237(W overflow) The hexadecimal floating point had internally more
238digits than could be output. This can be caused by unsupported
239long double formats, or by 64-bit integers not being available
240(needed to retrieve the digits under some configurations).
241
58f25ac1
MH
242=back
243
13900f93 244=head2 Changes to Existing Diagnostics
12042f24 245
b10906fb
MH
246=over 4
247
248=item *
249
0f4a583b 250C<require> with no argument or undef used to warn about a Null filename; now
258ced86 251it dies with C<Missing or undefined argument to require>.
b10906fb
MH
252
253=back
254
13900f93
A
255=head1 Configuration and Compilation
256
7065301c 257=over 4
24a38d90
RS
258
259=item *
260
bb076206
PM
261MurmurHash64A and MurmurHash64B can now be configured as the internal hash
262function.
263
7065301c
RS
264=back
265
13900f93 266=head1 Platform Support
097675bf 267
6e97d65d 268=head2 Platform-Specific Notes
b3211734 269
6e97d65d 270=over 4
b3211734 271
6e97d65d 272=item Android
7065301c 273
6e97d65d
PM
274Build support has been improved for cross-compiling in general and for
275Android in particular.
13900f93 276
6e97d65d 277=item Solaris
7d0ccdba 278
6e97d65d
PM
279C<c99> options have been cleaned up, hints look for C<solstudio>
280as well as C<SUNWspro>, and support for native C<setenv> has been added.
7d0ccdba 281
6e97d65d
PM
282=item VMS
283
284C<finite>, C<finitel>, and C<isfinite> detection has been added to
285C<configure.com>, environment handling has had some minor changes, and
286a fix for legacy feature checking status.
287
288=item Windows
289
290C<%I64d> is now being used instead of C<%lld> for MinGW.
7d0ccdba 291
7065301c
RS
292=back
293
294=head1 Internal Changes
295
13900f93 296=over 4
c9fcb674 297
a835cd47
KW
298=item *
299
d8bcb4d6
KW
300Added L<perlapi/sync_locale>.
301Changing the program's locale should be avoided by XS code. Nevertheless,
302certain non-Perl libraries called from XS, such as C<Gtk> do so. When this
303happens, Perl needs to be told that the locale has changed. Use this function
304to do so, before returning to Perl.
c1284011 305
1c43698b
PM
306=item *
307
308Added L<perlapi/grok_atou> as a safer replacement for atoi and strtol.
309
6d9b7c7c 310=back
c1284011 311
6d9b7c7c 312=head1 Selected Bug Fixes
375f5f06 313
0346c3a9 314=over 4
375f5f06 315
2884baee
MH
316=item *
317
0dd816ae
TC
318Failing to compile C<use Foo> in an eval could leave a spurious
319C<BEGIN> subroutine definition, which would produce a "Subroutine
320BEGIN redefined" warning on the next use of C<use>, or other C<BEGIN>
321block. [perl #122107]
2884baee 322
b756670b
FC
323=item *
324
325C<method { BLOCK } ARGS> syntax now correctly parses the arguments if they
326begin with an opening brace. [perl #46947]
327
e917e94e
PM
328=item *
329
330External libraries and Perl may have different ideas of what the locale is.
331This is problematic when parsing version strings if the locale's numeric
332separator has been changed. Version parsing has been patched to ensure
333it handles the locales correctly. [perl #121930]
334
26dd5fd6
PM
335=item *
336
337A bug has been fixed where zero-length assertions and code blocks inside of a
0f4a583b 338regex could cause C<pos> to see an incorrect value. [perl #122460]
26dd5fd6 339
13900f93
A
340=back
341
13900f93 342=head1 Acknowledgements
e831f11a 343
13900f93 344XXX Generate this with:
e831f11a 345
13900f93 346 perl Porting/acknowledgements.pl v5.21.2..HEAD
f5b73711 347
44691e6f
AB
348=head1 Reporting Bugs
349
e08634c5
SH
350If you find what you think is a bug, you might check the articles recently
351posted to the comp.lang.perl.misc newsgroup and the perl bug database at
238894db 352https://rt.perl.org/ . There may also be information at
7ef8b31d 353http://www.perl.org/ , the Perl Home Page.
44691e6f 354
e08634c5
SH
355If you believe you have an unreported bug, please run the L<perlbug> program
356included with your release. Be sure to trim your bug down to a tiny but
357sufficient test case. Your bug report, along with the output of C<perl -V>,
358will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
359
360If the bug you are reporting has security implications, which make it
e08634c5
SH
361inappropriate to send to a publicly archived mailing list, then please send it
362to perl5-security-report@perl.org. This points to a closed subscription
363unarchived mailing list, which includes all the core committers, who will be
364able to help assess the impact of issues, figure out a resolution, and help
f9001595 365co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
366platforms on which Perl is supported. Please only use this address for
367security issues in the Perl core, not for modules independently distributed on
368CPAN.
44691e6f
AB
369
370=head1 SEE ALSO
371
e08634c5
SH
372The F<Changes> file for an explanation of how to view exhaustive details on
373what changed.
44691e6f
AB
374
375The F<INSTALL> file for how to build Perl.
376
377The F<README> file for general stuff.
378
379The F<Artistic> and F<Copying> files for copyright information.
380
381=cut