-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathperl5259delta.html
527 lines (335 loc) · 24.2 KB
/
perl5259delta.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:[email protected]" />
</head>
<body style="background-color: white">
<ul id="index">
<li><a href="#NAME">NAME</a></li>
<li><a href="#DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#Core-Enhancements">Core Enhancements</a>
<ul>
<li><a href="#New-regular-expression-modifier-xx">New regular expression modifier /xx</a></li>
</ul>
</li>
<li><a href="#Deprecations">Deprecations</a>
<ul>
<li><a href="#String-delimiters-that-arent-stand-alone-graphemes-are-now-deprecated">String delimiters that aren't stand-alone graphemes are now deprecated</a></li>
</ul>
</li>
<li><a href="#Performance-Enhancements">Performance Enhancements</a></li>
<li><a href="#Modules-and-Pragmata">Modules and Pragmata</a>
<ul>
<li><a href="#Updated-Modules-and-Pragmata">Updated Modules and Pragmata</a></li>
</ul>
</li>
<li><a href="#Documentation">Documentation</a>
<ul>
<li><a href="#New-Documentation">New Documentation</a>
<ul>
<li><a href="#perldeprecation">perldeprecation</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#Diagnostics">Diagnostics</a>
<ul>
<li><a href="#New-Diagnostics">New Diagnostics</a>
<ul>
<li><a href="#New-Warnings">New Warnings</a></li>
</ul>
</li>
<li><a href="#Changes-to-Existing-Diagnostics">Changes to Existing Diagnostics</a></li>
</ul>
</li>
<li><a href="#Utility-Changes">Utility Changes</a>
<ul>
<li><a href="#c2ph-and-pstruct">c2ph and pstruct</a></li>
<li><a href="#Porting-sync-with-cpan">Porting/sync-with-cpan</a></li>
</ul>
</li>
<li><a href="#Configuration-and-Compilation">Configuration and Compilation</a></li>
<li><a href="#Internal-Changes">Internal Changes</a></li>
<li><a href="#Selected-Bug-Fixes">Selected Bug Fixes</a></li>
<li><a href="#Acknowledgements">Acknowledgements</a></li>
<li><a href="#Reporting-Bugs">Reporting Bugs</a></li>
<li><a href="#SEE-ALSO">SEE ALSO</a></li>
</ul>
<h1 id="NAME">NAME</h1>
<p>perl5259delta - what is new for perl v5.25.9</p>
<h1 id="DESCRIPTION">DESCRIPTION</h1>
<p>This document describes differences between the 5.25.8 release and the 5.25.9 release.</p>
<p>If you are upgrading from an earlier release such as 5.25.7, first read <a href="/cperl/perl5258delta.html">perl5258delta</a>, which describes differences between 5.25.7 and 5.25.8.</p>
<h1 id="Core-Enhancements">Core Enhancements</h1>
<h2 id="New-regular-expression-modifier-xx">New regular expression modifier <code>/xx</code></h2>
<p>Specifying two <code>x</code> characters to modify a regular expression pattern does everything that a single one does, but additionally TAB and SPACE characters within a bracketed character class are generally ignored and can be added to improve readability, like <span style="white-space: nowrap;"><code>/[ ^ A-Z d-f p-x ]/xx</code></span>. Details are at <a href="/cperl/perlre.html#x-and-xx">"/x and /xx" in perlre</a>.</p>
<h1 id="Deprecations">Deprecations</h1>
<h2 id="String-delimiters-that-arent-stand-alone-graphemes-are-now-deprecated">String delimiters that aren't stand-alone graphemes are now deprecated</h2>
<p>In order for Perl to eventually allow string delimiters to be Unicode grapheme clusters (which look like a single character, but may be a sequence of several ones), we have to stop allowing a single char delimiter that isn't a grapheme by itself. These are unlikely to exist in actual code, as they would typically display as attached to the character in front of them.</p>
<h1 id="Performance-Enhancements">Performance Enhancements</h1>
<ul>
<li><p>A hash in boolean context is now sometimes faster, e.g.</p>
<pre><code> if (!%h) { ... }</code></pre>
<p>This was already special-cased, but some cases were missed, and even the ones which weren't have been improved.</p>
</li>
<li><p>Several other ops may now also be faster in boolean context.</p>
</li>
</ul>
<h1 id="Modules-and-Pragmata">Modules and Pragmata</h1>
<h2 id="Updated-Modules-and-Pragmata">Updated Modules and Pragmata</h2>
<ul>
<li><p><a href="/cperl/lib/attributes.html">attributes</a> has been upgraded from version 0.28 to 0.29.</p>
<p>The deprecation message for the <code>:unique</code> and <code>:locked</code> attributes now mention they will disappear in Perl 5.28.</p>
</li>
<li><p><a href="/cperl/lib/B/Deparse.html">B::Deparse</a> has been upgraded from version 1.39 to 1.40.</p>
</li>
<li><p><a href="/cperl/lib/B/Xref.html">B::Xref</a> has been upgraded from version 1.05 to 1.06.</p>
<p>It now uses 3-arg <code>open()</code> instead of 2-arg <code>open()</code>. [perl #130122]</p>
</li>
<li><p><a href="/cperl/lib/Compress/Raw/Bzip2.html">Compress::Raw::Bzip2</a> has been upgraded from version 2.069 to 2.070.</p>
</li>
<li><p><a href="/cperl/lib/Compress/Raw/Zlib.html">Compress::Raw::Zlib</a> has been upgraded from version 2.069 to 2.070.</p>
</li>
<li><p><a href="/cperl/lib/CPAN.html">CPAN</a> has been upgraded from version 2.14_01 to 2.16.</p>
</li>
<li><p><a href="/cperl/lib/Data/Dumper.html">Data::Dumper</a> was upgraded from version 2.166 to 2.167.</p>
<p>This fixes a stack management bug. [perl #130487].</p>
</li>
<li><p><a href="/cperl/lib/DB_File.html">DB_File</a> has been upgraded from version 1.838 to 1.840.</p>
</li>
<li><p><a href="/cperl/lib/Devel/SelfStubber.html">Devel::SelfStubber</a> has been upgraded from version 1.05 to 1.06.</p>
<p>It now uses 3-arg <code>open()</code> instead of 2-arg <code>open()</code>. [perl #130122]</p>
</li>
<li><p><a href="/cperl/lib/diagnostics.html">diagnostics</a> has been upgraded from version 1.35 to 1.36.</p>
<p>It now uses 3-arg <code>open()</code> instead of 2-arg <code>open()</code>. [perl #130122]</p>
</li>
<li><p><a href="/cperl/lib/DynaLoader.html">DynaLoader</a> has been upgraded from version 1.40 to 1.41.</p>
</li>
<li><p><a href="/cperl/lib/Errno.html">Errno</a> has been upgraded from version 1.27 to 1.28.</p>
<p>It now uses 3-arg <code>open()</code> instead of 2-arg <code>open()</code>. [perl #130122]</p>
</li>
<li><p><a href="/cperl/lib/ExtUtils/Embed.html">ExtUtils::Embed</a> has been upgraded from version 1.33 to 1.34.</p>
<p>It now uses 3-arg <code>open()</code> instead of 2-arg <code>open()</code>. [perl #130122]</p>
</li>
<li><p><a href="/cperl/lib/feature.html">feature</a> has been upgraded from version 1.45 to 1.46.</p>
<p>Fixes the Unicode Bug in the range operator.</p>
</li>
<li><p><a href="/cperl/lib/File/Glob.html">File::Glob</a> has been upgraded from version 1.27 to 1.28.</p>
<p>Issue a deprecation message for <code>File::Glob::glob()</code>.</p>
</li>
<li><p><a href="/cperl/lib/I18N/LangTags.html">I18N::LangTags</a> has been upgraded from version 0.41 to 0.42.</p>
<p>It now uses 3-arg <code>open()</code> instead of 2-arg <code>open()</code>. [perl #130122]</p>
</li>
<li><p><a href="/cperl/lib/lib.html">lib</a> has been upgraded from version 0.63 to 0.64.</p>
<p>It now uses 3-arg <code>open()</code> instead of 2-arg <code>open()</code>. [perl #130122]</p>
</li>
<li><p><a href="/cperl/lib/Module/CoreList.html">Module::CoreList</a> has been upgraded from version 5.20161220 to 5.20170120.</p>
</li>
<li><p><a>OS2::Process</a> has been upgraded from version 1.11 to 1.12.</p>
<p>It now uses 3-arg <code>open()</code> instead of 2-arg <code>open()</code>. [perl #130122]</p>
</li>
<li><p><a href="/cperl/lib/overload.html">overload</a> has been upgraded from version 1.27 to 1.28.</p>
</li>
<li><p><a>perl5db.pl</a> has been upgraded from version 1.50 to 1.51.</p>
<p>Ignore <i>/dev/tty</i> on non-Unix systems. [perl #113960]</p>
</li>
<li><p><a href="/cperl/lib/PerlIO/scalar.html">PerlIO::scalar</a> has been upgraded from version 0.25 to 0.26.</p>
</li>
<li><p><a href="/cperl/lib/Pod/Html.html">Pod::Html</a> has been upgraded from version 1.2201 to 1.2202.</p>
</li>
<li><p><a href="/cperl/lib/re.html">re</a> has been upgraded from version 0.33 to 0.34</p>
<p>This adds support for the new <a href="/cperl/perlre.html#x-and-xx"><code>/xx</code></a> regular expression pattern modifier, and a change to the <a href="/cperl/lib/re.html#strict-mode"><span style="white-space: nowrap;"><code>use re 'strict'</code></span></a> experimental feature. When <span style="white-space: nowrap;"><code>re 'strict'</code></span> is enabled, a warning now will be generated for all unescaped uses of the two characters <code>}</code> and <code>]</code> in regular expression patterns (outside bracketed character classes) that are taken literally. This brings them more in line with the <code>)</code> character which is always a metacharacter unless escaped. Being a metacharacter only sometimes, depending on action at a distance, can lead to silently having the pattern mean something quite different than was intended, which the <span style="white-space: nowrap;"><code>re 'strict'</code></span> mode is intended to minimize.</p>
</li>
<li><p><a href="/cperl/lib/Storable.html">Storable</a> has been upgraded from version 2.59 to 2.61.</p>
<p>Fixes [perl #130098].</p>
</li>
<li><p><a href="/cperl/lib/Symbol.html">Symbol</a> has been upgraded from version 1.07 to 1.08.</p>
</li>
<li><p><a href="/cperl/lib/Term/ReadLine.html">Term::ReadLine</a> has been upgraded from version 1.15 to 1.16.</p>
<p>It now uses 3-arg <code>open()</code> instead of 2-arg <code>open()</code>. [perl #130122]</p>
</li>
<li><p><a href="/cperl/lib/Test.html">Test</a> has been upgraded from version 1.29 to 1.30.</p>
<p>It now uses 3-arg <code>open()</code> instead of 2-arg <code>open()</code>. [perl #130122]</p>
</li>
<li><p><a href="/cperl/lib/threads.html">threads</a> has been upgraded from version 2.10 to 2.12.</p>
<p>Fixes [perl #130469].</p>
</li>
<li><p><a href="/cperl/lib/threads/shared.html">threads::shared</a> has been upgraded from version 1.52 to 1.54.</p>
<p>This fixes [cpan #119529], [perl #130457]</p>
</li>
<li><p><a href="/cperl/lib/Unicode/UCD.html">Unicode::UCD</a> has been upgraded from version 0.67 to 0.68.</p>
<p>It now uses 3-arg <code>open()</code> instead of 2-arg <code>open()</code>. [perl #130122]</p>
</li>
<li><p><a>VMS::DCLsym</a> has been upgraded from version 1.07 to 1.08.</p>
<p>It now uses 3-arg <code>open()</code> instead of 2-arg <code>open()</code>. [perl #130122]</p>
</li>
<li><p><a href="/cperl/lib/XSLoader.html">XSLoader</a> has been upgraded from version 0.24 to 0.26.</p>
<p>It now uses 3-arg <code>open()</code> instead of 2-arg <code>open()</code>. [perl #130122]</p>
</li>
</ul>
<h1 id="Documentation">Documentation</h1>
<h2 id="New-Documentation">New Documentation</h2>
<h3 id="perldeprecation"><a href="/cperl/perldeprecation.html">perldeprecation</a></h3>
<p>This file documents all upcoming deprecations, and some of the deprecations which already have been removed. The purpose of this documentation is two-fold: document what will disappear, and by which version, and serve as a guide for people dealing with code which has features that no longer work after an upgrade of their perl.</p>
<h1 id="Diagnostics">Diagnostics</h1>
<p>The following additions or changes have been made to diagnostic output, including warnings and fatal error messages. For the complete list of diagnostic messages, see <a href="/cperl/perldiag.html">perldiag</a>.</p>
<h2 id="New-Diagnostics">New Diagnostics</h2>
<h3 id="New-Warnings">New Warnings</h3>
<ul>
<li><p><a href="/cperl/perldiag.html#Use-of-unassigned-code-point-or-non-standalone-grapheme-for-a-delimiter-will-be-a-fatal-error-starting-in-Perl-v5.30">Use of unassigned code point or non-standalone grapheme for a delimiter will be a fatal error starting in Perl v5.30</a></p>
<p>See <a href="#Deprecations">"Deprecations"</a></p>
</li>
</ul>
<h2 id="Changes-to-Existing-Diagnostics">Changes to Existing Diagnostics</h2>
<p>As of Perl 5.25.9, all new deprecations will come with a version in which the feature will disappear. And with a few exceptions, most existing deprecations will state when they'll disappear. As such, most deprecation messages have changed.</p>
<ul>
<li><p>Attribute "locked" is deprecated, and will disappear in Perl 5.28</p>
</li>
<li><p>Attribute "unique" is deprecated, and will disappear in Perl 5.28</p>
</li>
<li><p>"\c%c" is more clearly written simply as "%s". This will be a fatal error in Perl 5.28</p>
</li>
<li><p>Constants from lexical variables potentially modified elsewhere are deprecated. This will not be allowed in Perl 5.32</p>
</li>
<li><p>Deprecated use of my() in false conditional. This will be a fatal error in Perl 5.30</p>
</li>
<li><p>dump() better written as CORE::dump(). dump() will no longer be available in Perl 5.30</p>
</li>
<li><p>${^ENCODING} is no longer supported. Its use will be fatal in Perl 5.28</p>
</li>
<li><p>File::Glob::glob() will disappear in perl 5.30. Use File::Glob::bsd_glob() instead.</p>
</li>
<li><p>%s() is deprecated on :utf8 handles. This will be a fatal error in Perl 5.30</p>
</li>
<li><p>$* is no longer supported. Its use will be fatal in Perl 5.30</p>
</li>
<li><p>$* is no longer supported. Its use will be fatal in Perl 5.30</p>
</li>
<li><p>Opening dirhandle %s also as a file. This will be a fatal error in Perl 5.28</p>
</li>
<li><p>Opening filehandle %s also as a directory. This will be a fatal error in Perl 5.28</p>
</li>
<li><p>Setting $/ to a reference to %s as a form of slurp is deprecated, treating as undef. This will be fatal in Perl 5.28</p>
</li>
<li><p>Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.30), passed through in regex; marked by <span style="white-space: nowrap;"><-- HERE</span> in m/%s/</p>
</li>
<li><p>Unknown charname '' is deprecated. Its use will be fatal in Perl 5.28</p>
</li>
<li><p>Use of bare << to mean <<"" is deprecated. Its use will be fatal in Perl 5.28</p>
</li>
<li><p>Use of code point 0x%s is deprecated; the permissible max is 0x%s. This will be fatal in Perl 5.28</p>
</li>
<li><p>Use of comma-less variable list is deprecated. Its use will be fatal in Perl 5.28</p>
</li>
<li><p>Use of inherited AUTOLOAD for non-method %s() is deprecated. This will be fatal in Perl 5.28</p>
</li>
<li><p>Use of strings with code points over 0xFF as arguments to %s operator is deprecated. This will be a fatal error in Perl 5.28</p>
</li>
</ul>
<h1 id="Utility-Changes">Utility Changes</h1>
<h2 id="c2ph-and-pstruct"><i>c2ph</i> and <i>pstruct</i></h2>
<ul>
<li><p>These old utilities have long since superceded by <a>h2xs</a>, and are now gone from the distribution.</p>
</li>
</ul>
<h2 id="Porting-sync-with-cpan"><i>Porting/sync-with-cpan</i></h2>
<ul>
<li><p>Many improvements</p>
</li>
</ul>
<h1 id="Configuration-and-Compilation">Configuration and Compilation</h1>
<ul>
<li><p>The <code>dtrace</code> build process has further changes:</p>
<ul>
<li><p>If the <code>-xnolibs</code> is available, use that so a <i>dtrace</i> perl can be built within a FreeBSD jail.</p>
</li>
<li><p>On systems that build a dtrace object file (FreeBSD, Solaris and SystemTap's dtrace emulation), copy the input objects to a separate directory and process them there, and use those objects in the link, since <code>dtrace -G</code> also modifies these objects.</p>
</li>
<li><p>Add libelf to the build on FreeBSD 10.x, since dtrace adds references to libelf symbols.</p>
</li>
<li><p>Generate a dummy dtrace_main.o if <code>dtrace -G</code> fails to build it. A default build on Solaris generates probes from the unused inline functions, while they don't on FreeBSD, which causes <code>dtrace -G</code> to fail.</p>
</li>
</ul>
<p>[perl #130108]</p>
</li>
<li><p>You can now disable perl's use of the PERL_HASH_SEED and PERL_PERTURB_KEYS environment variables by configuring perl with <code>-Accflags=NO_PERL_HASH_ENV</code>.</p>
</li>
<li><p>You can now disable perl's use of the PERL_HASH_SEED_DEBUG environment variable by configuring perl with <code>-Accflags=-DNO_PERL_HASH_SEED_DEBUG</code>.</p>
</li>
</ul>
<h1 id="Internal-Changes">Internal Changes</h1>
<ul>
<li><p>New versions of macros like <code>isALPHA_utf8</code> and <code>toLOWER_utf8</code> have been added, each with the suffix <code>_safe</code>, like <code>isSPACE_utf8_safe</code>. These take an extra parameter, giving an upper limit of how far into the string it is safe to read. Using the old versions could cause attempts to read beyond the end of the input buffer if the UTF-8 is not well-formed, and their use now raises a deprecation warning. Details are at <a href="/cperl/perlapi.html#Character-classification">"Character classification" in perlapi</a>.</p>
</li>
<li><p>Calling macros like <code>isALPHA_utf8</code> on malformed UTF-8 have issued a deprecation warning since Perl v5.18. They now die. Similarly, macros like <code>toLOWER_utf8</code> on malformed UTF-8 now die.</p>
</li>
<li><p>Calling the functions <code>utf8n_to_uvchr</code> and its derivatives, while passing a string length of 0 is now asserted against in DEBUGGING builds, and otherwise returns the Unicode REPLACEMENT CHARACTER. If you have nothing to decode, you shouldn't call the decode function.</p>
</li>
<li><p>The functions <code>utf8n_to_uvchr</code> and its derivatives now return the Unicode REPLACEMENT CHARACTER if called with UTF-8 that has the overlong malformation, and that malformation is allowed by the input parameters. This malformation is where the UTF-8 looks valid syntactically, but there is a shorter sequence that yields the same code point. This has been forbidden since Unicode version 3.1.</p>
</li>
<li><p>The functions <code>utf8n_to_uvchr</code> and its derivatives now accept an input flag to allow the overflow malformation. This malformation is when the UTF-8 may be syntactically valid, but the code point it represents is not capable of being represented in the word length on the platform. What "allowed" means in this case is that the function doesn't return an error, and advances the parse pointer to beyond the UTF-8 in question, but it returns the Unicode REPLACEMENT CHARACTER as the value of the code point (since the real value is not representable).</p>
</li>
</ul>
<h1 id="Selected-Bug-Fixes">Selected Bug Fixes</h1>
<ul>
<li><p>Under <code>use utf8</code>, the entire Perl program is now checked that the UTF-8 is wellformed. This resolves [perl #126310].</p>
</li>
<li><p>The range operator <code>..</code> on strings now handles its arguments correctly when in the scope of the <a href="/cperl/lib/feature.html#The-unicode_strings-feature"><code>unicode_strings</code></a> feature. The previous behaviour was sufficiently unexpected that we believe no correct program could have made use of it.</p>
</li>
<li><p>The <span style="white-space: nowrap;">split</span> operator did not ensure enough space was allocated for its return value in scalar context. It could then write a single pointer immediately beyond the end of the memory block allocated for the stack. [perl #130262]</p>
</li>
<li><p>Using a large code point with the <code>W</code> pack template character with the current output position aligned at just the right point could cause a write a single zero byte immediately beyond the end of an allocated buffer. [perl #129149]</p>
</li>
<li><p>Supplying the form picture argument as part of the form argument list where the picture specifies modifying the argument could cause an access to the new freed compiled form. [perl #129125]</p>
</li>
<li><p>Fix a problem with sort's build-in compare, where it would not sort correctly with 64-bit integers, and non-long doubles. [perl #130335]</p>
</li>
<li><p>Fix issues with /(?{ ... <<EOF })/ that broke Method-Signatures. [perl #130398]</p>
</li>
<li><p>Fix a macro which caused syntax error on an EBCDIC build.</p>
</li>
<li><p>Prevent tests from getting hung up on 'NonStop' option. [perl #130445]</p>
</li>
<li><p>Fixed an assertion failure with <code>chop</code> and <code>chomp</code>, which could be triggered by <code>chop(@x =~ tr/1/1/)</code>. [perl #130198].</p>
</li>
<li><p>Fixed a comment skipping error under <code>/x</code>; it could stop skipping a byte early, which could be in the middle of a UTF-8 character. [perl #130495].</p>
</li>
<li><p><i>perldb</i> now ignores <i>/dev/tty</i> on non-Unix systems. [perl #113960];</p>
</li>
<li><p>Fix assertion failure for <code>{}->$x</code> when <code>$x</code> isn't defined. [perl #130496].</p>
</li>
<li><p>DragonFly BSD now has support for setproctitle(). [perl #130068].</p>
</li>
<li><p>Fix an assertion error which could be triggered when lookahead string in patterns exceeded a minimum length. [perl #130522].</p>
</li>
<li><p>Only warn once per literal about a misplaced <code>_</code>. [perl #70878].</p>
</li>
<li><p>Ensure range-start is set after error in <code>tr///</code>. [perl #129342].</p>
</li>
<li><p>Don't read past start of string for unmatched backref; otherwise, we may have heap buffer overflow. [perl #129377].</p>
</li>
<li><p>Properly recognize mathematical digit ranges starting at U+1D7E. <code>use re 'strict'</code> is supposed to warn if you use a range whose start and end digit aren't from the same group of 10. It didn't do that for five groups of mathematical digits starting at U+1D7E.</p>
</li>
</ul>
<h1 id="Acknowledgements">Acknowledgements</h1>
<p>Perl 5.25.9 represents approximately 4 weeks of development since Perl 5.25.8 and contains approximately 24,000 lines of changes across 400 files from 23 authors.</p>
<p>Excluding auto-generated files, documentation and release tools, there were approximately 17,000 lines of changes to 220 .pm, .t, .c and .h files.</p>
<p>Perl continues to flourish into its third decade thanks to a vibrant community of users and developers. The following people are known to have contributed the improvements that became Perl 5.25.9:</p>
<p>Aaron Crane, Abigail, Andreas König, Andy Lester, Aristotle Pagaltzis Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, Dan Collins, David Mitchell, Father Chrysostomos, Hugo van der Sanden, James E Keenan, Jerry D. Hedden, John Lightsey, Karl Williamson, Paul Marquess, Peter Avalos, Sawyer X, Steve Hay, Tomasz Konojacki, Tony Cook, Zefram.</p>
<p>The list above is almost certainly incomplete as it is automatically generated from version control history. In particular, it does not include the names of the (very much appreciated) contributors who reported issues to the Perl bug tracker.</p>
<p>Many of the changes included in this version originated in the CPAN modules included in Perl's core. We're grateful to the entire CPAN community for helping Perl to flourish.</p>
<p>For a more complete list of all of Perl's historical contributors, please see the <i>AUTHORS</i> file in the Perl source distribution.</p>
<h1 id="Reporting-Bugs">Reporting Bugs</h1>
<p>If you find what you think is a bug, you might check the perl bug database at <a href="https://rt.perl.org/">https://rt.perl.org/</a> . There may also be information at <a href="http://www.perl.org/">http://www.perl.org/</a> , the Perl Home Page.</p>
<p>If you believe you have an unreported bug, please run the <a>perlbug</a> program included with your release. Be sure to trim your bug down to a tiny but sufficient test case. Your bug report, along with the output of <code>perl -V</code>, will be sent off to [email protected] to be analysed by the Perl porting team.</p>
<p>If the bug you are reporting has security implications which make it inappropriate to send to a publicly archived mailing list, then see <a href="/cperl/perlsec.html#SECURITY-VULNERABILITY-CONTACT-INFORMATION">"SECURITY VULNERABILITY CONTACT INFORMATION" in perlsec</a> for details of how to report the issue.</p>
<h1 id="SEE-ALSO">SEE ALSO</h1>
<p>The <i>Changes</i> file for an explanation of how to view exhaustive details on what changed.</p>
<p>The <i>INSTALL</i> file for how to build Perl.</p>
<p>The <i>README</i> file for general stuff.</p>
<p>The <i>Artistic</i> and <i>Copying</i> files for copyright information.</p>
</body>
</html>