Commit | Line | Data |
---|---|---|
ab6f2e91 ZE |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | perl5299delta - what is new for perl v5.29.9 | |
6 | ||
7 | =head1 DESCRIPTION | |
8 | ||
9 | This document describes differences between the 5.29.8 release and the 5.29.9 | |
10 | release. | |
11 | ||
12 | If you are upgrading from an earlier release such as 5.29.7, first read | |
13 | L<perl5298delta>, which describes differences between 5.29.7 and 5.29.8. | |
14 | ||
15 | =head1 Core Enhancements | |
16 | ||
17 | =head2 Wildcards in Unicode property value specifications are now | |
18 | partially supported | |
19 | ||
20 | You can now do something like this in a regular expression pattern | |
21 | ||
22 | qr! \p{nv= /(?x) \A [0-5] \z / }! | |
23 | ||
24 | which matches all Unicode code points which have numeric value is | |
25 | between 0 and 5 inclusive. | |
26 | ||
27 | This marks another step in implementing the regular expression features | |
28 | the Unicode Consortium suggests. | |
29 | ||
30 | Most properties are supported, with the remainder planned for 5.32. | |
31 | Details are in L<perlunicode/Wildcards in Property Values>. | |
32 | ||
33 | =head2 qr'\N{name}' is now supported | |
34 | ||
35 | Previously it was an error to evaluate a named character C<\N{...}> | |
36 | within a single quoted regular expression pattern (whose evaluation is | |
37 | deferred from the normal place). This restriction is now removed. | |
38 | ||
39 | =head2 Unicode 12.0 is supported | |
40 | ||
41 | For details, see L<https://www.unicode.org/versions/Unicode12.0.0/>. | |
42 | ||
43 | Because of a change in Unicode release cycles, Perl jumps from Unicode | |
44 | 10.0 in Perl 5.28 to Unicode 12.0 in Perl 5.30. | |
45 | ||
46 | =head2 It is now possible to compile perl to always use thread-safe | |
47 | locale operations. | |
48 | ||
49 | Previously, these calls were only used when the perl was compiled to be | |
50 | multi-threaded. To always enable them, add | |
51 | ||
52 | -Accflags='-DUSE_THREAD_SAFE_LOCALE' | |
53 | ||
54 | to your F<Configure> flags. | |
55 | ||
5e6a22d7 | 56 | =head2 Limited variable length lookbehind in regular expression pattern matching |
ab6f2e91 ZE |
57 | is now experimentally supported |
58 | ||
f6f85064 | 59 | Using a lookbehind assertion (like C<(?<=foo?)> or C<(?<!ba{1,9}r)> previously |
ab6f2e91 ZE |
60 | would generate an error and refuse to compile. Now it compiles (if the |
61 | maximum lookbehind is at most 255 characters), but raises a warning in | |
62 | the new C<experimental::vlb> warnings category. This is to caution you | |
63 | that the precise behavior is subject to change based on feedback from | |
64 | use in the field. | |
65 | ||
66 | See L<perlre/(?<=pattern)> and L<perlre/(?<!pattern)>. | |
67 | ||
68 | =head1 Incompatible Changes | |
69 | ||
70 | =head2 C<pack()> no longer can return malformed UTF-8 | |
71 | ||
72 | It croaks if it would otherwise return a UTF-8 string that contains | |
73 | malformed UTF-8. This protects agains potential security threats. This | |
74 | is considered a bug fix as well ([perl #131642]). | |
75 | ||
76 | =head2 Any set of digits in the Common script are legal in a script run | |
77 | of another script | |
78 | ||
79 | There are several sets of digits in the Common script. C<[0-9]> is the | |
80 | most familiar. But there are also C<[\x{FF10}-\x{FF19}]> (FULLWIDTH | |
81 | DIGIT ZERO - FULLWIDTH DIGIT NINE), and several sets for use in | |
82 | mathematical notation, such as the MATHEMATICAL DOUBLE-STRUCK DIGITs. | |
83 | Any of these sets should be able to appear in script runs of, say, | |
84 | Greek. But the design of 5.30 overlooked all but the ASCII digits | |
85 | C<[0-9]>, so the design was flawed. This has been fixed, so is both a | |
86 | bug fix and an incompatibility. [perl #133547] | |
87 | ||
88 | All digits in a run still have to come from the same set of ten digits. | |
89 | ||
90 | =head1 Modules and Pragmata | |
91 | ||
92 | =head2 Updated Modules and Pragmata | |
93 | ||
94 | =over 4 | |
95 | ||
96 | =item * | |
97 | ||
98 | L<Devel::PPPort> has been upgraded from version 3.44 to 3.45. | |
99 | ||
100 | =item * | |
101 | ||
102 | L<Encode> has been upgraded from version 3.00 to 3.01. | |
103 | ||
104 | =item * | |
105 | ||
106 | L<ExtUtils::Manifest> has been upgraded from version 1.71 to 1.72. | |
107 | ||
108 | =item * | |
109 | ||
110 | L<JSON::PP> has been upgraded from version 4.00 to 4.02. | |
111 | ||
112 | =item * | |
113 | ||
114 | L<Module::CoreList> has been upgraded from version 5.20190220 to 5.20190320. | |
115 | ||
116 | =item * | |
117 | ||
118 | L<perl5db.pl> has been upgraded from version 1.54 to 1.55. | |
119 | ||
120 | Debugging threaded code no longer deadlocks in C<DB::sub> nor | |
121 | C<DB::lsub>. | |
122 | ||
123 | =item * | |
124 | ||
125 | L<PerlIO::encoding> has been upgraded from version 0.26 to 0.27. | |
126 | ||
127 | Warnings enabled by setting the C<WARN_ON_ERR> flag in | |
128 | C<$PerlIO::encoding::fallback> are now only produced if warnings are | |
129 | enabled with C<use warnings "utf8";> or setting C<$^W>. | |
130 | ||
131 | =item * | |
132 | ||
133 | L<threads::shared> has been upgraded from version 1.59 to 1.60. | |
134 | ||
135 | Added support for extra tracing of locking, this requires a | |
136 | C<-DDEBUGGING> and extra compilation flags. | |
137 | ||
138 | =item * | |
139 | ||
140 | L<utf8> has been upgraded from version 1.21 to 1.22. | |
141 | ||
142 | =item * | |
143 | ||
144 | L<warnings> has been upgraded from version 1.43 to 1.44. | |
145 | ||
455565b9 JK |
146 | =item * |
147 | ||
148 | L<ExtUtils::CBuilder> has been upgraded from version 0.280230 to 0.280231. | |
149 | ||
ab6f2e91 ZE |
150 | =back |
151 | ||
152 | =head1 Diagnostics | |
153 | ||
154 | The following additions or changes have been made to diagnostic output, | |
155 | including warnings and fatal error messages. For the complete list of | |
156 | diagnostic messages, see L<perldiag>. | |
157 | ||
158 | =head2 Changes to Existing Diagnostics | |
159 | ||
160 | =over 4 | |
161 | ||
162 | =item * | |
163 | ||
164 | Specifying C<\o{}> without anything between the braces now yields the | |
165 | fatal error message "Empty \o{}". Previously it was "Number with no | |
166 | digits". This means the same wording is used for this kind of error as | |
167 | with similar constructs such as C<\p{}>. | |
168 | ||
169 | =item * | |
170 | ||
171 | Within the scope of the experimental feature C<use re 'strict'>, | |
172 | specifying C<\x{}> without anything between the braces now yields the | |
173 | fatal error message "Empty \x{}". Previously it was "Number with no | |
174 | digits". This means the same wording is used for this kind of error as | |
175 | with similar constructs such as C<\p{}>. It is legal, though not wise | |
176 | to have an empty C<\x> outside of C<re 'strict'>; it silently generates | |
177 | a NUL character. | |
178 | ||
179 | =back | |
180 | ||
181 | =head1 Internal Changes | |
182 | ||
183 | =over 4 | |
184 | ||
185 | =item * | |
186 | ||
187 | Added C<newSVsv_nomg()> to copy a SV without processing get magic on | |
188 | the source. [perl #132964] | |
189 | ||
190 | =back | |
191 | ||
192 | =head1 Selected Bug Fixes | |
193 | ||
194 | =over 4 | |
195 | ||
196 | =item * | |
197 | ||
198 | C<pack()> no longer can return malformed UTF-8. It croaks if it would | |
199 | otherwise return a UTF-8 string that contains malformed UTF-8. This | |
200 | protects agains potential security threats. [perl #131642] | |
201 | ||
202 | =item * | |
203 | ||
204 | See L</Any set of digits in the Common script are legal in a script run | |
205 | of another script>. | |
206 | ||
207 | =back | |
208 | ||
209 | =head1 Acknowledgements | |
210 | ||
211 | Perl 5.29.9 represents approximately 4 weeks of development since Perl | |
212 | 5.29.8 and contains approximately 47,000 lines of changes across 210 files | |
213 | from 11 authors. | |
214 | ||
215 | Excluding auto-generated files, documentation and release tools, there were | |
216 | approximately 38,000 lines of changes to 71 .pm, .t, .c and .h files. | |
217 | ||
218 | Perl continues to flourish into its fourth decade thanks to a vibrant | |
219 | community of users and developers. The following people are known to have | |
220 | contributed the improvements that became Perl 5.29.9: | |
221 | ||
222 | Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, Dan | |
223 | Kogai, David Mitchell, Karen Etheridge, Karl Williamson, Nicolas R., Pali, | |
224 | Tony Cook, Unicode Consortium. | |
225 | ||
226 | The list above is almost certainly incomplete as it is automatically | |
227 | generated from version control history. In particular, it does not include | |
228 | the names of the (very much appreciated) contributors who reported issues to | |
229 | the Perl bug tracker. | |
230 | ||
231 | Many of the changes included in this version originated in the CPAN modules | |
232 | included in Perl's core. We're grateful to the entire CPAN community for | |
233 | helping Perl to flourish. | |
234 | ||
235 | For a more complete list of all of Perl's historical contributors, please | |
236 | see the F<AUTHORS> file in the Perl source distribution. | |
237 | ||
238 | =head1 Reporting Bugs | |
239 | ||
240 | If you find what you think is a bug, you might check the perl bug database | |
241 | at L<https://rt.perl.org/>. There may also be information at | |
242 | L<http://www.perl.org/>, the Perl Home Page. | |
243 | ||
244 | If you believe you have an unreported bug, please run the L<perlbug> program | |
245 | included with your release. Be sure to trim your bug down to a tiny but | |
246 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
247 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
248 | ||
249 | If the bug you are reporting has security implications which make it | |
250 | inappropriate to send to a publicly archived mailing list, then see | |
251 | L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> | |
252 | for details of how to report the issue. | |
253 | ||
254 | =head1 Give Thanks | |
255 | ||
256 | If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, | |
257 | you can do so by running the C<perlthanks> program: | |
258 | ||
259 | perlthanks | |
260 | ||
261 | This will send an email to the Perl 5 Porters list with your show of thanks. | |
262 | ||
263 | =head1 SEE ALSO | |
264 | ||
265 | The F<Changes> file for an explanation of how to view exhaustive details on | |
266 | what changed. | |
267 | ||
268 | The F<INSTALL> file for how to build Perl. | |
269 | ||
270 | The F<README> file for general stuff. | |
271 | ||
272 | The F<Artistic> and F<Copying> files for copyright information. | |
273 | ||
274 | =cut |