3 [ this is a template for a new perldelta file. Any text flagged as
4 XXX needs to be processed before release. ]
6 perldelta - what is new for perl v5.11.3
10 This document describes differences between the 5.11.3 release and
13 If you are upgrading from an earlier release such as 5.11.3, first read
14 the L<perl5XXXdelta>, which describes differences between 5.11.3 and
19 XXX Any important notices here
21 =head1 Incompatible Changes
23 XXX For a release on a stable branch, this section aspires to be:
25 There are no changes intentionally incompatible with 5.11.3. If any
26 exist, they are bugs and reports are welcome.
29 =head1 Core Enhancements
31 XXX New core language features go here. Summarise user-visible core language
32 enhancements. Particularly prominent performance optimisations could go
33 here, but most should go in the L</Performance Enhancements> section.
35 =head2 Unicode version
37 Perl is shipped with the latest Unicode version, 5.2, October 2009. See
38 L<http://www.unicode.org/versions/Unicode5.2.0> for details about this release
41 =head2 Unicode properties
43 Perl can now handle every Unicode character property. A new pod,
44 L<perluniprops>, lists all available non-Unihan character properties. By
45 default the Unihan properties and certain others (deprecated and Unicode
46 internal-only ones) are not exposed. See below for more details on
47 these; there is also a section in the pod listing them, and why they are
50 Perl now fully supports the Unicode compound-style of using C<=> and C<:>
51 in writing regular expressions: C<\p{property=value}> and
52 C<\p{property:value}> (both of which mean the same thing).
54 Perl now supports fully the Unicode loose matching rules for text
55 between the braces in C<\p{...}> constructs. In addition, Perl also allows
56 underscores between digits of numbers.
58 All the Unicode-defined synonyms for properties and property values are
61 C<\p{...}> matches using the Canonical_Combining_Class property were
62 completely broken in previous Perls. This is now fixed.
64 In previous Perls, the Unicode Decomposition_Type=Compat property and a
65 Perl extension had the same name, which led to neither matching all the
66 correct values (with more than 100 mistakes in one, and several thousand
67 in the other). The Perl extension has now been renamed to be
68 Decomposition_Type=Noncanonical (short: dt=noncanon). It has the same
69 meaning as was previously intended, namely the union of all the
70 non-canonical Decomposition types, with Unicode Compat being just one of
73 C<\p{Uppercase}> and C<\p{Lowercase}> have been brought into line with the
74 Unicode definitions. This means they each match a few more characters
77 C<\p{Cntrl}> now matches the same characters as C<\p{Control}>. This means it
78 no longer will match Private Use (gc=co), Surrogates (gc=cs), nor Format
79 (gc=cf) code points. The Format code points represent the biggest
80 possible problem. All but 36 of them are either officially deprecated
81 or strongly discouraged from being used. Of those 36, likely the most
82 widely used are the soft hyphen (U+00AD), and BOM, ZWSP, ZWNJ, WJ, and
83 similar, plus Bi-directional controls.
85 C<\p{Alpha}> now matches the same characters as C<\p{Alphabetic}>. The Perl
86 definition included a number of things that aren't really alpha (all
87 marks), while omitting many that were. The Unicode definition is
88 clearly better, so we are switching to it. As a direct consequence, the
89 definitions of C<\p{Alnum}> and C<\p{Word}> which depend on Alpha also change.
91 C<\p{Word}> also now doesn't match certain characters it wasn't supposed
92 to, such as fractions.
94 C<\p{Print}> no longer matches the line control characters: tab, lf, cr,
95 ff, vt, and nel. This brings it in line with the documentation.
97 \p{Decomposition_Type=Canonical} now includes the Hangul syllables
99 The Numeric type property has been extended to include the Unihan
102 There is a new Perl extension, the 'Present_In', or simply 'In'
103 property. This is an extension of the Unicode Age property, but
104 C<\p{In=5.0}> matches any code point whose usage has been determined as of
105 Unicode version 5.0. The C<\p{Age=5.0}> only matches code points added in 5.0.
107 A number of properties did not have the correct values for unassigned
108 code points. This is now fixed. The affected properties are
109 Bidi_Class, East_Asian_Width, Joining_Type, Decomposition_Type,
110 Hangul_Syllable_Type, Numeric_Type, and Line_Break.
112 The Default_Ignorable_Code_Point, ID_Continue, and ID_Start properties
113 have been updated to their current definitions.
115 Certain properties that are supposed to be Unicode internal-only were
116 erroneously exposed by previous Perls. Use of these in regular
117 expressions will now generate a deprecated warning message, if those
118 warnings are enabled. The properties are: Other_Alphabetic,
119 Other_Default_Ignorable_Code_Point, Other_Grapheme_Extend,
120 Other_ID_Continue, Other_ID_Start, Other_Lowercase, Other_Math, and
123 An installation can now fairly easily change Perl to operate on any
124 Unicode release. Perl is shipped with the latest official release, but
125 an installation can now download any prior release, and Perl will work
126 with that. Instructions are in L<perlunicode>.
128 An installation can now fairly easily change which Unicode properties
129 Perl understands. As mentioned above, certain properties are by default
130 turned off. These include all the Unihan properties (which should be
131 accessible via the CPAN module Unicode::Unihan) and any deprecated or
132 Unicode internal-only property that Perl has never exposed.
134 The files in the To directory are now more clearly marked as being
135 stable, directly usable by applications. New hash entries in them give
136 the format of the normal entries which allows for easier machine
137 parsing. Perl can generate files in this directory for any property,
138 though most are suppressed. An installation can choose to change which
139 get written. Instructions are in L<perluniprops>.
143 XXX List any platforms that this version of perl compiles on, that previous
144 versions did not. These will either be enabled by new files in the F<hints/>
145 directories, or new subdirectories and F<README> files at the top level of the
148 =head1 Modules and Pragmata
150 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
151 go here, in a list ordered by distribution name. Minimally it should be the
152 module version, but it's more useful to the end user to give a paragraph's
153 summary of the module's changes. In an ideal world, dual-life modules would
154 have a F<Changes> file that could be cribbed.
156 =head2 New Modules and Pragmata
166 =head2 Pragmata Changes
176 =head2 Updated Modules
186 =head1 Utility Changes
188 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
189 here. Most of these are built within the directories F<utils> and F<x2p>.
199 =head1 New Documentation
201 XXX Changes which create B<new> files in F<pod/> go here.
211 =head1 Changes to Existing Documentation
213 XXX Changes which significantly change existing files in F<pod/> go here.
214 Any changes to F<pod/perldiag.pod> should go in L</New or Changed Diagnostics>.
217 =head1 Performance Enhancements
219 XXX Changes which enhance performance without changing behaviour go here. There
220 may well be none in a stable release.
230 =head1 Installation and Configuration Improvements
232 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
235 =head2 Configuration improvements
239 =head2 Compilation improvements
243 =head2 Platform Specific Changes
247 =item XXX-some-platform
253 =head1 Selected Bug Fixes
255 XXX Important bug fixes in the core language are summarised here.
256 Bug fixes in files in F<ext/> and F<lib/> are best summarised in
257 L</Modules and Pragmata>.
267 =head1 New or Changed Diagnostics
269 XXX New or changed warnings emitted by the core's C<C> code go here.
279 =head1 Changed Internals
281 XXX Changes which affect the interface available to C<XS> code go here.
293 XXX Changes which create B<new> files in F<t/> go here. Changes to
294 existing files in F<t/> aren't worth summarising, although the bugs that
295 they represent may be.
305 =head1 Known Problems
307 XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
308 tests that had to be C<TODO>ed for the release would be noted here, unless
309 they were specific to a particular platform (see below).
311 This is a list of some significant unfixed bugs, which are regressions
312 from either 5.11.3 or 5.11.3.
324 XXX Add any new known deprecations here.
326 The following items are now deprecated.
330 =item Use of "goto" to jump into a construct is deprecated
332 Using C<goto> to jump from an outer scope into an inner
333 scope is now deprecated. This rare use case was causing
334 problems in the implementation of scopes.
338 =head1 Platform Specific Notes
340 XXX Any changes specific to a particular platform. VMS and Win32 are the usual
341 stars here. It's probably best to group changes under the same section layout
342 as the main perldelta
346 XXX If any significant core contributor has died, we've added a short obituary
349 =head1 Acknowledgements
351 XXX The list of people to thank goes here.
354 =head1 Reporting Bugs
356 If you find what you think is a bug, you might check the articles
357 recently posted to the comp.lang.perl.misc newsgroup and the perl
358 bug database at http://rt.perl.org/perlbug/ . There may also be
359 information at http://www.perl.org/ , the Perl Home Page.
361 If you believe you have an unreported bug, please run the B<perlbug>
362 program included with your release. Be sure to trim your bug down
363 to a tiny but sufficient test case. Your bug report, along with the
364 output of C<perl -V>, will be sent off to perlbug@perl.org to be
365 analysed by the Perl porting team.
367 If the bug you are reporting has security implications, which make it
368 inappropriate to send to a publicly archived mailing list, then please send
369 it to perl5-security-report@perl.org. This points to a closed subscription
370 unarchived mailing list, which includes all the core committers, who be able
371 to help assess the impact of issues, figure out a resolution, and help
372 co-ordinate the release of patches to mitigate or fix the problem across all
373 platforms on which Perl is supported. Please only use this address for
374 security issues in the Perl core, not for modules independently
379 The F<Changes> file for an explanation of how to view exhaustive details
382 The F<INSTALL> file for how to build Perl.
384 The F<README> file for general stuff.
386 The F<Artistic> and F<Copying> files for copyright information.