This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add epigraph for 5.23.3
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
a43707ab 5perldelta - what is new for perl v5.23.3
eabfc7bc 6
2cfe9b50 7=head1 DESCRIPTION
eabfc7bc 8
a43707ab 9This document describes differences between the 5.23.2 release and the 5.23.3
2cfe9b50 10release.
eabfc7bc 11
a43707ab
MH
12If you are upgrading from an earlier release such as 5.23.1, first read
13L<perl5232delta>, which describes differences between 5.23.1 and 5.23.2.
cf73ceda 14
a43707ab
MH
15=head1 Core Enhancements
16
a0bd1a30
KW
17=head2 C<qr/(?[ ])/> now works in UTF-8 locales
18
19L<Extended Bracketed Character Classes|perlrecharclass/Extended Bracketed Character Classes>
20now will successfully compile when S<C<use locale>> is in effect. The compiled
21pattern will use standard Unicode rules. If the runtime locale is not a
22UTF-8 one, a warning is raised and standard Unicode rules are used
23anyway. No tainting is done since the outcome does not actually depend
24on the locale.
25
a43707ab 26=head1 Incompatible Changes
deaaea8c 27
0dafb1ce 28=head2 An off by one issue in C<$Carp::MaxArgNums> has been fixed
fb7e9cdd 29
0dafb1ce
PM
30C<$Carp::MaxArgNums> is supposed to be the number of arguments to display.
31Prior to this version, it was instead showing C<$Carp::MaxArgNums> + 1 arguments,
32contrary to the documentation.
fb7e9cdd 33
0dafb1ce 34=head1 Modules and Pragmata
deaaea8c 35
0dafb1ce 36=head2 Updated Modules and Pragmata
7d380357 37
0dafb1ce 38=over 4
a43707ab 39
0dafb1ce 40=item *
a43707ab 41
0dafb1ce 42L<B> has been upgraded from version 1.58 to 1.59.
a43707ab 43
0dafb1ce 44=item *
0ba9d88c 45
0dafb1ce 46L<bignum> has been upgraded from version 0.39 to 0.40.
0ba9d88c 47
0dafb1ce 48=item *
0ba9d88c 49
0dafb1ce 50L<Carp> has been upgraded from version 1.36 to 1.37.
0ba9d88c 51
0dafb1ce 52=item *
a43707ab 53
0dafb1ce 54L<Compress::Raw::Zlib> has been upgraded from version 2.068 to 2.068_01.
a43707ab 55
0dafb1ce 56=item *
a43707ab 57
0dafb1ce 58L<DynaLoader> has been upgraded from version 1.33 to 1.34.
0ba9d88c 59
0dafb1ce 60=item *
cf73ceda 61
0dafb1ce 62L<Encode> has been upgraded from version 2.76 to 2.77.
fc4c3cec 63
0dafb1ce 64=item *
fc4c3cec 65
0dafb1ce 66L<encoding> has been upgraded from version 2.16 to 2.17.
fc4c3cec 67
80e86009
MH
68=item *
69
0dafb1ce 70L<English> has been upgraded from version 1.09 to 1.10.
80e86009 71
0dafb1ce 72=item *
fc4c3cec 73
0dafb1ce 74L<Errno> has been upgraded from version 1.23 to 1.24.
fc4c3cec 75
0dafb1ce 76=item *
a43707ab 77
0dafb1ce 78L<experimental> has been upgraded from version 0.013 to 0.014.
a43707ab 79
0dafb1ce 80=item *
5ea25977 81
0dafb1ce 82L<ExtUtils::MakeMaker> has been upgraded from version 7.04_01 to 7.10.
fc4c3cec 83
5ea25977 84=item *
fc4c3cec 85
0dafb1ce 86L<ExtUtils::ParseXS> has been upgraded from version 3.29 to 3.30.
eabfc7bc 87
0dafb1ce 88=item *
eabfc7bc 89
0dafb1ce 90L<ExtUtils::Typemaps> has been upgraded from version 3.29 to 3.30.
eabfc7bc 91
5ea25977 92=item *
eabfc7bc 93
0dafb1ce 94L<File::Find> has been upgraded from version 1.30 to 1.31.
cf73ceda 95
0dafb1ce 96=item *
a43707ab 97
0dafb1ce 98L<File::Glob> has been upgraded from version 1.24 to 1.25.
eabfc7bc 99
73d6481e 100=item *
eabfc7bc 101
0dafb1ce 102L<File::Spec> has been upgraded from version 3.57 to 3.58.
80e86009 103
0dafb1ce 104=item *
5ea25977 105
0dafb1ce 106L<Hash::Util::FieldHash> has been upgraded from version 1.15 to 1.17.
80e86009 107
0dafb1ce 108=item *
80e86009 109
0dafb1ce 110L<if> has been upgraded from version 0.0604 to 0.0605.
5ea25977 111
0dafb1ce 112=item *
5ea25977 113
0dafb1ce 114L<locale> has been upgraded from version 1.06 to 1.07.
0dd5b0dc 115
0dafb1ce 116=item *
a43707ab 117
0dafb1ce 118L<Locale::Codes> has been upgraded from version 3.35 to 3.36.
a43707ab 119
0dafb1ce 120=item *
a43707ab 121
0dafb1ce 122L<Module::CoreList> has been upgraded from version 5.20150820 to 5.20150920.
0dd5b0dc 123
0dafb1ce
PM
124=item *
125
126L<mro> has been upgraded from version 1.17 to 1.18.
356231b0
SH
127
128=item *
129
0dafb1ce 130L<Pod::Perldoc> has been upgraded from version 3.25 to 3.25_01.
a2373b32 131
0dafb1ce 132=item *
eabfc7bc 133
0dafb1ce 134L<POSIX> has been upgraded from version 1.56 to 1.57.
cf73ceda 135
0dafb1ce 136=item *
eabfc7bc 137
0dafb1ce 138L<Socket> has been upgraded from version 2.020 to 2.020_01.
eabfc7bc 139
0dafb1ce 140=item *
eabfc7bc 141
0dafb1ce 142L<Test> has been upgraded from version 1.26 to 1.27.
5ea25977 143
0dafb1ce 144=item *
5ea25977 145
0dafb1ce 146L<Thread::Queue> has been upgraded from version 3.05 to 3.06.
5ea25977
MH
147
148=item *
149
0dafb1ce 150L<threads> has been upgraded from version 2.02 to 2.03.
a43707ab 151
0dafb1ce 152=item *
a43707ab 153
0dafb1ce 154L<Time::HiRes> has been upgraded from version 1.9726 to 1.9727_02.
a43707ab 155
0dafb1ce
PM
156=item *
157
158L<Unicode::UCD> has been upgraded from version 0.62 to 0.63.
5ea25977
MH
159
160=item *
161
0dafb1ce 162L<Win32> has been upgraded from version 0.51 to 0.52.
dc013420 163
cf73ceda 164=back
dc013420 165
0dafb1ce 166=head2 New Modules and Pragmata
6962a25d 167
80e86009 168=over 4
f282dc56 169
80e86009 170=item *
f282dc56 171
0dafb1ce
PM
172L<Amiga::ARexx> has been added, as version 0.02
173
174=item *
175
176L<Amiga::Exec> has been added, as version 0.01
f282dc56 177
80e86009 178=back
f282dc56 179
0dafb1ce 180=head1 Documentation
a43707ab 181
0dafb1ce
PM
182=head2 Changes to Existing Documentation
183
184=head3 L<perlcall>
a43707ab 185
0dafb1ce 186=over 4
a43707ab 187
0dafb1ce
PM
188=item *
189
190A number of cleanups have been made to perlcall, including:
f282dc56 191
cf73ceda 192=over 4
f282dc56
MH
193
194=item *
195
0dafb1ce
PM
196use EXTEND(SP, n) and PUSHs() instead of XPUSHs() where applicable
197and update prose to match
cf73ceda 198
0dafb1ce
PM
199=item *
200
201add POPu, POPul and POPpbytex to the "complete list of POP macros"
202and clarify the documentation for some of the existing entries, and
203a note about side-effects
cf73ceda 204
0dafb1ce 205=item *
cf73ceda 206
0dafb1ce 207add API documentation for POPu and POPul
cf73ceda 208
0dafb1ce 209=item *
cf73ceda 210
0dafb1ce 211use ERRSV more efficiently
f282dc56
MH
212
213=item *
214
0dafb1ce 215approaches to thread-safety storage of SVs.
cf73ceda
MH
216
217=back
218
0dafb1ce 219=back
a43707ab 220
0dafb1ce 221=head3 L<perlunicode>
cf73ceda
MH
222
223=over 4
f282dc56
MH
224
225=item *
226
0dafb1ce 227Discourage use of 'In' prefix for Unicode Block property.
cf73ceda 228
a43707ab 229=back
cf73ceda 230
0dafb1ce 231=head1 Diagnostics
0b8e4842 232
0dafb1ce
PM
233The following additions or changes have been made to diagnostic output,
234including warnings and fatal error messages. For the complete list of
235diagnostic messages, see L<perldiag>.
cf73ceda 236
0dafb1ce 237=head2 New Diagnostics
cf73ceda 238
0dafb1ce 239=head3 New Errors
cf73ceda
MH
240
241=over 4
0b8e4842 242
0dafb1ce 243=item *
eabfc7bc 244
0dafb1ce 245L<%s must not be a named sequence in transliteration operator|perldiag/"%s must not be a named sequence in transliteration operator">
cf73ceda 246
0dafb1ce
PM
247(F) Transliteration (C<tr///> and C<y///>) transliterates individual
248characters. But a named sequence by definition is more than an
249individual charater, and hence doing this operation on it doesn't make
250sense.
cf73ceda 251
0dafb1ce 252=back
a43707ab 253
0dafb1ce 254=head1 Testing
cf73ceda 255
cf73ceda 256=over 4
374c951f 257
0dafb1ce 258=item *
374c951f 259
0dafb1ce
PM
260Parallel building has been added to the dmake C<makefile.mk> makefile. All
261Win32 compilers are supported.
e586de20 262
fc4c3cec 263=back
e586de20 264
0dafb1ce 265=head1 Platform Support
a43707ab 266
0dafb1ce 267=head2 Platform-Specific Notes
b7b593d8 268
fc4c3cec 269=over 4
4b951711 270
d0664088 271=item EBCDIC C<cmp()> and C<sort()> fixed for UTF-EBCDIC strings
4b951711 272
d0664088
KW
273Comparing two strings that were both encoded in UTF-8 (or more
274precisely, UTF-EBCDIC) did not work properly until now. Since C<sort()>
275uses C<cmp()>, this fixes that as well.
cf73ceda 276
f4240379
KW
277=item EBCDIC C<tr///> and C<yr///> fixed for C<\N{}>, and C<S<use utf8>> ranges
278
279Perl v5.22 introduced the concept of portable ranges to regular
280expression patterns. A portable range matches the same set of
281characters no matter what platform is being run on. This concept is now
282extended to C<tr///>. See
283C<L<trE<sol>E<sol>E<sol>|perlop/trE<sol>SEARCHLISTE<sol>REPLACEMENTLISTE<sol>cdsr>>.
284
285There were also some problems with these operations under S<C<use
286utf8>>, which are now fixed
287
d89ea360
DD
288=item Win32
289
290=over
291
292=item *
293
294Parallel building has been added to the dmake C<makefile.mk> makefile. All
295Win32 compilers are supported.
296
297=back
298
0dafb1ce 299=item AmigaOS
cf73ceda 300
0dafb1ce
PM
301The AmigaOS port has been reintegrated into the main tree, based off of
302Perl 5.22.1.
eabfc7bc 303
0dafb1ce 304=item clang++
eabfc7bc 305
0dafb1ce 306Don't add -shared when the compiler is clang++
eabfc7bc 307
fc4c3cec 308=back
302ef3d4 309
fc4c3cec 310=head1 Selected Bug Fixes
302ef3d4 311
fc4c3cec 312=over 4
eabfc7bc 313
73d6481e 314=item *
eabfc7bc 315
e7bc5934 316C<qr/(?[ () ])/> no longer segfaults, giving a syntax error message instead.
e0be3f06 317[perl #125805]
cf73ceda 318
9a7bb2f7
KW
319=item *
320
6a475a49 321Regular expression possessive quantifier v5.20 regression now fixed.
9a7bb2f7
KW
322C<qr/>I<PAT>C<{>I<min>,I<max>C<}+>C</> is supposed to behave identically
323to C<qr/(?E<gt>>I<PAT>C<{>I<min>,I<max>C<})/>. Since v5.20, this didn't
324work if I<min> and I<max> were equal. [perl #125825]
325
3160b44a
TC
326=item *
327
328C<< BEGIN <> >> no longer segfaults and properly produces an error
329message. [perl #125341]
330
f4240379
KW
331=item *
332
333In C<tr///> an illegal backwards range like C<tr/\x{101}-\x{100}//> was
334not always detected, giving incorrect results. This is now fixed.
335
a43707ab 336=back
89afeb47 337
a43707ab 338=head1 Acknowledgements
5ea25977 339
5a74572e
PM
340Perl 5.23.3 represents approximately 4 weeks of development since Perl 5.23.2
341and contains approximately 150,000 lines of changes across 550 files from 30
342authors.
343
344Excluding auto-generated files, documentation and release tools, there were
345approximately 120,000 lines of changes to 410 .pm, .t, .c and .h files.
346
347Perl continues to flourish into its third decade thanks to a vibrant community
348of users and developers. The following people are known to have contributed the
349improvements that became Perl 5.23.3:
350
351Aaron Crane, Alexander D'Archangel, Andy Broad, Chris 'BinGOs' Williams, Craig
352A. Berry, Dan Collins, Daniel Dragan, David Mitchell, Father Chrysostomos,
353James E Keenan, Jan Dubois, Jarkko Hietaniemi, Jerry D. Hedden, John SJ
354Anderson, Karen Etheridge, Karl Williamson, Lukas Mai, Matthew Horsfall,
355Nicolas R., Peter John Acklam, Peter Martini, Ricardo Signes, Shlomi Fish,
356Steffen Müller, Steve Hay, Sullivan Beck, Thomas Sibley, Todd Rinaldo, Tony
357Cook, Zachary Storer.
358
359The list above is almost certainly incomplete as it is automatically generated
360from version control history. In particular, it does not include the names of
361the (very much appreciated) contributors who reported issues to the Perl bug
362tracker.
363
364Many of the changes included in this version originated in the CPAN modules
365included in Perl's core. We're grateful to the entire CPAN community for
366helping Perl to flourish.
367
368For a more complete list of all of Perl's historical contributors, please see
369the F<AUTHORS> file in the Perl source distribution.
f5b73711 370
44691e6f
AB
371=head1 Reporting Bugs
372
e08634c5
SH
373If you find what you think is a bug, you might check the articles recently
374posted to the comp.lang.perl.misc newsgroup and the perl bug database at
fc4c3cec
RS
375L<https://rt.perl.org/> . There may also be information at
376L<http://www.perl.org/> , the Perl Home Page.
44691e6f 377
e08634c5
SH
378If you believe you have an unreported bug, please run the L<perlbug> program
379included with your release. Be sure to trim your bug down to a tiny but
380sufficient test case. Your bug report, along with the output of C<perl -V>,
381will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
382
383If the bug you are reporting has security implications, which make it
e08634c5
SH
384inappropriate to send to a publicly archived mailing list, then please send it
385to perl5-security-report@perl.org. This points to a closed subscription
386unarchived mailing list, which includes all the core committers, who will be
387able to help assess the impact of issues, figure out a resolution, and help
f9001595 388co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
389platforms on which Perl is supported. Please only use this address for
390security issues in the Perl core, not for modules independently distributed on
391CPAN.
44691e6f
AB
392
393=head1 SEE ALSO
394
e08634c5
SH
395The F<Changes> file for an explanation of how to view exhaustive details on
396what changed.
44691e6f
AB
397
398The F<INSTALL> file for how to build Perl.
399
400The F<README> file for general stuff.
401
402The F<Artistic> and F<Copying> files for copyright information.
403
404=cut