Commit | Line | Data |
---|---|---|
44691e6f AB |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
6253ee75 | 5 | perldelta - what is new for perl v5.17.8 |
e128ab2c | 6 | |
4eabcf70 | 7 | =head1 DESCRIPTION |
6db9054f | 8 | |
6253ee75 | 9 | This document describes differences between the 5.17.7 release and the 5.17.8 |
e08634c5 | 10 | release. |
6db9054f | 11 | |
6253ee75 DR |
12 | If you are upgrading from an earlier release such as 5.17.6, first read |
13 | L<perl5177delta>, which describes differences between 5.17.6 and 5.17.7. | |
bde9e88d | 14 | |
6253ee75 | 15 | =head1 Core Enhancements |
dd271d7a | 16 | |
9d1a5160 KW |
17 | =head2 Regular Expression Set Operations |
18 | ||
19 | This is an experimental feature to allow matching against the the union, | |
20 | intersection, etc., of sets of code points, similar to | |
21 | L<Unicode::Regex::Set>. It can also be used to extend C</x> processing | |
22 | to [bracketed] character classes, and as a replacement of user-defined | |
23 | properties, allowing more complex expressions than they do. See | |
24 | L<perlre/(?[ ])>. | |
25 | ||
0e55f0d7 | 26 | =head1 Deprecations |
3ef6ec90 | 27 | |
0e55f0d7 | 28 | =head2 Deprecated modules |
3ef6ec90 | 29 | |
0e55f0d7 AC |
30 | The Pod::LaTeX module is now deprecated, and due to be moved out of the Perl |
31 | core in 5.20. Until then, using the core-installed version will produce a | |
32 | warning. You can suppress the warning by installing the module from CPAN. | |
4d7cd482 | 33 | |
0e55f0d7 | 34 | =head2 User-defined charnames with surprising whitespace |
b7c7d786 | 35 | |
0e55f0d7 AC |
36 | A user-defined character name with trailing or multiple spaces in a row is |
37 | likely a typo. This now generates a warning when defined, on the assumption | |
38 | that uses of it will be unlikely to include the excess whitespace. | |
b7c7d786 | 39 | |
143aeb96 KW |
40 | =head2 Various XS-callable functions are now deprecated |
41 | ||
42 | All the functions used to classify characters will be removed from a | |
43 | future version of Perl, and should not be used. With participating C | |
44 | compilers (e.g., gcc), compiling any file that uses any of these will | |
45 | generate a warning. These were not intended for public use; there are | |
46 | equivalent, faster, macros for most of them. | |
47 | See L<perlapi/Character classes>. The complete list (including some | |
48 | that were deprecated in 5.17.7) is: | |
49 | C<is_uni_alnum>, C<is_uni_alnumc>, C<is_uni_alnumc_lc>, | |
50 | C<is_uni_alnum_lc>, C<is_uni_alpha>, C<is_uni_alpha_lc>, | |
51 | C<is_uni_ascii>, C<is_uni_ascii_lc>, C<is_uni_blank>, | |
52 | C<is_uni_blank_lc>, C<is_uni_cntrl>, C<is_uni_cntrl_lc>, | |
53 | C<is_uni_digit>, C<is_uni_digit_lc>, C<is_uni_graph>, | |
54 | C<is_uni_graph_lc>, C<is_uni_idfirst>, C<is_uni_idfirst_lc>, | |
55 | C<is_uni_lower>, C<is_uni_lower_lc>, C<is_uni_print>, | |
56 | C<is_uni_print_lc>, C<is_uni_punct>, C<is_uni_punct_lc>, | |
57 | C<is_uni_space>, C<is_uni_space_lc>, C<is_uni_upper>, | |
58 | C<is_uni_upper_lc>, C<is_uni_xdigit>, C<is_uni_xdigit_lc>, | |
59 | C<is_utf8_alnum>, C<is_utf8_alnumc>, C<is_utf8_alpha>, | |
60 | C<is_utf8_ascii>, C<is_utf8_blank>, C<is_utf8_char>, | |
61 | C<is_utf8_cntrl>, C<is_utf8_digit>, C<is_utf8_graph>, | |
62 | C<is_utf8_idcont>, C<is_utf8_idfirst>, C<is_utf8_lower>, | |
63 | C<is_utf8_mark>, C<is_utf8_perl_space>, C<is_utf8_perl_word>, | |
64 | C<is_utf8_posix_digit>, C<is_utf8_print>, C<is_utf8_punct>, | |
65 | C<is_utf8_space>, C<is_utf8_upper>, C<is_utf8_xdigit>, | |
66 | C<is_utf8_xidcont>, C<is_utf8_xidfirst>. | |
67 | ||
68 | In addition these three functions that have never worked properly are | |
69 | deprecated: | |
70 | C<to_uni_lower_lc>, C<to_uni_title_lc>, and C<to_uni_upper_lc>. | |
71 | ||
4d68ffa0 KW |
72 | =head2 Certain rare uses of backslashes within regexes are now deprectated |
73 | ||
74 | There are three pairs of characters that Perl recognizes as | |
75 | metacharacters in regular expression patterns: C<{}>, C<[]>, and C<()>. | |
76 | These can be used as well to delimit patterns, as in: | |
77 | ||
78 | m{foo} | |
79 | s(foo)(bar) | |
80 | ||
81 | Since they are metacharacters, they have special meaning to regular | |
82 | expression patterns, and it turns out that you can't turn off that | |
83 | special meaning by the normal means of preceding them with a backslash, | |
84 | if you use them, paired, within a pattern delimitted by them. For | |
85 | example, in | |
86 | ||
87 | m{foo\{1,3\}} | |
88 | ||
89 | the backslashes do not change the behavior, and this matches | |
90 | S<C<"f o">> followed by one to three more occurrences of C<"o">. | |
91 | ||
92 | Usages like this, where they are interpreted as metacharacters, are | |
93 | exceedingly rare; we think there are none, for example, in all of CPAN. | |
94 | Hence, this deprecation should affect very little code. It does give | |
95 | notice, however, that any such code needs to change, which will in turn | |
96 | allow us to change the behavior in future Perl versions so that the | |
97 | backslashes do have an effect, and without fear that we are silently | |
98 | breaking any existing code. | |
99 | ||
0e55f0d7 | 100 | =head1 Modules and Pragmata |
751611d4 | 101 | |
0e55f0d7 | 102 | =head2 Selected Updates to Modules and Pragmata |
751611d4 | 103 | |
6253ee75 | 104 | =over 4 |
751611d4 FC |
105 | |
106 | =item * | |
107 | ||
0e55f0d7 AC |
108 | Several modules have had their version number changed to one with no |
109 | underscore, since such version numbers are usually interpreted to mean | |
110 | "development-only version". No other changes have been made in these cases. | |
111 | The affected modules are: | |
751611d4 | 112 | |
6253ee75 | 113 | =over 4 |
751611d4 FC |
114 | |
115 | =item * | |
116 | ||
0e55f0d7 | 117 | L<I18N::Langinfo> was 0.08_02 and is now 0.09 |
751611d4 | 118 | |
0e55f0d7 | 119 | =item * |
86148eee | 120 | |
0e55f0d7 | 121 | L<I18N::LangTags::List> was 0.35_01 and is now 0.39 |
7a7a10c7 | 122 | |
e14ac59b | 123 | =item * |
7a7a10c7 | 124 | |
0e55f0d7 | 125 | L<IO> was 1.25_08 and is now 1.26 |
7a7a10c7 | 126 | |
0e55f0d7 | 127 | =item * |
c387386a | 128 | |
0e55f0d7 | 129 | L<Safe> was 2.33_01 and is now 2.34 |
32209f41 | 130 | |
e14ac59b | 131 | =item * |
5faa50e9 | 132 | |
0e55f0d7 | 133 | L<Test> was 1.25_02 and is now 1.26. |
b7c7d786 | 134 | |
6253ee75 | 135 | =back |
b7c7d786 | 136 | |
0e55f0d7 | 137 | =item * |
11e375e0 | 138 | |
0e55f0d7 AC |
139 | L<Digest::SHA> has been upgraded from version 5.80 to 5.81. This fixes a |
140 | double-free bug, which might have caused vulnerabilities in some cases. | |
e498bd59 RS |
141 | |
142 | =item * | |
143 | ||
dd4b1c75 AC |
144 | L<Module::CoreList> has been upgraded from 2.79 to 2.80. |
145 | ||
146 | =item * | |
147 | ||
0e55f0d7 AC |
148 | L<Socket> has been upgraded from 2.006_001 to 2.009. This fixes an |
149 | uninitialized memory read. | |
cb077ed2 | 150 | |
5d8c8c8a | 151 | =back |
5f877a7f | 152 | |
e14ac59b RS |
153 | =head1 Diagnostics |
154 | ||
155 | The following additions or changes have been made to diagnostic output, | |
156 | including warnings and fatal error messages. For the complete list of | |
157 | diagnostic messages, see L<perldiag>. | |
1ea91bbe | 158 | |
6253ee75 DR |
159 | =head2 New Diagnostics |
160 | ||
6253ee75 | 161 | =head3 New Warnings |
11e375e0 | 162 | |
e14ac59b | 163 | =over 4 |
11e375e0 FC |
164 | |
165 | =item * | |
166 | ||
5e0a247b KW |
167 | L<'%s' resolved to '\o{%s}%d'|perldiag/"'%s' resolved to '\o{%s}%d'"> |
168 | ||
169 | =item * | |
170 | ||
0e55f0d7 | 171 | L<'Trailing white-space in a charnames alias definition is deprecated'|perldiag/"Trailing white-space in a charnames alias definition is deprecated"> |
e14ac59b | 172 | |
6253ee75 | 173 | =item * |
8b877d20 | 174 | |
0e55f0d7 | 175 | L<'A sequence of multiple spaces in a charnames alias definition is deprecated'|perldiag/"A sequence of multiple spaces in a charnames alias definition is deprecated"> |
e078d89d FC |
176 | |
177 | =item * | |
178 | ||
0e55f0d7 | 179 | L<'Passing malformed UTF-8 to "%s" is deprecated'|perldiag/"Passing malformed UTF-8 to "%s" is deprecated"> |
e078d89d | 180 | |
6253ee75 | 181 | =back |
e078d89d | 182 | |
0e55f0d7 | 183 | =head1 Testing |
e078d89d | 184 | |
6253ee75 | 185 | =over 4 |
e078d89d | 186 | |
b7c7d786 FC |
187 | =item * |
188 | ||
0e55f0d7 | 189 | Many more of the core's tests now have descriptions. |
e14ac59b | 190 | |
fdea6f98 FC |
191 | =item * |
192 | ||
0e55f0d7 AC |
193 | Thread stress-tests now adapt to the speed of the machine running the tests, |
194 | thus reducing the incidence of false failures. | |
fdea6f98 | 195 | |
6253ee75 | 196 | =back |
7cf3104f | 197 | |
6253ee75 | 198 | =head1 Platform Support |
7cf3104f | 199 | |
6253ee75 | 200 | =head2 Discontinued Platforms |
a0e45bac | 201 | |
6253ee75 | 202 | =over 4 |
139353f8 | 203 | |
7eb35c03 | 204 | =item Rhapsody |
139353f8 | 205 | |
7eb35c03 | 206 | Support for Rhapsody has been removed. |
ba535ffe | 207 | |
6253ee75 | 208 | =back |
ba535ffe | 209 | |
6253ee75 | 210 | =head2 Platform-Specific Notes |
52c09c59 | 211 | |
6253ee75 | 212 | =over 4 |
12b847a2 | 213 | |
5398666e | 214 | =item Windows |
12b847a2 | 215 | |
5398666e SH |
216 | Perl can now be built using Microsoft's Visual C++ 2012 compiler by specifying |
217 | CCTYPE=MSVC110 (or MSVC110FREE if you are using the free Express edition for | |
218 | Windows Desktop) in F<win32/Makefile>. | |
6e50262c | 219 | |
0e55f0d7 | 220 | =item Haiku |
6e50262c | 221 | |
0e55f0d7 | 222 | Perl should now work out of the box on Haiku R1 Alpha 4. |
785fb813 | 223 | |
0e55f0d7 | 224 | =back |
785fb813 | 225 | |
0e55f0d7 | 226 | =head1 Internal Changes |
f5778209 | 227 | |
6253ee75 | 228 | =over 4 |
f5778209 | 229 | |
216cf7fc DR |
230 | =item * |
231 | ||
36baafc9 KW |
232 | A synonym for the misleadingly named C<av_len()> has been created: |
233 | C<av_top()>. Both of these return the number of the highest index in | |
234 | the array, not the number of elements it contains. | |
216cf7fc | 235 | |
6253ee75 | 236 | =back |
216cf7fc | 237 | |
6253ee75 | 238 | =head1 Selected Bug Fixes |
216cf7fc | 239 | |
6253ee75 | 240 | =over 4 |
216cf7fc | 241 | |
6253ee75 | 242 | =item * |
216cf7fc | 243 | |
e2beedf4 DD |
244 | A bug in the core typemap caused any C types that map to the T_BOOL core |
245 | typemap entry to not be set, updated, or modified when the T_BOOL variable was | |
246 | used in an OUTPUT: section with an exception for RETVAL. T_BOOL in an INPUT: | |
247 | section was not affected. Using a T_BOOL return type for an XSUB (RETVAL) | |
248 | was not affected. A side effect of fixing this bug is, if a T_BOOL is specified | |
249 | in the OUTPUT: section (which previous did nothing to the SV), and a read only | |
250 | SV (literal) is passed to the XSUB, croaks like "Modification of a read-only | |
251 | value attempted" will happen. [perl #115796] | |
216cf7fc | 252 | |
d76c0f4b RS |
253 | =item * |
254 | ||
255 | On many platforms, providing a directory name as the script name caused perl | |
256 | to do nothing and report success. It should now universally report an error | |
257 | and exit nonzero. [perl #61362] | |
258 | ||
6253ee75 | 259 | =back |
6c042f06 | 260 | |
6253ee75 | 261 | =head1 Known Problems |
6c042f06 | 262 | |
6253ee75 | 263 | =over 4 |
3cf48cac | 264 | |
6253ee75 | 265 | =item * |
3cf48cac | 266 | |
0e55f0d7 AC |
267 | Perl 5.17.7 introduced a new internal copy-on-write mechanism, in the |
268 | interests of speed. An flaw in the implementation means that some regexp | |
269 | matches which previously completed very fast, without invoking the full | |
270 | regexp engine, now run much slower than before. We expect this performance | |
271 | problem to be resolved before 5.18.0 is released. | |
05bee12a | 272 | |
100e3bc8 AC |
273 | =item * |
274 | ||
275 | The C<POSIX> module may yield test failures when building on a ZFS | |
276 | filesystem under FreeBSD. | |
277 | ||
6253ee75 | 278 | =back |
f5b73711 | 279 | |
0e55f0d7 AC |
280 | =head1 Acknowledgements |
281 | ||
282 | Perl 5.17.8 represents approximately 5 weeks of development since Perl 5.17.7 | |
283 | and contains approximately 18,000 lines of changes across 280 files from 24 | |
284 | authors. | |
f5b73711 | 285 | |
0e55f0d7 AC |
286 | Perl continues to flourish into its third decade thanks to a vibrant community |
287 | of users and developers. The following people are known to have contributed the | |
288 | improvements that became Perl 5.17.8: | |
f5b73711 | 289 | |
0e55f0d7 AC |
290 | Aaron Crane, Andy Dougherty, Augustina Blair, Chris 'BinGOs' Williams, Craig |
291 | A. Berry, Daniel Dragan, Dave Rolsky, David Mitchell, Eric Brine, Father | |
292 | Chrysostomos, H.Merijn Brand, James E Keenan, Jerry D. Hedden, Jesse Luehrs, | |
293 | Karl Williamson, Matthew Horsfall, Nicholas Clark, Renee Baecker, Ricardo | |
294 | Signes, Shlomi Fish, Steffen Müller, Steve Hay, Steven Schubiger, Tony Cook. | |
295 | ||
296 | The list above is almost certainly incomplete as it is automatically generated | |
297 | from version control history. In particular, it does not include the names of | |
298 | the (very much appreciated) contributors who reported issues to the Perl bug | |
299 | tracker. | |
f5b73711 | 300 | |
0e55f0d7 AC |
301 | Many of the changes included in this version originated in the CPAN modules |
302 | included in Perl's core. We're grateful to the entire CPAN community for | |
303 | helping Perl to flourish. | |
f5b73711 | 304 | |
0e55f0d7 AC |
305 | For a more complete list of all of Perl's historical contributors, please see |
306 | the F<AUTHORS> file in the Perl source distribution. | |
f5b73711 | 307 | |
44691e6f AB |
308 | =head1 Reporting Bugs |
309 | ||
e08634c5 SH |
310 | If you find what you think is a bug, you might check the articles recently |
311 | posted to the comp.lang.perl.misc newsgroup and the perl bug database at | |
312 | http://rt.perl.org/perlbug/ . There may also be information at | |
313 | http://www.perl.org/ , the Perl Home Page. | |
44691e6f | 314 | |
e08634c5 SH |
315 | If you believe you have an unreported bug, please run the L<perlbug> program |
316 | included with your release. Be sure to trim your bug down to a tiny but | |
317 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
318 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
44691e6f AB |
319 | |
320 | If the bug you are reporting has security implications, which make it | |
e08634c5 SH |
321 | inappropriate to send to a publicly archived mailing list, then please send it |
322 | to perl5-security-report@perl.org. This points to a closed subscription | |
323 | unarchived mailing list, which includes all the core committers, who will be | |
324 | able to help assess the impact of issues, figure out a resolution, and help | |
f9001595 | 325 | co-ordinate the release of patches to mitigate or fix the problem across all |
e08634c5 SH |
326 | platforms on which Perl is supported. Please only use this address for |
327 | security issues in the Perl core, not for modules independently distributed on | |
328 | CPAN. | |
44691e6f AB |
329 | |
330 | =head1 SEE ALSO | |
331 | ||
e08634c5 SH |
332 | The F<Changes> file for an explanation of how to view exhaustive details on |
333 | what changed. | |
44691e6f AB |
334 | |
335 | The F<INSTALL> file for how to build Perl. | |
336 | ||
337 | The F<README> file for general stuff. | |
338 | ||
339 | The F<Artistic> and F<Copying> files for copyright information. | |
340 | ||
341 | =cut |