This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Finalise perldelta and update perlhist
[perl5.git] / pod / perldelta.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 perldelta - what is new for perl v5.31.7
6
7 =head1 DESCRIPTION
8
9 This document describes differences between the 5.31.6 release and the 5.31.7
10 release.
11
12 If you are upgrading from an earlier release such as 5.31.5, first read
13 L<perl5316delta>, which describes differences between 5.31.5 and 5.31.6.
14
15 =head1 Core Enhancements
16
17 =head2 The isa Operator
18
19 A new experimental infix operator called C<isa> tests whether a given object
20 is an instance of a given class or a class derived from it:
21
22     if( $obj isa Package::Name ) { ... }
23
24 For more detail see L<perlop/Class Instance Operator>.
25
26 =head1 Incompatible Changes
27
28 =head2 C<\p{I<user-defined>}> properties now always override official
29 Unicode ones
30
31 Previously, if and only if a user-defined property was declared prior to
32 the compilation of the regular expression pattern containing it, its
33 definition was used instead of any official Unicode property with the
34 same name.  Now, it always overrides the official property.  This
35 change could break existing code that relied (likely unwittingly) on the
36 previous behavior.  Without this fix, if Unicode released a new version
37 with a new property that happens to have the same name as the one you
38 had long been using, your program would break when you upgraded to a
39 perl that used that new Unicode version.  See L<perlunicode/User-Defined
40 Character Properties>.  [L<GH #17205|https://github.com/Perl/perl5/issues/17205>]
41
42
43 =head1 Deprecations
44
45 =head2 Module removals
46
47 The following modules will be removed from the core distribution in a
48 future release, and will at that time need to be installed from CPAN.
49 Distributions on CPAN which require these modules will need to list them as
50 prerequisites.
51
52 The core versions of these modules will now issue C<"deprecated">-category
53 warnings to alert you to this fact.  To silence these deprecation warnings,
54 install the modules in question from CPAN.
55
56 Note that these are (with rare exceptions) fine modules that you are encouraged
57 to continue to use.  Their disinclusion from core primarily hinges on their
58 necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
59 not usually on concerns over their design.
60
61 =over
62
63 =item B::Debug
64
65 B::Debug is no longer shipped with Perl, you can still install it from CPAN.
66
67 =back
68
69 =head1 Modules and Pragmata
70
71 =head2 Updated Modules and Pragmata
72
73 =over 4
74
75 =item *
76
77 L<B> has been upgraded from version 1.77 to 1.78.
78
79 =item *
80
81 L<B::Deparse> has been upgraded from version 1.51 to 1.52.
82
83 =item *
84
85 L<Compress::Raw::Bzip2> has been upgraded from version 2.090 to 2.093.
86
87 =item *
88
89 L<Compress::Raw::Zlib> has been upgraded from version 2.090 to 2.093.
90
91 =item *
92
93 L<CPAN> now points to version 2.27 instead of version 2.27-TRIAL2.
94
95 =item *
96
97 L<Devel::PPPort> has been upgraded from version 3.55 to 3.56.
98
99 =item *
100
101 L<English> has been upgraded from version 1.10 to 1.11.
102
103 =item *
104
105 L<ExtUtils::MakeMaker> has been upgraded from version 7.38 to 7.42.
106
107 =item *
108
109 L<feature> has been upgraded from version 1.56 to 1.57.
110
111 =item *
112
113 L<File::stat> has been upgraded from version 1.08 to 1.09.
114
115 =item *
116
117 L<Filter::Simple> has been upgraded from version 0.95 to 0.96.
118
119 =item *
120
121 L<FindBin> is now a dual-life module.
122
123 =item *
124
125 L<IO::Compress> has been upgraded from version 2.090 to 2.093.
126
127 =item *
128
129 L<Module::CoreList> has been upgraded from version 5.20191120 to 5.20191220.
130
131 =item *
132
133 L<Net::Ping> has been upgraded from version 2.71 to 2.72.
134
135 =item *
136
137 L<Opcode> has been upgraded from version 1.44 to 1.45.
138
139 =item *
140
141 L<Storable> has been upgraded from version 3.17 to 3.18.
142
143 fix to disallow vstring magic strings over 2GB.
144
145 =item *
146
147 L<Test::Simple> has been upgraded from version 1.302169 to 1.302170.
148
149 =item *
150
151 L<Tie::Hash::NamedCapture> has been upgraded from version 0.11 to 0.13.
152
153 =item *
154
155 L<VMS::Stdio> has been upgraded from version 2.44 to 2.45.
156
157 =item *
158
159 L<warnings> has been upgraded from version 1.45 to 1.46.
160
161 =item *
162
163 L<XS::APItest> has been upgraded from version 1.04 to 1.05.
164
165 =back
166
167 =head1 Documentation
168
169 =head2 Changes to Existing Documentation
170
171 We have attempted to update the documentation to reflect the changes
172 listed in this document.  If you find any we have missed, send email
173 to L<perlbug@perl.org|mailto:perlbug@perl.org>.
174
175 Additionally, the following selected changes have been made:
176
177 =head3 L<perldebguts>
178
179 =over 4
180
181 =item Simplify a couple regnode definitions
182
183 Update BOUND and NBOUND definitions.
184
185 =item Add ANYOFHs regnode
186
187 This node is like ANYOFHb, but is used when more than one leading byte
188 is the same in all the matched code points.
189
190 ANYOFHb is used to avoid having to convert from UTF-8 to code point for
191 something that won't match.  It checks that the first byte in the UTF-8
192 encoded target is the desired one, thus ruling out most of the possible
193 code points.
194
195 =back
196
197 =head3 L<perldiag>
198
199 =over 4
200
201 =item Add documentation for experimental 'isa' operator
202
203 (S experimental::isa) This warning is emitted if you use the (C<isa>)
204 operator. This operator is currently experimental and its behaviour may
205 change in future releases of Perl.
206
207 =back
208
209 =head3 L<perlfunc>
210
211 =over 4
212
213 =item caller
214
215 Like L<C<__FILE__>|/__FILE__> and L<C<__LINE__>|/__LINE__>, the filename and
216 line number returned here may be altered by the mechanism described at
217 L<perlsyn/"Plain Old Comments (Not!)">.
218
219 =item __FILE__
220
221 It can be altered by the mechanism described at
222 L<perlsyn/"Plain Old Comments (Not!)">.
223
224 =item __LINE__
225
226 It can be altered by the mechanism described at
227 L<perlsyn/"Plain Old Comments (Not!)">.
228
229 =item return
230
231 Mention that you cannot return from do BLOCK
232
233 =back
234
235 =head3 L<perlguts>
236
237 =over 4
238
239 =item Update documentation for UTF8f
240
241 =item Add missing '=for apidoc' lines
242
243 =back
244
245 =head3 L<perlhacktips>
246
247 =over 4
248
249 =item Perl strings are NOT the same as C strings
250
251 =back
252
253 =head3 L<perlop>
254
255 =over 4
256
257 =item 'isa' operator is experimental
258
259 This is an experimental feature and is available from Perl 5.31.6 when enabled
260 by C<use feature 'isa'>. It emits a warning in the C<experimental::isa>
261 category.
262
263 =back
264
265 =head3 L<perlreref>
266
267 =over 4
268
269 =item Fix some typos.
270
271 =back
272
273 =head3 L<perlvar>
274
275 =over 4
276
277 =item Remove ${^FEATURE_BITS}.
278
279 =back
280
281 =head1 Utility Changes
282
283 =head2 L<perlbug>
284
285 =over 4
286
287 =item Adjust bug tracker homepage url to point to GitHub.
288
289 =back
290
291 =head1 Configuration and Compilation
292
293 =head2 F<Configure>
294
295 =over 4
296
297 =item Check if the compiler can handle inline attribute.
298
299 =item Check for character data alignment.
300
301 =back
302
303 =head1 Testing
304
305 Tests were added and changed to reflect the other additions and
306 changes in this release.  Furthermore, these significant changes were
307 made:
308
309 =over 4
310
311 =item t/charset_tools.pl
312
313 Avoid some work on ASCII platforms
314
315 =item t/re/regexp.t
316
317 Speed up many regex tests on ASCII platform
318
319 =item t/re/pat.t
320
321 Skip tests that don't work on EBCDIC
322
323 =back
324
325 =head1 Platform Support
326
327 =head2 Platform-Specific Notes
328
329 =over 4
330
331 =item Solaris
332
333 C<Configure> will now find recent versions of the Oracle Developer Studio
334 compiler, which are found under C</opt/developerstudio*>.
335
336 =back
337
338 =head1 Selected Bug Fixes
339
340 =over 4
341
342 =item Fix MYMALLOC (PERL_MALLOC) build on Windows
343
344 =item \p{user-defined} overrides official Unicode [L<GH #17025|https://github.com/Perl/perl5/issues/17025>]
345
346 Prior to this patch, they only sometimes overrode.
347
348 =item Regular Expressions
349
350 Properly handle filled /il regnodes and multi-char folds
351
352 =item Compilation error during make minitest [L<GH #17293|https://github.com/Perl/perl5/issues/17293>]
353
354 move the implementation of %-, %+ into core
355
356 =item read beyond buffer in grok_inf_nan [L<GH #17370|https://github.com/Perl/perl5/issues/17370>]
357
358 =item Workaround glibc bug with LC_MESSAGES [L<GH #17081|https://github.com/Perl/perl5/issues/17081>]
359
360 =back
361
362 =head1 Acknowledgements
363
364 Perl 5.31.7 represents approximately 4 weeks of development since Perl
365 5.31.6 and contains approximately 9,300 lines of changes across 450 files
366 from 22 authors.
367
368 Excluding auto-generated files, documentation and release tools, there were
369 approximately 5,200 lines of changes to 280 .pm, .t, .c and .h files.
370
371 Perl continues to flourish into its fourth decade thanks to a vibrant
372 community of users and developers. The following people are known to have
373 contributed the improvements that became Perl 5.31.7:
374
375 Ask Bjørn Hansen, brian d foy, Bryan Stenson, Chad Granum, Chris 'BinGOs'
376 Williams, Dan Book, David Mitchell, Felipe Gasper, James E Keenan, Karl
377 Williamson, Matthew Horsfall, Max Maischein, Nicolas R., Pali, Paul Evans,
378 Ricardo Signes, Sawyer X, Stefan Seifert, Steve Hay, Tomasz Konojacki, Tony
379 Cook, Vitali Peil.
380
381 The list above is almost certainly incomplete as it is automatically
382 generated from version control history. In particular, it does not include
383 the names of the (very much appreciated) contributors who reported issues to
384 the Perl bug tracker.
385
386 Many of the changes included in this version originated in the CPAN modules
387 included in Perl's core. We're grateful to the entire CPAN community for
388 helping Perl to flourish.
389
390 For a more complete list of all of Perl's historical contributors, please
391 see the F<AUTHORS> file in the Perl source distribution.
392
393 =head1 Reporting Bugs
394
395 If you find what you think is a bug, you might check the perl bug database
396 at L<https://github.com/Perl/perl5/issues>.  There may also be information at
397 L<http://www.perl.org/>, the Perl Home Page.
398
399 If you believe you have an unreported bug, please run the L<perlbug> program
400 included with your release.  Be sure to trim your bug down to a tiny but
401 sufficient test case.  Your bug report, along with the output of C<perl -V>,
402 will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
403
404 If the bug you are reporting has security implications which make it
405 inappropriate to send to a publicly archived mailing list, then see
406 L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
407 for details of how to report the issue.
408
409 =head1 Give Thanks
410
411 If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
412 you can do so by running the C<perlthanks> program:
413
414     perlthanks
415
416 This will send an email to the Perl 5 Porters list with your show of thanks.
417
418 =head1 SEE ALSO
419
420 The F<Changes> file for an explanation of how to view exhaustive details on
421 what changed.
422
423 The F<INSTALL> file for how to build Perl.
424
425 The F<README> file for general stuff.
426
427 The F<Artistic> and F<Copying> files for copyright information.
428
429 =cut