This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
mktables: Don't add exact duplicate to tables
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
249950d7 3=for comment
c0f37554 4This has been completed up to 0aae26c14, except for:
10c62b23 5803e389 rurban CYG17 utf8 paths
ff4ff6f3 6d9298c1 rurban mymalloc isn't thread safe
249950d7 7
44691e6f
AB
8=head1 NAME
9
c1e74734
CBW
10[ this is a template for a new perldelta file. Any text flagged as
11XXX needs to be processed before release. ]
ad32999b 12
c1e74734 13perldelta - what is new for perl v5.15.8
88c5c971 14
c1e74734 15=head1 DESCRIPTION
8f12b018 16
c1e74734
CBW
17This document describes differences between the 5.15.7 release and
18the 5.15.8 release.
8f12b018 19
c1e74734
CBW
20If you are upgrading from an earlier release such as 5.15.6, first read
21L<perl5157delta>, which describes differences between 5.15.6 and
225.15.7.
26afcec5 23
c1e74734 24=head1 Notice
8f12b018 25
c1e74734 26XXX Any important notices here
d7fbd56d 27
c1e74734 28=head1 Core Enhancements
d7fbd56d 29
c1e74734
CBW
30XXX New core language features go here. Summarise user-visible core language
31enhancements. Particularly prominent performance optimisations could go
32here, but most should go in the L</Performance Enhancements> section.
d7fbd56d 33
c1e74734 34[ List each enhancement as a =head2 entry ]
711a3903 35
66cbab2c
KW
36=head2 Improved ability to mix locales and Unicode, including UTF-8 locales
37
38An optional parameter has been added to C<use locale>
39
40 use locale ':not_characters';
41
42which tells Perl to use all but the C<LC_CTYPE> and C<LC_COLLATE>
43portions of the current locale. Instead, the character set is assumed
44to be Unicode. This allows locales and Unicode to be seamlessly mixed,
45including the increasingly frequent UTF-8 locales. When using this
46hybrid form of locales, the C<:locale> layer to the L<open> pragma can
47be used to interface with the file system, and there are CPAN modules
48available for ARGV and environment variable conversions.
49
50Full details are in L<perllocale>.
51
628253b8
BF
52=head2 New function C<fc> and corresponding escape sequence C<\F> for Unicode foldcase
53
54Unicode foldcase is an extension to lowercase that gives better results
55when comparing two strings case-insensitively. It has long been used
56internally in regular expression C</i> matching. Now it is available
57explicitly through the new C<fc> function call (enabled by
58S<C<"use feature 'fc'">>, or C<use v5.16>, or explicitly callable via
249950d7 59C<CORE::fc>) or through the new C<\F> sequence in double-quotish
628253b8
BF
60strings.
61
62Full details are in L<perlfunc/fc>.
63
10c62b23
FC
64=head2 C<_> in subroutine prototypes
65
66The C<_> character in subroutine prototypes is now allowed before C<@> or
67C<%>.
68
74968535 69=head2 Supports (I<almost>) Unicode 6.1
7620cb10
KW
70
71Besides the addition of whole new scripts, and new characters in
72existing scripts, this new version of Unicode, as always, makes some
73changes to existing characters. One change that may trip up some
74applications is that the General Category of two characters in the
75Latin-1 range, PILCROW SIGN and SECTION SIGN, has been changed from
76Other_Symbol to Other_Punctuation. The same change has been made for
77a character in each of Tibetan, Ethiopic, and Aegean.
78The code points U+3248..U+324F (CIRCLED NUMBER TEN ON BLACK SQUARE
79through CIRCLED NUMBER EIGHTY ON BLACK SQUARE) have had their General
80Category changed from Other_Symbol to Other_Numeric. The Line Break
81property has changes for Hebrew and Japanese; and as a consequence of
82other changes in 6.1, the Perl regular expression construct C<\X> now
83works differently for some characters in Thai and Lao.
84
85New aliases (synonyms) have been defined for many property values;
86these, along with the previously existing ones, are all cross indexed in
87L<perluniprops>.
88
89The return value of C<charnames::viacode> is affected by other changes.
90One of these is that the preferred name (which is what C<viacode>
91returns) for the character at U+2118 has been changed from SCRIPT CAPITAL P
92to WEIERSTRASS ELLIPTIC FUNCTION. But most of these changes are the
93fallout of the mistake Unicode 6.0 made in naming a character used in
94Japanese cell phones to be "BELL", which conflicts with the long
95standing industry use of (and Unicode's recommendation to use) that name
96to mean the ASCII control character at U+0007. As a result, that name
97has been deprecated in Perl since v5.14; and any use of it will raise a
98warning message (unless turned off). The name "ALERT" is now the
99preferred name for this code point, with "BEL" being an acceptable short
100form. The name for the new cell phone character, at code point U+1F514,
101remains undefined in this version of Perl (hence we don't quite
102implement all of Unicode 6.1), but starting in v5.18, BELL will mean
103this character, and not U+0007.
104
105Unicode has taken steps to make sure that this sort of mistake does not
106happen again. The Standard now includes all the generally accepted
107names and abbreviations for control characters, whereas previously it
108didn't. This means that all the names that Perl had previously
109deprecated (except BELL) are no longer deprecated, such as FILE
110SEPARATOR. Also, the names for four rarely used characters are subtly
111different (a hyphen instead of a space) than before:
112
113 Code point Old Name New Name
114 U+008E SINGLE-SHIFT 2 SINGLE-SHIFT-2
115 U+008F SINGLE-SHIFT 3 SINGLE-SHIFT-3
116 U+0091 PRIVATE USE 1 PRIVATE USE-1
117 U+0092 PRIVATE USE 2 PRIVATE USE-2
118
119Perl will accept either name as input, but C<charnames::viacode> now
120returns the new name.
121
122Additional name abbreviations are accepted:
123SP for SPACE;
124TAB for CHARACTER TABULATION;
125NEW LINE, END OF LINE, NL, and EOL for LINE FEED;
126LOCKING-SHIFT ONE for SHIFT OUT;
127LOCKING-SHIFT ZERO for SHIFT IN;
128and ZWNBSP for ZERO WIDTH NO-BREAK SPACE.
129
130More details on this version of Unicode are provided in
131L<http://www.unicode.org/versions/Unicode6.1.0/>.
132
27f00e3d
KW
133=head2 Added C<is_utf8_char_buf()>
134
135This function is designed to replace the deprecated L</is_utf8_char()>
136function. It includes an extra parameter to make sure it doesn't read
137past the end of the input buffer.
138
c1e74734 139=head1 Security
711a3903 140
c1e74734
CBW
141XXX Any security-related notices go here. In particular, any security
142vulnerabilities closed should be noted here rather than in the
143L</Selected Bug Fixes> section.
711a3903 144
c1e74734 145[ List each security issue as a =head2 entry ]
6ba817f3 146
27f00e3d
KW
147=head2 Use C<is_utf8_char_buf()> and not C<is_utf8_char()>
148
149The latter function is now deprecated because its API is insufficient to
150guarantee that it doesn't read (up to 12 bytes in the worst case) beyond
151the end of its input string. See
152L<is_utf8_char_buf()|/Added is_utf8_char_buf()>.
153
c1e74734 154=head1 Incompatible Changes
6ba817f3 155
c1e74734 156XXX For a release on a stable branch, this section aspires to be:
6b339779 157
c1e74734
CBW
158 There are no changes intentionally incompatible with 5.XXX.XXX
159 If any exist, they are bugs, and we request that you submit a
160 report. See L</Reporting Bugs> below.
6b339779 161
c1e74734 162[ List each incompatible change as a =head2 entry ]
b240fc0f 163
249950d7
FC
164=head2 Special blocks called in void context
165
166Special blocks (C<BEGIN>, C<CHECK>, C<INIT>, C<UNITCHECK>, C<END>) are now
167called in void context. This avoids wasteful copying of the result of the
168last statement [perl #108794].
169
eff8c8ec
FC
170=head2 The C<overloading> pragma and regexp objects
171
172With C<no overloading>, regular expression objects returned by C<qr//> are
173now stringified as "Regexp=REGEXP(0xbe600d)" instead of the regular
174expression itself [perl #108780].
175
84ecb73f
S
176=head2 Two XS typemap Entries removed
177
178Two presumably unused XS typemap entries have been removed from the
179core typemap: T_DATAUNIT and T_CALLBACK. If you are, against all odds,
180a user of these, please see the instructions on how to regain them
181in L<perlxstypemap>.
182
7620cb10
KW
183=head2 Unicode 6.1 has incompatibilities with Unicode 6.0
184
185These are detailed in L</Supports (almost) Unicode 6.1> above.
186
290a3bf6
KW
187=head2 Changed returns for some properties in C<Unicode::UCD::prop_invmap()>
188
189The return values for C<prop_invmap> have been changed for some
190properties to make the returned lists significantly smaller. This
191allows those lists to be searched faster.
192
193This function was introduced earlier in the v5.15 series of releases,
194and the API will not be considered stable until v5.16.
195
196See L<Unicode::UCD/prop_invmap()> for details on the new interface.
197
c1e74734 198=head1 Deprecations
b240fc0f 199
c1e74734
CBW
200XXX Any deprecated features, syntax, modules etc. should be listed here.
201In particular, deprecated modules should be listed here even if they are
202listed as an updated module in the L</Modules and Pragmata> section.
4e6ab4ad 203
c1e74734 204[ List each deprecation as a =head2 entry ]
4e6ab4ad 205
27f00e3d
KW
206=head2 C<is_utf8_char()>
207
208This function is deprecated because it could read beyond the end of the
209input string. Use the new L<is_utf8_char_buf()|/Added is_utf8_char_buf()>
210instead.
211
c1e74734 212=head1 Performance Enhancements
79e10968 213
c1e74734
CBW
214XXX Changes which enhance performance without changing behaviour go here. There
215may well be none in a stable release.
79e10968 216
c1e74734 217[ List each enhancement as a =item entry ]
ea88c40c 218
c1e74734 219=over 4
9d055b1a
CBW
220
221=item *
222
c1e74734 223XXX
cadced9f 224
c1e74734 225=back
cadced9f 226
c1e74734 227=head1 Modules and Pragmata
cadced9f 228
c1e74734
CBW
229XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
230go here. If Module::CoreList is updated, generate an initial draft of the
231following sections using F<Porting/corelist-perldelta.pl>, which prints stub
232entries to STDOUT. Results can be pasted in place of the '=head2' entries
233below. A paragraph summary for important changes should then be added by hand.
234In an ideal world, dual-life modules would have a F<Changes> file that could be
235cribbed.
cadced9f 236
c1e74734 237[ Within each section, list entries as a =item entry ]
07feb684 238
c1e74734 239=head2 New Modules and Pragmata
cadced9f 240
c1e74734 241=over 4
632c5d30
NC
242
243=item *
244
2f987927
FC
245The C<mmap> PerlIO layer is no longer implemented by perl itself, but has
246been moved out into the new L<PerlIO::mmap> module.
4e6e9b23 247
c1e74734 248=back
4e6e9b23 249
c1e74734 250=head2 Updated Modules and Pragmata
4e6e9b23 251
c1e74734 252=over 4
1887da8c
RS
253
254=item *
255
eeac62ad
FC
256L<arybase> has been upgraded from version 0.03 to version 0.04.
257
258List slices no longer modify items on the stack belonging to outer lists
259[perl #109570].
260
261=item *
262
197aacaf
FC
263L<B> has been upgraded from version 1.33 to version 1.34.
264
265C<B::COP> now has a C<stashflags> method, corresponding to a new internal
266field added in 5.15.4 [perl #108860].
267
268=item *
269
c0f37554
FC
270L<Carp> has been upgraded from version 1.24 to version 1.25.
271
272It now puts a dot after the file and line number, just like errors from
273C<die> [perl #106538].
274
275=item *
276
df697508 277L<Compress::Raw::Bzip2> has been upgraded from version 2.045 to version 2.048.
76f546a2
CBW
278
279=item *
280
ecea5ab2 281L<Compress::Raw::Zlib> has been upgraded from version 2.045 to version 2.048.
589c1691
CBW
282
283=item *
284
8dcc3739 285L<Compress::Zlib> has been upgraded from version 2.046 to version 2.048.
422d6414
CBW
286
287=item *
288
2d1dec40
CBW
289L<CPAN::Meta> has been upgraded from version 2.113640 to version 2.120351.
290
291Work around a memory leak bug involving version objects in boolean context.
292
293=item *
294
ce09a8a1 295L<CPAN::Meta::YAML> has been upgraded from version 0.005 to version 0.007.
b3100a1d
CBW
296
297=item *
298
b34385a6 299L<DB_File> has been upgraded from version 1.824 to version 1.826.
acb29889
CBW
300
301=item *
302
ce2c4022
NC
303L<diagnostics> has been upgraded from version 1.27 to version 1.28.
304
305When searching for F<perldiag.pod>, it no longer uses paths that were only
306relevant on Perl 5.004 and earlier.
307
308=item *
309
84ecb73f
S
310L<ExtUtils::ParseXS> has been upgraded from version 3.12 to version 3.15.
311
312The new version comes with important tools for sharing typemaps between
313different CPAN distributions.
314
315=item *
316
a3cc0403
FC
317L<File::Copy> has been upgraded from version 2.21 to version 2.23.
318
319It no longer emits warnings when copying files with newlines in their names
320[perl #109104].
321
322=item *
323
eb96f3fa
CBW
324L<IPC::Cmd> has been upgraded from version 0.72 to version 0.76.
325
326=item *
327
04ae1553
Z
328L<Math::Complex> has been upgraded from version 1.58 to version 1.59.
329
330This avoids a new core warning.
331
332=item *
333
4402c0f3 334L<Module::Metadata> has been upgraded from version 1.000007 to version 1.000009.
75ff5956
CBW
335
336Adds C<provides> method to generate a CPAN META provides data structure
337correctly; use of C<package_versions_from_directory> is discouraged.
338
339=item *
340
a4a5e2bf
CBW
341L<Parse::CPAN::Meta> has been upgraded from version 1.4401 to version 1.4402.
342
343=item *
344
1051d5b5 345L<Pod::Parser> has been upgraded from version 1.37 to version 1.51.
88c5c971 346
2a7afa74
NC
347=item *
348
ecd144ea
FC
349L<Term::ReadLine> has been upgraded from version 1.07 to version 1.08.
350
351Its C<tkRunning> method now supports L<AnyEvent> event loops, and not just
352L<Tk>. A more general mechanism has been proposed, so this may be reverted
353before Perl 5.16 [perl #108470].
354
355=item *
356
858dcda5
Z
357L<Time::HiRes> has been upgraded from version 1.9724 to version 1.9725.
358
694644e0 359C<Time::HiRes::stat()> no longer corrupts the Perl stack.
858dcda5
Z
360
361=item *
362
2a7afa74
NC
363L<Unicode::UCD> has been upgraded from version 0.39 to 0.40.
364
365The only change is to fix a formatting error in the Pod.
366
e9e4ee62
CBW
367=item *
368
369L<Version::Requirements> has been upgraded from version 0.101021 to version 0.101022.
370
0e582130
AB
371=item *
372
373L<POSIX> has been upgraded from version 1.28 to version 1.29..
374
375It now has a wrapper for the C<strptime(3)> function, it's not
376exported on C<use POSIX;> due to backwards compatibility concerns, it
377has to be explicitly requested with C<use POSIX qw(strptime)>.
378
c1e74734 379=back
c0504019 380
c1e74734 381=head2 Removed Modules and Pragmata
937a45d0 382
c1e74734 383=over 4
937a45d0 384
ef337e16
CBW
385=item *
386
c1e74734 387XXX
ef337e16 388
7f28d7ed 389=back
679b54e7 390
52deee2e 391=head1 Documentation
3c7c5233 392
c1e74734
CBW
393XXX Changes to files in F<pod/> go here. Consider grouping entries by
394file and be sure to link to the appropriate page, e.g. L<perlfunc>.
a71d67b1 395
c1e74734 396=head2 New Documentation
cadced9f 397
c1e74734 398XXX Changes which create B<new> files in F<pod/> go here.
cadced9f 399
84ecb73f
S
400=head3 L<perlxstypemap>
401
402The new manual describes the XS typemapping mechanism in unprecedented
403detail and combines new documentation with information extracted from
404L<perlxs> and the previously unofficial list of all core typemaps.
405
c1e74734 406=head3 L<XXX>
cadced9f 407
c1e74734 408XXX Description of the purpose of the new file here
cadced9f 409
c1e74734 410=head2 Changes to Existing Documentation
cadced9f 411
c1e74734
CBW
412XXX Changes which significantly change existing files in F<pod/> go here.
413However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
414section.
cadced9f 415
c1e74734 416=head3 L<XXX>
7e7629fa 417
52deee2e 418=over 4
7e7629fa
FC
419
420=item *
421
c1e74734 422XXX Description of the change here
c2654555 423
52deee2e 424=back
85ca3be7 425
52deee2e 426=head1 Diagnostics
85ca3be7 427
52deee2e
DR
428The following additions or changes have been made to diagnostic output,
429including warnings and fatal error messages. For the complete list of
430diagnostic messages, see L<perldiag>.
7788a270 431
c1e74734
CBW
432XXX New or changed warnings emitted by the core's C<C> code go here. Also
433include any changes in L<perldiag> that reconcile it to the C<C> code.
6138a722 434
c1e74734
CBW
435[ Within each section, list entries as a =item entry that links to perldiag,
436 e.g.
a47fb3fe 437
c1e74734 438 =item *
4888c563 439
c1e74734
CBW
440 L<Invalid version object|perldiag/"Invalid version object">
441]
a3f52e2e 442
c1e74734 443=head2 New Diagnostics
52272450 444
c1e74734 445XXX Newly added diagnostic messages go here
52272450 446
c1e74734 447=head3 New Errors
a47fb3fe 448
0aaeb177 449=over 4
7ef25837 450
6d110ad0
FC
451=item *
452
c1e74734 453XXX L<message|perldiag/"message">
604a99bd 454
c1e74734 455=back
ea88c40c 456
c1e74734 457=head3 New Warnings
ea88c40c 458
c1e74734 459=over 4
ea88c40c
FC
460
461=item *
462
c1e74734 463XXX L<message|perldiag/"message">
ea88c40c 464
6d110ad0
FC
465=back
466
c1e74734
CBW
467=head2 Changes to Existing Diagnostics
468
469XXX Changes (i.e. rewording) of diagnostic messages go here
cadced9f
FC
470
471=over 4
472
473=item *
474
c1e74734 475XXX Describe change here
cadced9f
FC
476
477=back
478
0aaeb177 479=head1 Utility Changes
9cfd094e 480
c1e74734
CBW
481XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
482here. Most of these are built within the directories F<utils> and F<x2p>.
d7fbd56d 483
c1e74734
CBW
484[ List utility changes as a =head3 entry for each utility and =item
485entries for each change
486Use L<XXX> with program names to get proper documentation linking. ]
d7fbd56d 487
c1e74734 488=head3 L<XXX>
d7fbd56d 489
c1e74734 490=over 4
ba91b4f3 491
b18aa002
FC
492=item *
493
c1e74734 494XXX
b18aa002 495
52deee2e 496=back
ba91b4f3 497
52deee2e 498=head1 Configuration and Compilation
f4912a50 499
c1e74734
CBW
500XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
501go here. Any other changes to the Perl build process should be listed here.
502However, any platform-specific changes should be listed in the
503L</Platform Support> section, instead.
a3f52e2e 504
c1e74734 505[ List changes as a =item entry ].
a3f52e2e 506
0aaeb177 507=over 4
ad32999b 508
f4912a50 509=item *
ad32999b 510
c1e74734 511XXX
c15f899f 512
7f28d7ed 513=back
ad32999b 514
c1e74734 515=head1 Testing
39de7394 516
c1e74734
CBW
517XXX Any significant changes to the testing of a freshly built perl should be
518listed here. Changes which create B<new> files in F<t/> go here as do any
519large changes to the testing harness (e.g. when parallel testing was added).
520Changes to existing files in F<t/> aren't worth summarising, although the bugs
521that they represent may be covered elsewhere.
39de7394 522
c1e74734 523[ List each test improvement as a =item entry ]
39de7394 524
c1e74734 525=over 4
5dd80d85 526
52272450
FC
527=item *
528
c1e74734 529XXX
52272450 530
84ecb73f
S
531=item *
532
533The test suite for typemaps has been extended to cover a larger fraction of
534the core typemaps.
535
52deee2e 536=back
5dd80d85 537
c1e74734 538=head1 Platform Support
52272450 539
c1e74734 540XXX Any changes to platform support should be listed in the sections below.
52272450 541
c1e74734
CBW
542[ Within the sections, list each platform as a =item entry with specific
543changes as paragraphs below it. ]
ad266194 544
c1e74734 545=head2 New Platforms
ad266194 546
c1e74734
CBW
547XXX List any platforms that this version of perl compiles on, that previous
548versions did not. These will either be enabled by new files in the F<hints/>
549directories, or new subdirectories and F<README> files at the top level of the
550source tree.
ad266194 551
c1e74734 552=over 4
838cf719 553
c1e74734 554=item XXX-some-platform
838cf719 555
c1e74734 556XXX
b00f6edb 557
c1e74734 558=back
b00f6edb 559
c1e74734 560=head2 Discontinued Platforms
7a3fd9ed 561
c1e74734 562XXX List any platforms that this version of perl no longer compiles on.
7a3fd9ed 563
c1e74734 564=over 4
1a50d74b 565
c1e74734 566=item XXX-some-platform
1a50d74b 567
c1e74734 568XXX
ea88c40c 569
c1e74734 570=back
ea88c40c 571
c1e74734 572=head2 Platform-Specific Notes
ea88c40c 573
c1e74734
CBW
574XXX List any changes for specific platforms. This could include configuration
575and compilation changes or changes in portability/compatibility. However,
576changes within modules for platforms should generally be listed in the
577L</Modules and Pragmata> section.
ea88c40c 578
c1e74734 579=over 4
ea88c40c 580
c1e74734 581=item XXX-some-platform
ea88c40c 582
c1e74734 583XXX
ea88c40c 584
c1e74734 585=back
ea88c40c 586
c1e74734 587=head1 Internal Changes
ea88c40c 588
c1e74734
CBW
589XXX Changes which affect the interface available to C<XS> code go here.
590Other significant internal changes for future core maintainers should
591be noted as well.
ea88c40c 592
c1e74734 593[ List each change as a =item entry ]
ea88c40c 594
c1e74734 595=over 4
ea88c40c
FC
596
597=item *
598
c1e74734 599XXX
ea88c40c 600
c1e74734 601=back
ea88c40c 602
c1e74734 603=head1 Selected Bug Fixes
ea88c40c 604
c1e74734
CBW
605XXX Important bug fixes in the core language are summarised here.
606Bug fixes in files in F<ext/> and F<lib/> are best summarised in
607L</Modules and Pragmata>.
ea88c40c 608
c1e74734 609[ List each fix as a =item entry ]
ea88c40c 610
c1e74734 611=over 4
ea88c40c
FC
612
613=item *
614
6025c6dd
RS
615C<~~> now correctly handles the precedence of Any~~Object, and is not tricked
616by an overloaded object on the left-hand side.
ea88c40c 617
249950d7
FC
618=item *
619
620C<stat _> no longer warns about unopened filehandles [perl #71002].
621
622=item *
623
624C<stat> on an unopened filehandle now warns consistently, instead of
625skipping the warning at times.
626
627=item *
628
629A change in an earlier 5.15 release caused warning hints to propagate into
630C<do $file>. This has been fixed [rt.cpan.org #72767].
631
632=item *
633
634Starting with 5.12.0, Perl used to get its internal bookkeeping muddled up
635after assigning C<${ qr// }> to a hash element and locking it with
636L<Hash::Util>. This could result in double frees, crashes or erratic
637behaviour.
638
92c88ef1
FC
639=item *
640
641In 5.15.7, some typeglobs in the CORE namespace were made read-only by
642mistake. This has been fixed [rt.cpan.org #74289].
643
b1ea7742
FC
644=item *
645
646C<-t> now works when stacked with other filetest operators [perl #77388].
647
a1d95121
FC
648=item *
649
650Stacked filetest operators now only call FETCH once on a tied argument.
651
ff4ff6f3
FC
652=item *
653
654C</.*/g> would sometimes refuse to match at the end of a string that ends
655with "\n". This has been fixed [perl #109206].
656
a7bff800
FC
657=item *
658
ea317ccb
KW
659C<m/[[:ascii:]]/i> and C</\p{ASCII}/i> now match identically (when not
660under a differing locale). This fixes a regression introduced in 5.14
661in which the first expression could match characters outside of ASCII,
662such as the KELVIN SIGN.
663
664=item *
665
a7bff800
FC
666Method calls whose arguments were all surrounded with C<my()> or C<our()>
667(as in C<<$object->method(my($a,$b)) >>) used to force lvalue context on
668the subroutine. This would prevent lvalue methods from returning certain
669values. Due to lvalue fixes earlier in the 5.15.x series, it would also
670prevent non-lvalue methods from being called [perl #109264].
671
672=for comment
673This bug I<did> affect earlier stable releases. It is just the last
674sentence that does not apply to 5.14.
675
0aae26c1
FC
676=item *
677
678The C<SvPVutf8> C function no longer tries to modify its argument,
679resulting in errors [perl #108994].
680
681=item *
682
683C<SvPVutf8> now works properly with magical variables.
684
685=item *
686
687C<SvPVbyte> now works properly non-PVs.
688
07315176
KW
689=item *
690
67addccf
KW
691C</[[:ascii:]]/> and C</[[:blank:]]/> now use locale rules under
692C<use locale> when the platform supports that. Previously, they used
07315176
KW
693the platform's native character set.
694
ea88c40c
FC
695=back
696
c1e74734 697=head1 Known Problems
ea88c40c 698
c1e74734
CBW
699XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
700tests that had to be C<TODO>ed for the release would be noted here, unless
701they were specific to a particular platform (see below).
ea88c40c 702
c1e74734
CBW
703This is a list of some significant unfixed bugs, which are regressions
704from either 5.XXX.XXX or 5.XXX.XXX.
ea88c40c 705
c1e74734 706[ List each fix as a =item entry ]
ea88c40c 707
c1e74734 708=over 4
18af289e 709
c1e74734 710=item *
18af289e 711
c1e74734 712XXX
1ac442bc 713
c1e74734 714=back
c0154fe2 715
c1e74734 716=head1 Obituary
1ac442bc 717
c1e74734
CBW
718XXX If any significant core contributor has died, we've added a short obituary
719here.
84b2a83e 720
52deee2e 721=head1 Acknowledgements
8fe05716 722
c1e74734
CBW
723XXX Generate this with:
724
725 perl Porting/acknowledgements.pl v5.15.7..HEAD
29cf780c 726
44691e6f
AB
727=head1 Reporting Bugs
728
729If you find what you think is a bug, you might check the articles
52deee2e
DR
730recently posted to the comp.lang.perl.misc newsgroup and the perl
731bug database at http://rt.perl.org/perlbug/ . There may also be
44691e6f
AB
732information at http://www.perl.org/ , the Perl Home Page.
733
734If you believe you have an unreported bug, please run the L<perlbug>
52deee2e
DR
735program included with your release. Be sure to trim your bug down
736to a tiny but sufficient test case. Your bug report, along with the
737output of C<perl -V>, will be sent off to perlbug@perl.org to be
738analysed by the Perl porting team.
44691e6f
AB
739
740If the bug you are reporting has security implications, which make it
52deee2e
DR
741inappropriate to send to a publicly archived mailing list, then please send
742it to perl5-security-report@perl.org. This points to a closed subscription
743unarchived mailing list, which includes
744all the core committers, who will be able
745to help assess the impact of issues, figure out a resolution, and help
746co-ordinate the release of patches to mitigate or fix the problem across all
747platforms on which Perl is supported. Please only use this address for
748security issues in the Perl core, not for modules independently
749distributed on CPAN.
44691e6f
AB
750
751=head1 SEE ALSO
752
52deee2e
DR
753The F<Changes> file for an explanation of how to view exhaustive details
754on what changed.
44691e6f
AB
755
756The F<INSTALL> file for how to build Perl.
757
758The F<README> file for general stuff.
759
760The F<Artistic> and F<Copying> files for copyright information.
761
762=cut