This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade IO-Socket-IP from version 0.30 to 0.31
[perl5.git] / pod / perldelta.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 [ this is a template for a new perldelta file.  Any text flagged as XXX needs
6 to be processed before release. ]
7
8 perldelta - what is new for perl v5.21.2
9
10 =head1 DESCRIPTION
11
12 This document describes differences between the 5.21.1 release and the 5.21.2
13 release.
14
15 If you are upgrading from an earlier release such as 5.21.0, first read
16 L<perl5211delta>, which describes differences between 5.21.0 and 5.21.1.
17
18 =head1 Notice
19
20 XXX Any important notices here
21
22 =head1 Core Enhancements
23
24 XXX New core language features go here.  Summarize user-visible core language
25 enhancements.  Particularly prominent performance optimisations could go
26 here, but most should go in the L</Performance Enhancements> section.
27
28 [ List each enhancement as a =head2 entry ]
29
30 =head1 Security
31
32 XXX Any security-related notices go here.  In particular, any security
33 vulnerabilities closed should be noted here rather than in the
34 L</Selected Bug Fixes> section.
35
36 [ List each security issue as a =head2 entry ]
37
38 =head2 Perl is now always compiled with -D_FORTIFY_SOURCE=2 if available
39
40 The 'code hardening' option called C<_FORTIFY_SOURCE>, available in
41 gcc 4.*, is now always used for compiling Perl, if available.
42
43 Note that this isn't necessarily a huge step since in many platforms
44 the step had already been taken several years ago: many Linux
45 distributions (like Fedora) have been using this option for Perl,
46 and OS X has enforced the same for many years.
47
48 =head1 Incompatible Changes
49
50 XXX For a release on a stable branch, this section aspires to be:
51
52     There are no changes intentionally incompatible with 5.XXX.XXX
53     If any exist, they are bugs, and we request that you submit a
54     report.  See L</Reporting Bugs> below.
55
56 [ List each incompatible change as a =head2 entry ]
57
58 =head1 Deprecations
59
60 XXX Any deprecated features, syntax, modules etc. should be listed here.
61
62 =head2 Module removals
63
64 XXX Remove this section if inapplicable.
65
66 The following modules will be removed from the core distribution in a
67 future release, and will at that time need to be installed from CPAN.
68 Distributions on CPAN which require these modules will need to list them as
69 prerequisites.
70
71 The core versions of these modules will now issue C<"deprecated">-category
72 warnings to alert you to this fact.  To silence these deprecation warnings,
73 install the modules in question from CPAN.
74
75 Note that these are (with rare exceptions) fine modules that you are encouraged
76 to continue to use.  Their disinclusion from core primarily hinges on their
77 necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
78 not usually on concerns over their design.
79
80 =over
81
82 =item XXX
83
84 XXX Note that deprecated modules should be listed here even if they are listed
85 as an updated module in the L</Modules and Pragmata> section.
86
87 =back
88
89 [ List each other deprecation as a =head2 entry ]
90
91 =head1 Performance Enhancements
92
93 XXX Changes which enhance performance without changing behaviour go here.
94 There may well be none in a stable release.
95
96 [ List each enhancement as a =item entry ]
97
98 =over 4
99
100 =item *
101
102 XXX
103
104 =back
105
106 =head1 Modules and Pragmata
107
108 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
109 go here.  If Module::CoreList is updated, generate an initial draft of the
110 following sections using F<Porting/corelist-perldelta.pl>.  A paragraph summary
111 for important changes should then be added by hand.  In an ideal world,
112 dual-life modules would have a F<Changes> file that could be cribbed.
113
114 [ Within each section, list entries as a =item entry ]
115
116 =head2 New Modules and Pragmata
117
118 =over 4
119
120 =item *
121
122 XXX
123
124 =back
125
126 =head2 Updated Modules and Pragmata
127
128 =over 4
129
130 =item *
131
132 L<IO::Socket::IP> has been upgraded from verion 0.29 to 0.31.
133
134 A better fix for subclassing C<connect()>.
135 L<[cpan #95983]|https://rt.cpan.org/Ticket/Display.html?id=95983>
136 L<[cpan #97050]|https://rt.cpan.org/Ticket/Display.html?id=97050>
137
138 =item *
139
140 L<Math::BigInt> has been upgraded from version 1.9995 to 1.9996.
141
142 Correct handling of subclasses.
143 L<[cpan #96254]|https://rt.cpan.org/Ticket/Display.html?id=96254>
144 L<[cpan #96329]|https://rt.cpan.org/Ticket/Display.html?id=96329>
145
146 =item *
147
148 L<Module::CoreList> has been upgraded from version 5.021001_1 to 5.021002.
149
150 =item *
151
152 L<threads> has been upgraded from version 1.94 to 1.95.
153
154 =back
155
156 =head2 Removed Modules and Pragmata
157
158 =over 4
159
160 =item *
161
162 XXX
163
164 =back
165
166 =head1 Documentation
167
168 XXX Changes to files in F<pod/> go here.  Consider grouping entries by
169 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
170
171 =head2 New Documentation
172
173 XXX Changes which create B<new> files in F<pod/> go here.
174
175 =head3 L<XXX>
176
177 XXX Description of the purpose of the new file here
178
179 =head2 Changes to Existing Documentation
180
181 XXX Changes which significantly change existing files in F<pod/> go here.
182 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
183 section.
184
185 =head3 L<XXX>
186
187 =over 4
188
189 =item *
190
191 XXX Description of the change here
192
193 =back
194
195 =head1 Diagnostics
196
197 The following additions or changes have been made to diagnostic output,
198 including warnings and fatal error messages.  For the complete list of
199 diagnostic messages, see L<perldiag>.
200
201 XXX New or changed warnings emitted by the core's C<C> code go here.  Also
202 include any changes in L<perldiag> that reconcile it to the C<C> code.
203
204 =head2 New Diagnostics
205
206 XXX Newly added diagnostic messages go under here, separated into New Errors
207 and New Warnings
208
209 =head3 New Errors
210
211 =over 4
212
213 =item *
214
215 XXX L<message|perldiag/"message">
216
217 =back
218
219 =head3 New Warnings
220
221 =over 4
222
223 =item *
224
225 L<Argument "%s" treated as 0 in increment (++)|perldiag/"Argument "%s" treated
226 as 0 in increment (++)">
227
228 (W numeric) The indicated string was fed as an argument to the C<++> operator
229 which expects either a number or a string matching C</^[a-zA-Z]*[0-9]*\z/>.
230 See L<perlop/Auto-increment and Auto-decrement> for details.
231
232 =back
233
234 =head2 Changes to Existing Diagnostics
235
236 XXX Changes (i.e. rewording) of diagnostic messages go here
237
238 =over 4
239
240 =item *
241
242 XXX Describe change here
243
244 =back
245
246 =head1 Utility Changes
247
248 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
249 Most of these are built within the directory F<utils>.
250
251 [ List utility changes as a =head2 entry for each utility and =item
252 entries for each change
253 Use L<XXX> with program names to get proper documentation linking. ]
254
255 =head2 L<XXX>
256
257 =over 4
258
259 =item *
260
261 XXX
262
263 =back
264
265 =head1 Configuration and Compilation
266
267 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
268 go here.  Any other changes to the Perl build process should be listed here.
269 However, any platform-specific changes should be listed in the
270 L</Platform Support> section, instead.
271
272 [ List changes as a =item entry ].
273
274 =over 4
275
276 =item *
277
278 XXX
279
280 =back
281
282 =head1 Testing
283
284 XXX Any significant changes to the testing of a freshly built perl should be
285 listed here.  Changes which create B<new> files in F<t/> go here as do any
286 large changes to the testing harness (e.g. when parallel testing was added).
287 Changes to existing files in F<t/> aren't worth summarizing, although the bugs
288 that they represent may be covered elsewhere.
289
290 [ List each test improvement as a =item entry ]
291
292 =over 4
293
294 =item *
295
296 XXX
297
298 =back
299
300 =head1 Platform Support
301
302 XXX Any changes to platform support should be listed in the sections below.
303
304 [ Within the sections, list each platform as a =item entry with specific
305 changes as paragraphs below it. ]
306
307 =head2 New Platforms
308
309 XXX List any platforms that this version of perl compiles on, that previous
310 versions did not.  These will either be enabled by new files in the F<hints/>
311 directories, or new subdirectories and F<README> files at the top level of the
312 source tree.
313
314 =over 4
315
316 =item XXX-some-platform
317
318 XXX
319
320 =back
321
322 =head2 Discontinued Platforms
323
324 XXX List any platforms that this version of perl no longer compiles on.
325
326 =over 4
327
328 =item XXX-some-platform
329
330 XXX
331
332 =back
333
334 =head2 Platform-Specific Notes
335
336 XXX List any changes for specific platforms.  This could include configuration
337 and compilation changes or changes in portability/compatibility.  However,
338 changes within modules for platforms should generally be listed in the
339 L</Modules and Pragmata> section.
340
341 =over 4
342
343 =item Solaris
344
345 Builds on Solaris 10 with C<-Dusedtrace> would fail early since make
346 didn't follow implied dependencies to build C<perldtrace.h>.  Added an
347 explicit dependency to C<depend>.
348 L<[perl #120120]|https://rt.perl.org/Ticket/Display.html?id=120120>
349
350 =back
351
352 =head1 Internal Changes
353
354 XXX Changes which affect the interface available to C<XS> code go here.  Other
355 significant internal changes for future core maintainers should be noted as
356 well.
357
358 [ List each change as a =item entry ]
359
360 =over 4
361
362 =item *
363
364 The following private API functions had their context parameter removed,
365 C<Perl_cast_ulong>,  C<Perl_cast_i32>, C<Perl_cast_iv>,    C<Perl_cast_uv>,
366 C<Perl_cv_const_sv>, C<Perl_mg_find>,  C<Perl_mg_findext>, C<Perl_mg_magical>,
367 C<Perl_mini_mktime>, C<Perl_my_dirfd>, C<Perl_sv_backoff>, C<Perl_utf8_hop>.
368
369 Users of the public API prefix-less calls remain unaffected.
370
371 =back
372
373 =head1 Selected Bug Fixes
374
375 XXX Important bug fixes in the core language are summarized here.  Bug fixes in
376 files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
377
378 [ List each fix as a =item entry ]
379
380 =over 4
381
382 =item *
383
384 XXX
385
386 =back
387
388 =head1 Known Problems
389
390 XXX Descriptions of platform agnostic bugs we know we can't fix go here.  Any
391 tests that had to be C<TODO>ed for the release would be noted here.  Unfixed
392 platform specific bugs also go here.
393
394 [ List each fix as a =item entry ]
395
396 =over 4
397
398 =item *
399
400 XXX
401
402 =back
403
404 =head1 Errata From Previous Releases
405
406 =over 4
407
408 =item *
409
410 XXX Add anything here that we forgot to add, or were mistaken about, in
411 the perldelta of a previous release.
412
413 =back
414
415 =head1 Obituary
416
417 XXX If any significant core contributor has died, we've added a short obituary
418 here.
419
420 =head1 Acknowledgements
421
422 XXX Generate this with:
423
424   perl Porting/acknowledgements.pl v5.21.1..HEAD
425
426 =head1 Reporting Bugs
427
428 If you find what you think is a bug, you might check the articles recently
429 posted to the comp.lang.perl.misc newsgroup and the perl bug database at
430 https://rt.perl.org/ .  There may also be information at
431 http://www.perl.org/ , the Perl Home Page.
432
433 If you believe you have an unreported bug, please run the L<perlbug> program
434 included with your release.  Be sure to trim your bug down to a tiny but
435 sufficient test case.  Your bug report, along with the output of C<perl -V>,
436 will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
437
438 If the bug you are reporting has security implications, which make it
439 inappropriate to send to a publicly archived mailing list, then please send it
440 to perl5-security-report@perl.org.  This points to a closed subscription
441 unarchived mailing list, which includes all the core committers, who will be
442 able to help assess the impact of issues, figure out a resolution, and help
443 co-ordinate the release of patches to mitigate or fix the problem across all
444 platforms on which Perl is supported.  Please only use this address for
445 security issues in the Perl core, not for modules independently distributed on
446 CPAN.
447
448 =head1 SEE ALSO
449
450 The F<Changes> file for an explanation of how to view exhaustive details on
451 what changed.
452
453 The F<INSTALL> file for how to build Perl.
454
455 The F<README> file for general stuff.
456
457 The F<Artistic> and F<Copying> files for copyright information.
458
459 =cut