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