This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
add PERL_OP_PARENT to 'perl -V' output
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
0302547a 5perldelta - what is new for perl v5.25.1
eabfc7bc 6
2cfe9b50 7=head1 DESCRIPTION
eabfc7bc 8
0302547a 9This document describes differences between the 5.25.0 release and the 5.25.1
4b8803f0 10release.
f3ed8cbf 11
0302547a
RS
12If you are upgrading from an earlier release such as 5.24.0, first read
13L<perl5250delta>, which describes differences between 5.24.0 and 5.25.0.
eabfc7bc 14
0302547a 15=head1 Notice
fac0c351 16
0302547a
RS
17XXX Any important notices here
18
19=head1 Core Enhancements
20
21XXX New core language features go here. Summarize user-visible core language
22enhancements. Particularly prominent performance optimisations could go
23here, but most should go in the L</Performance Enhancements> section.
24
25[ List each enhancement as a =head2 entry ]
26
27=head1 Security
28
29XXX Any security-related notices go here. In particular, any security
30vulnerabilities closed should be noted here rather than in the
31L</Selected Bug Fixes> section.
32
33[ List each security issue as a =head2 entry ]
34
1656665e
KW
35=head2 Unescaped literal C<"{"> characters in regular expression
36patterns are no longer permissible
37
38You have to now say something like C<"\{"> or C<"[{]"> to specify to
39match a LEFT CURLY BRACKET. This will allow future extensions to the
40language. This restriction is not enforced, nor are there current plans
41to enforce it, if the C<"{"> is the first character in the pattern.
42
43These have been deprecated since v5.16, with a deprecation message
44displayed starting in v5.22.
45
acab2422
KW
46=head2 Literal control character variable names are no longer permissible
47
48A variable name may no longer contain a literal control character under
49any circumstances. These previously were allowed in single-character
50names on ASCII platforms, but have been deprecated there since Perl
51v5.20. This affects things like C<$I<\cT>>, where I<\cT> is a literal
52control (such as a C<NAK> or C<NEGATIVE ACKNOWLEDGE> character) in the
53source code.
0302547a 54
60108b47
KW
55=head2 C<qr//xx> is no longer permissible
56
57Using more than one C</x> regular expression pattern modifier on a
58single pattern is now forbidden. This is to allow a future enhancement
59to the language. This usage has been deprecated since v5.22.
60
61463a3e 61=head2 C<NBSP> is no longer permissible in C<\N{...}>
0302547a 62
61463a3e
KW
63The name of a character may no longer contain non-breaking spaces. It
64has been deprecated to do so since Perl v5.22.
0302547a
RS
65
66=head1 Deprecations
67
68XXX Any deprecated features, syntax, modules etc. should be listed here.
69
70=head2 Module removals
71
72XXX Remove this section if inapplicable.
73
74The following modules will be removed from the core distribution in a
75future release, and will at that time need to be installed from CPAN.
76Distributions on CPAN which require these modules will need to list them as
77prerequisites.
78
79The core versions of these modules will now issue C<"deprecated">-category
80warnings to alert you to this fact. To silence these deprecation warnings,
81install the modules in question from CPAN.
82
83Note that these are (with rare exceptions) fine modules that you are encouraged
84to continue to use. Their disinclusion from core primarily hinges on their
85necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
86not usually on concerns over their design.
87
88=over
89
90=item XXX
91
92XXX Note that deprecated modules should be listed here even if they are listed
93as an updated module in the L</Modules and Pragmata> section.
94
95=back
96
97[ List each other deprecation as a =head2 entry ]
98
99=head1 Performance Enhancements
100
101XXX Changes which enhance performance without changing behaviour go here.
102There may well be none in a stable release.
103
104[ List each enhancement as a =item entry ]
105
106=over 4
107
108=item *
109
110XXX
111
112=back
113
114=head1 Modules and Pragmata
115
116XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
117go here. If Module::CoreList is updated, generate an initial draft of the
118following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
119for important changes should then be added by hand. In an ideal world,
120dual-life modules would have a F<Changes> file that could be cribbed.
121
122[ Within each section, list entries as a =item entry ]
123
124=head2 New Modules and Pragmata
125
126=over 4
127
128=item *
129
130XXX
131
132=back
133
134=head2 Updated Modules and Pragmata
135
136=over 4
137
138=item *
139
140L<XXX> has been upgraded from version A.xx to B.yy.
141
142=back
143
144=head2 Removed Modules and Pragmata
145
146=over 4
147
148=item *
149
150XXX
151
152=back
153
154=head1 Documentation
155
156XXX Changes to files in F<pod/> go here. Consider grouping entries by
157file and be sure to link to the appropriate page, e.g. L<perlfunc>.
158
159=head2 New Documentation
160
161XXX Changes which create B<new> files in F<pod/> go here.
162
163=head3 L<XXX>
164
165XXX Description of the purpose of the new file here
166
167=head2 Changes to Existing Documentation
168
169XXX Changes which significantly change existing files in F<pod/> go here.
170However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
171section.
172
173=head3 L<XXX>
174
175=over 4
176
177=item *
178
179XXX Description of the change here
180
181=back
182
183=head1 Diagnostics
184
185The following additions or changes have been made to diagnostic output,
186including warnings and fatal error messages. For the complete list of
187diagnostic messages, see L<perldiag>.
188
189XXX New or changed warnings emitted by the core's C<C> code go here. Also
190include any changes in L<perldiag> that reconcile it to the C<C> code.
191
192=head2 New Diagnostics
193
194XXX Newly added diagnostic messages go under here, separated into New Errors
195and New Warnings
196
197=head3 New Errors
198
199=over 4
200
201=item *
202
203XXX L<message|perldiag/"message">
204
205=back
206
207=head3 New Warnings
208
209=over 4
210
211=item *
212
213XXX L<message|perldiag/"message">
214
215=back
e1ad135d 216
0302547a 217=head2 Changes to Existing Diagnostics
be2c0c65 218
0302547a 219XXX Changes (i.e. rewording) of diagnostic messages go here
be2c0c65 220
0302547a
RS
221=over 4
222
223=item *
224
225XXX Describe change here
226
227=back
228
229=head1 Utility Changes
230
231XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
232Most of these are built within the directory F<utils>.
233
234[ List utility changes as a =head2 entry for each utility and =item
235entries for each change
236Use L<XXX> with program names to get proper documentation linking. ]
237
238=head2 L<XXX>
239
240=over 4
241
242=item *
243
244XXX
245
246=back
247
248=head1 Configuration and Compilation
249
250XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
251go here. Any other changes to the Perl build process should be listed here.
252However, any platform-specific changes should be listed in the
253L</Platform Support> section, instead.
254
255[ List changes as a =item entry ].
256
257=over 4
258
259=item *
260
83a177d5
TC
261C<Configure> now builds C<miniperl> and C<generate_uudmap> if you
262invoke it with C<-Dusecrosscompiler> but not C<-Dtargethost=somehost>.
263This means you can supply your target platform C<config.sh>, generate
264the headers and proceed to build your cross-target perl. [perl #127234]
0302547a 265
f54530a4
TC
266=item *
267
268Builds with C<-Accflags=-DPERL_TRACE_OPS> now only dump the operator
269counts when the environment variable C<PERL_TRACE_OPS> to be set to a
270non-zero integer. This allows C<make test> to pass on such a build.
271
0302547a
RS
272=back
273
274=head1 Testing
275
276XXX Any significant changes to the testing of a freshly built perl should be
277listed here. Changes which create B<new> files in F<t/> go here as do any
278large changes to the testing harness (e.g. when parallel testing was added).
279Changes to existing files in F<t/> aren't worth summarizing, although the bugs
280that they represent may be covered elsewhere.
281
282[ List each test improvement as a =item entry ]
283
284=over 4
285
286=item *
287
288XXX
289
290=back
291
292=head1 Platform Support
293
294XXX Any changes to platform support should be listed in the sections below.
295
296[ Within the sections, list each platform as a =item entry with specific
297changes as paragraphs below it. ]
298
299=head2 New Platforms
300
301XXX List any platforms that this version of perl compiles on, that previous
302versions did not. These will either be enabled by new files in the F<hints/>
303directories, or new subdirectories and F<README> files at the top level of the
304source tree.
305
306=over 4
307
308=item XXX-some-platform
309
310XXX
311
312=back
313
314=head2 Discontinued Platforms
315
316XXX List any platforms that this version of perl no longer compiles on.
317
318=over 4
319
320=item XXX-some-platform
321
322XXX
323
324=back
325
326=head2 Platform-Specific Notes
327
328XXX List any changes for specific platforms. This could include configuration
329and compilation changes or changes in portability/compatibility. However,
330changes within modules for platforms should generally be listed in the
331L</Modules and Pragmata> section.
332
333=over 4
334
335=item XXX-some-platform
336
337XXX
338
339=back
340
341=head1 Internal Changes
342
343XXX Changes which affect the interface available to C<XS> code go here. Other
344significant internal changes for future core maintainers should be noted as
345well.
346
347[ List each change as a =item entry ]
348
349=over 4
350
351=item *
352
353XXX
354
355=back
356
357=head1 Selected Bug Fixes
358
359XXX Important bug fixes in the core language are summarized here. Bug fixes in
360files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
361
362[ List each fix as a =item entry ]
363
364=over 4
365
366=item *
367
368XXX
369
370=back
371
372=head1 Known Problems
373
374XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
375tests that had to be C<TODO>ed for the release would be noted here. Unfixed
376platform specific bugs also go here.
377
378[ List each fix as a =item entry ]
379
380=over 4
381
382=item *
383
384XXX
385
386=back
387
388=head1 Errata From Previous Releases
389
390=over 4
391
392=item *
393
394XXX Add anything here that we forgot to add, or were mistaken about, in
395the perldelta of a previous release.
396
397=back
398
399=head1 Obituary
400
401XXX If any significant core contributor has died, we've added a short obituary
402here.
403
404=head1 Acknowledgements
be2c0c65 405
0302547a 406Generate this with:
be2c0c65 407
0302547a 408 perl Porting/acknowledgements.pl v5.25.1..HEAD
f5b73711 409
44691e6f
AB
410=head1 Reporting Bugs
411
e08634c5
SH
412If you find what you think is a bug, you might check the articles recently
413posted to the comp.lang.perl.misc newsgroup and the perl bug database at
4b8803f0
RS
414L<https://rt.perl.org/> . There may also be information at
415L<http://www.perl.org/> , the Perl Home Page.
44691e6f 416
e08634c5
SH
417If you believe you have an unreported bug, please run the L<perlbug> program
418included with your release. Be sure to trim your bug down to a tiny but
419sufficient test case. Your bug report, along with the output of C<perl -V>,
420will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 421
87c118b9
DM
422If the bug you are reporting has security implications which make it
423inappropriate to send to a publicly archived mailing list, then see
424L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
425for details of how to report the issue.
44691e6f
AB
426
427=head1 SEE ALSO
428
e08634c5
SH
429The F<Changes> file for an explanation of how to view exhaustive details on
430what changed.
44691e6f
AB
431
432The F<INSTALL> file for how to build Perl.
433
434The F<README> file for general stuff.
435
436The F<Artistic> and F<Copying> files for copyright information.
437
438=cut