This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regcomp.c: Add macro to output diagnostic
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
b26bd9b0
PM
5[ this is a template for a new perldelta file. Any text flagged as XXX needs
6to be processed before release. ]
7
8perldelta - what is new for perl v5.23.4
eabfc7bc 9
2cfe9b50 10=head1 DESCRIPTION
eabfc7bc 11
b26bd9b0 12This document describes differences between the 5.23.3 release and the 5.23.4
2cfe9b50 13release.
eabfc7bc 14
b26bd9b0
PM
15If you are upgrading from an earlier release such as 5.23.2, first read
16L<perl5233delta>, which describes differences between 5.23.2 and 5.23.3.
a43707ab 17
b26bd9b0 18=head1 Notice
a0bd1a30 19
b26bd9b0 20XXX Any important notices here
a0bd1a30 21
b26bd9b0 22=head1 Core Enhancements
deaaea8c 23
b26bd9b0
PM
24XXX New core language features go here. Summarize user-visible core language
25enhancements. Particularly prominent performance optimisations could go
26here, but most should go in the L</Performance Enhancements> section.
fb7e9cdd 27
b26bd9b0 28[ List each enhancement as a =head2 entry ]
fb7e9cdd 29
b26bd9b0 30=head1 Security
deaaea8c 31
b26bd9b0
PM
32XXX Any security-related notices go here. In particular, any security
33vulnerabilities closed should be noted here rather than in the
34L</Selected Bug Fixes> section.
7d380357 35
b26bd9b0 36[ List each security issue as a =head2 entry ]
a43707ab 37
b26bd9b0 38=head1 Incompatible Changes
a43707ab 39
9ff1a054
RS
40=head2 Lexical $_ has been removed
41
42C<my $_> was introduced in Perl v5.10, and subsequently caused much confusion
43with no obvious solution. In Perl v5.18.0, it was made experimental on the
44theory that it would either be removed or redesigned in a less confusing (but
45backward-incompatible) way. Over the following years, no alternatives were
46proposed. The feature has now been removed and will fail to compile.
0ba9d88c 47
d6b89212
KW
48=head2 Only blanks and tabs are now allowed within C<[...]> within C<(?[...])>.
49
50The experimental Extended Bracketed Character Classes can contain
51regular bracketed character classes within them. These differ from
52regular ones in that white space is generally ignored, unless escaped by
53preceding it with a backslash. The white space that is ignored is now
54limited to just tab C<\t> and SPACE characters. Previously, it was any
55white space. See
56L<perlrecharclass/Extended Bracketed Character Classes>.
57
b26bd9b0 58=head1 Deprecations
0ba9d88c 59
b26bd9b0 60XXX Any deprecated features, syntax, modules etc. should be listed here.
0ba9d88c 61
b26bd9b0 62=head2 Module removals
a43707ab 63
b26bd9b0 64XXX Remove this section if inapplicable.
a43707ab 65
b26bd9b0
PM
66The following modules will be removed from the core distribution in a
67future release, and will at that time need to be installed from CPAN.
68Distributions on CPAN which require these modules will need to list them as
69prerequisites.
a43707ab 70
b26bd9b0
PM
71The core versions of these modules will now issue C<"deprecated">-category
72warnings to alert you to this fact. To silence these deprecation warnings,
73install the modules in question from CPAN.
0ba9d88c 74
b26bd9b0
PM
75Note that these are (with rare exceptions) fine modules that you are encouraged
76to continue to use. Their disinclusion from core primarily hinges on their
77necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
78not usually on concerns over their design.
cf73ceda 79
b26bd9b0 80=over
fc4c3cec 81
b26bd9b0 82=item XXX
fc4c3cec 83
b26bd9b0
PM
84XXX Note that deprecated modules should be listed here even if they are listed
85as an updated module in the L</Modules and Pragmata> section.
fc4c3cec 86
b26bd9b0 87=back
80e86009 88
b26bd9b0 89[ List each other deprecation as a =head2 entry ]
80e86009 90
b26bd9b0 91=head1 Performance Enhancements
fc4c3cec 92
b26bd9b0
PM
93XXX Changes which enhance performance without changing behaviour go here.
94There may well be none in a stable release.
fc4c3cec 95
b26bd9b0 96[ List each enhancement as a =item entry ]
a43707ab 97
b26bd9b0 98=over 4
a43707ab 99
0dafb1ce 100=item *
5ea25977 101
b26bd9b0 102XXX
fc4c3cec 103
b26bd9b0 104=back
fc4c3cec 105
b26bd9b0 106=head1 Modules and Pragmata
eabfc7bc 107
b26bd9b0
PM
108XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
109go here. If Module::CoreList is updated, generate an initial draft of the
110following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
111for important changes should then be added by hand. In an ideal world,
112dual-life modules would have a F<Changes> file that could be cribbed.
eabfc7bc 113
b26bd9b0 114[ Within each section, list entries as a =item entry ]
eabfc7bc 115
b26bd9b0 116=head2 New Modules and Pragmata
eabfc7bc 117
b26bd9b0 118=over 4
cf73ceda 119
0dafb1ce 120=item *
a43707ab 121
b26bd9b0 122XXX
eabfc7bc 123
b26bd9b0 124=back
80e86009 125
b26bd9b0 126=head2 Updated Modules and Pragmata
5ea25977 127
b26bd9b0 128=over 4
80e86009 129
0dafb1ce 130=item *
80e86009 131
b26bd9b0 132L<XXX> has been upgraded from version A.xx to B.yy.
5ea25977 133
b26bd9b0 134=back
5ea25977 135
b26bd9b0
PM
136=head2 Removed Modules and Pragmata
137
138=over 4
0dd5b0dc 139
0dafb1ce 140=item *
a43707ab 141
b26bd9b0 142XXX
a43707ab 143
b26bd9b0 144=back
a43707ab 145
b26bd9b0 146=head1 Documentation
0dd5b0dc 147
b26bd9b0
PM
148XXX Changes to files in F<pod/> go here. Consider grouping entries by
149file and be sure to link to the appropriate page, e.g. L<perlfunc>.
0dafb1ce 150
b26bd9b0 151=head2 New Documentation
356231b0 152
b26bd9b0 153XXX Changes which create B<new> files in F<pod/> go here.
356231b0 154
b26bd9b0 155=head3 L<XXX>
a2373b32 156
b26bd9b0 157XXX Description of the purpose of the new file here
eabfc7bc 158
b26bd9b0 159=head2 Changes to Existing Documentation
cf73ceda 160
b26bd9b0
PM
161XXX Changes which significantly change existing files in F<pod/> go here.
162However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
163section.
eabfc7bc 164
b26bd9b0
PM
165=head3 L<XXX>
166
167=over 4
eabfc7bc 168
0dafb1ce 169=item *
eabfc7bc 170
b26bd9b0 171XXX Description of the change here
5ea25977 172
b26bd9b0 173=back
5ea25977 174
b26bd9b0 175=head1 Diagnostics
5ea25977 176
b26bd9b0
PM
177The following additions or changes have been made to diagnostic output,
178including warnings and fatal error messages. For the complete list of
179diagnostic messages, see L<perldiag>.
5ea25977 180
b26bd9b0
PM
181XXX New or changed warnings emitted by the core's C<C> code go here. Also
182include any changes in L<perldiag> that reconcile it to the C<C> code.
a43707ab 183
b26bd9b0 184=head2 New Diagnostics
a43707ab 185
b26bd9b0
PM
186XXX Newly added diagnostic messages go under here, separated into New Errors
187and New Warnings
a43707ab 188
b26bd9b0 189=head3 New Errors
0dafb1ce 190
b26bd9b0 191=over 4
5ea25977
MH
192
193=item *
194
163a633c 195L<Character following \p must be '{' or a single-character Unicode property name in regex;|perldiag/"Character following \%c must be '{' or a single-character Unicode property name in regex; marked by <-- HERE in m/%s/">
dc013420 196
cf73ceda 197=back
dc013420 198
b26bd9b0 199=head3 New Warnings
6962a25d 200
80e86009 201=over 4
f282dc56 202
80e86009 203=item *
f282dc56 204
b26bd9b0 205XXX L<message|perldiag/"message">
f282dc56 206
80e86009 207=back
f282dc56 208
b26bd9b0 209=head2 Changes to Existing Diagnostics
0dafb1ce 210
b26bd9b0 211XXX Changes (i.e. rewording) of diagnostic messages go here
a43707ab 212
0dafb1ce 213=over 4
a43707ab 214
0dafb1ce
PM
215=item *
216
a0c8eb51
TC
217L<"Can't modify non-lvalue subroutine call of &%s"|perldiag/"Can't modify non-lvalue subroutine call of &%s">
218
219This error now reports the name of the non-lvalue subroutine you
220attempted to use as an lvalue.
f282dc56 221
b26bd9b0 222=back
f282dc56 223
b26bd9b0 224=head1 Utility Changes
f282dc56 225
b26bd9b0
PM
226XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
227Most of these are built within the directory F<utils>.
cf73ceda 228
b26bd9b0
PM
229[ List utility changes as a =head2 entry for each utility and =item
230entries for each change
231Use L<XXX> with program names to get proper documentation linking. ]
0dafb1ce 232
b26bd9b0
PM
233=head2 L<XXX>
234
235=over 4
cf73ceda 236
0dafb1ce 237=item *
cf73ceda 238
b26bd9b0 239XXX
cf73ceda 240
b26bd9b0
PM
241=back
242
243=head1 Configuration and Compilation
244
245XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
246go here. Any other changes to the Perl build process should be listed here.
247However, any platform-specific changes should be listed in the
248L</Platform Support> section, instead.
249
250[ List changes as a =item entry ].
cf73ceda 251
b26bd9b0 252=over 4
f282dc56
MH
253
254=item *
255
b26bd9b0 256XXX
cf73ceda
MH
257
258=back
259
b26bd9b0
PM
260=head1 Testing
261
262XXX Any significant changes to the testing of a freshly built perl should be
263listed here. Changes which create B<new> files in F<t/> go here as do any
264large changes to the testing harness (e.g. when parallel testing was added).
265Changes to existing files in F<t/> aren't worth summarizing, although the bugs
266that they represent may be covered elsewhere.
a43707ab 267
b26bd9b0 268[ List each test improvement as a =item entry ]
cf73ceda
MH
269
270=over 4
f282dc56
MH
271
272=item *
273
b26bd9b0 274XXX
cf73ceda 275
a43707ab 276=back
cf73ceda 277
b26bd9b0 278=head1 Platform Support
0b8e4842 279
b26bd9b0 280XXX Any changes to platform support should be listed in the sections below.
cf73ceda 281
b26bd9b0
PM
282[ Within the sections, list each platform as a =item entry with specific
283changes as paragraphs below it. ]
cf73ceda 284
b26bd9b0 285=head2 New Platforms
cf73ceda 286
b26bd9b0
PM
287XXX List any platforms that this version of perl compiles on, that previous
288versions did not. These will either be enabled by new files in the F<hints/>
289directories, or new subdirectories and F<README> files at the top level of the
290source tree.
0b8e4842 291
b26bd9b0 292=over 4
eabfc7bc 293
b26bd9b0 294=item XXX-some-platform
cf73ceda 295
b26bd9b0 296XXX
cf73ceda 297
0dafb1ce 298=back
a43707ab 299
b26bd9b0
PM
300=head2 Discontinued Platforms
301
302XXX List any platforms that this version of perl no longer compiles on.
cf73ceda 303
cf73ceda 304=over 4
374c951f 305
b26bd9b0 306=item XXX-some-platform
374c951f 307
b26bd9b0 308XXX
e586de20 309
fc4c3cec 310=back
e586de20 311
0dafb1ce 312=head2 Platform-Specific Notes
b7b593d8 313
b26bd9b0
PM
314XXX List any changes for specific platforms. This could include configuration
315and compilation changes or changes in portability/compatibility. However,
316changes within modules for platforms should generally be listed in the
317L</Modules and Pragmata> section.
318
fc4c3cec 319=over 4
4b951711 320
b26bd9b0 321=item XXX-some-platform
4b951711 322
b26bd9b0 323XXX
cf73ceda 324
0517ed38
DD
325=item Win32
326
327=over
328
329=item *
330
6937817d
DD
331A new build option C<USE_NO_REGISTRY> has been added to the makefiles. This
332option is off by default, meaning the default is to do Windows registry lookups.
333This option stops Perl from looking inside the registry for anything. For what
334values are looked up in the registry see L<perlwin32>. Internally, in C, the
335name of this option is C<WIN32_NO_REGISTRY>.
336
337=item *
338
0517ed38
DD
339The behavior of Perl using C<HKEY_CURRENT_USER\Software\Perl> and
340C<HKEY_LOCAL_MACHINE\Software\Perl> to lookup certain values, including
341C<%ENV> vars starting with C<PERL> has changed. Previously, the 2 keys were
342checked for entries at all times through Perl processes life time even if they
343did not exist. For performance reasons, now, if the root key (i.e.
344C<HKEY_CURRENT_USER\Software\Perl> or C<HKEY_LOCAL_MACHINE\Software\Perl>) does
345not exist at process start time, it will not be checked again for C<%ENV>
346override entries for the remainder of the Perl processes life. This more
347closely matches Unix behaviour in that the enviroment is copied or inherited on
348startup and changing the variable in the parent process or another process or
349editing <.bashrc> will not change the enviromental variable in other existing,
350running, processes.
351
352=back
353
b26bd9b0 354=back
f4240379 355
b26bd9b0 356=head1 Internal Changes
f4240379 357
b26bd9b0
PM
358XXX Changes which affect the interface available to C<XS> code go here. Other
359significant internal changes for future core maintainers should be noted as
360well.
f4240379 361
b26bd9b0 362[ List each change as a =item entry ]
d89ea360 363
b26bd9b0 364=over 4
d89ea360
DD
365
366=item *
367
fa7a1e49
DD
368L<perlapi/sv_backoff> had its return type changed fron C<int> to C<void>. It
369previously has always returned C<0> since 5.000 stable but that was
370undocumented. Although C<sv_backoff> is marked as public API, XS code is not
371expected to be impacted since the proper API call would be through public API
372C<sv_setsv(sv, &PL_sv_undef)>, or quasi-public C<SvOOK_off>, or non-public
373C<SvOK_off> calls, and the return value of C<sv_backoff> was previously a
374meaningless constant that can be rewritten as C<(sv_backoff(sv),0)>.
d89ea360
DD
375
376=back
377
b26bd9b0 378=head1 Selected Bug Fixes
eabfc7bc 379
b26bd9b0
PM
380XXX Important bug fixes in the core language are summarized here. Bug fixes in
381files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
302ef3d4 382
b26bd9b0 383[ List each fix as a =item entry ]
302ef3d4 384
fc4c3cec 385=over 4
eabfc7bc 386
73d6481e 387=item *
eabfc7bc 388
361446f1
KW
389There were places in regular expression patterns where comments
390(C<(?#...)>) weren't allowed, but should have been. This is now fixed.
391[perl #116639]
cf73ceda 392
b26bd9b0 393=back
9a7bb2f7 394
b26bd9b0 395=head1 Known Problems
9a7bb2f7 396
b26bd9b0
PM
397XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
398tests that had to be C<TODO>ed for the release would be noted here. Unfixed
399platform specific bugs also go here.
3160b44a 400
b26bd9b0
PM
401[ List each fix as a =item entry ]
402
403=over 4
3160b44a 404
f4240379
KW
405=item *
406
b26bd9b0 407XXX
f4240379 408
a43707ab 409=back
89afeb47 410
b26bd9b0 411=head1 Errata From Previous Releases
5ea25977 412
b26bd9b0 413=over 4
5a74572e 414
b26bd9b0 415=item *
5a74572e 416
b26bd9b0
PM
417XXX Add anything here that we forgot to add, or were mistaken about, in
418the perldelta of a previous release.
5a74572e 419
b26bd9b0 420=back
5a74572e 421
b26bd9b0
PM
422=head1 Obituary
423
424XXX If any significant core contributor has died, we've added a short obituary
425here.
426
427=head1 Acknowledgements
5a74572e 428
b26bd9b0 429XXX Generate this with:
5a74572e 430
b26bd9b0 431 perl Porting/acknowledgements.pl v5.23.3..HEAD
f5b73711 432
44691e6f
AB
433=head1 Reporting Bugs
434
e08634c5
SH
435If you find what you think is a bug, you might check the articles recently
436posted to the comp.lang.perl.misc newsgroup and the perl bug database at
fc4c3cec
RS
437L<https://rt.perl.org/> . There may also be information at
438L<http://www.perl.org/> , the Perl Home Page.
44691e6f 439
e08634c5
SH
440If you believe you have an unreported bug, please run the L<perlbug> program
441included with your release. Be sure to trim your bug down to a tiny but
442sufficient test case. Your bug report, along with the output of C<perl -V>,
443will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
444
445If the bug you are reporting has security implications, which make it
e08634c5
SH
446inappropriate to send to a publicly archived mailing list, then please send it
447to perl5-security-report@perl.org. This points to a closed subscription
448unarchived mailing list, which includes all the core committers, who will be
449able to help assess the impact of issues, figure out a resolution, and help
f9001595 450co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
451platforms on which Perl is supported. Please only use this address for
452security issues in the Perl core, not for modules independently distributed on
453CPAN.
44691e6f
AB
454
455=head1 SEE ALSO
456
e08634c5
SH
457The F<Changes> file for an explanation of how to view exhaustive details on
458what changed.
44691e6f
AB
459
460The F<INSTALL> file for how to build Perl.
461
462The F<README> file for general stuff.
463
464The F<Artistic> and F<Copying> files for copyright information.
465
466=cut