Commit | Line | Data |
---|---|---|
3be84f1f RS |
1 | =head1 NAME |
2 | ||
655da5cf | 3 | perl5115delta - what is new for perl v5.11.5 |
3be84f1f RS |
4 | |
5 | =head1 DESCRIPTION | |
6 | ||
7 | This document describes differences between the 5.11.4 release and | |
8 | the 5.11.5 release. | |
9 | ||
10 | If you are upgrading from an earlier release such as 5.11.3, first read | |
11 | L<perl5114delta>, which describes differences between 5.11.3 and | |
12 | 5.11.4. | |
13 | ||
3be84f1f RS |
14 | =head1 Core Enhancements |
15 | ||
555dc087 | 16 | =head2 32-bit limit on substr arguments removed |
3be84f1f | 17 | |
555dc087 SH |
18 | The 32-bit limit on C<substr> arguments has now been removed. The full range |
19 | of the system's signed and unsigned integers is now available for the C<pos> | |
20 | and C<len> arguments. | |
3be84f1f RS |
21 | |
22 | =head1 Modules and Pragmata | |
23 | ||
3be84f1f RS |
24 | =head2 Pragmata Changes |
25 | ||
555dc087 | 26 | =over 4 |
3be84f1f | 27 | |
555dc087 | 28 | =item C<version> |
3be84f1f | 29 | |
555dc087 | 30 | Upgraded from version 0.81 to 0.82. |
3be84f1f | 31 | |
555dc087 SH |
32 | The C<is_lax> and C<is_strict> functions can now be optionally exported to the |
33 | caller's namespace and are also now documented. | |
3be84f1f | 34 | |
555dc087 | 35 | Undefined version objects are now uninitialized with zero rather than C<undef>. |
3be84f1f RS |
36 | |
37 | =back | |
38 | ||
555dc087 | 39 | =head2 Updated Modules |
3be84f1f RS |
40 | |
41 | =over 4 | |
42 | ||
9b49dc40 SH |
43 | =item C<B::Debug> |
44 | ||
45 | Upgraded from version 1.11 to 1.12. | |
46 | ||
555dc087 | 47 | =item C<CPAN> |
3be84f1f | 48 | |
a4cc9611 | 49 | Upgraded from version 1.94_53 to 1.94_56. |
3be84f1f | 50 | |
9b49dc40 SH |
51 | This resolves RT #72362, in which CPAN was ignoring C<configure_requires>, |
52 | and RT #72348, in which the command C<o conf init> in the CPAN shell could | |
53 | cause an exception to be thrown. | |
54 | ||
555dc087 SH |
55 | This module is also now built in a less specialized way, which resolves a |
56 | problem that caused C<make> after C<make clean> to fail, fixing RT #72218. | |
3be84f1f | 57 | |
555dc087 | 58 | =item C<CPANPLUS::Dist::Build> |
3be84f1f | 59 | |
555dc087 | 60 | Upgraded from version 0.44 to 0.46. |
3be84f1f | 61 | |
9b49dc40 SH |
62 | This makes the prereq resolving fall back to F<_build/> querying if the |
63 | C<prereq_data> action fails. | |
64 | ||
65 | =item C<Pod::Perldoc> | |
66 | ||
67 | Upgraded from version 3.15_01 to 3.15_02. | |
68 | ||
69 | =item C<Pod::Plainer> | |
70 | ||
71 | Upgraded from version 1.01 to 1.02. | |
72 | ||
555dc087 | 73 | =item C<Safe> |
3be84f1f | 74 | |
555dc087 | 75 | Upgraded from version 2.21 to 2.22. |
3be84f1f | 76 | |
555dc087 SH |
77 | This resolves RT #72700, in which an exception thrown from a closure was |
78 | getting lost. | |
3be84f1f | 79 | |
a4cc9611 SH |
80 | =item C<Socket> |
81 | ||
82 | Upgraded from version 1.85 to 1.86. | |
83 | ||
84 | This makes the new Socket implementation of C<inet_pton> consistent with the | |
85 | existing Socket6 implementation of C<inet_pton>, fixing RT #72884. | |
86 | ||
555dc087 | 87 | =item C<podlators> |
3be84f1f | 88 | |
4d522957 | 89 | Upgraded from version 2.2.2 to 2.3.1. |
3be84f1f RS |
90 | |
91 | =back | |
92 | ||
555dc087 | 93 | =head1 Changes to Existing Documentation |
3be84f1f | 94 | |
555dc087 SH |
95 | The syntax C<unless (EXPR) BLOCK else BLOCK> is now documented as valid, as |
96 | is the syntax C<unless (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK>, | |
97 | although actually using the latter may not be the best idea for the | |
98 | readability of your source code. | |
3be84f1f | 99 | |
555dc087 | 100 | =head1 Installation and Configuration Improvements |
3be84f1f | 101 | |
555dc087 | 102 | =head2 Configuration improvements |
3be84f1f | 103 | |
555dc087 SH |
104 | Support for SystemTap's C<dtrace> compatibility layer has been added and an |
105 | issue with linking C<miniperl> has been fixed in the process. | |
3be84f1f | 106 | |
555dc087 SH |
107 | C<less -R> is now used instead of C<less> for C<groff>'s new usage of ANSI |
108 | escape codes by setting C<$Config{less}> (and thereby C<$Config{pager}>, | |
109 | which fixes RT #72156. | |
3be84f1f | 110 | |
555dc087 SH |
111 | USE_PERL_ATOF is now reported in the compile-time options listed by the C<-V> |
112 | switch. | |
3be84f1f RS |
113 | |
114 | =head1 Selected Bug Fixes | |
115 | ||
3be84f1f RS |
116 | =over 4 |
117 | ||
118 | =item * | |
119 | ||
555dc087 SH |
120 | Arbitrary whitespace is now allowed between C<NAME> and C<VERSION> in |
121 | C<package NAME VERSION;> statements. (Fixes RT #72432) | |
3be84f1f | 122 | |
555dc087 | 123 | =item * |
3be84f1f | 124 | |
555dc087 SH |
125 | A panic caused by trying to load C<charnames> when the parser is already in |
126 | error (e.g. by a missing C<my> under C<use strict;>) is now averted. This | |
127 | was a regression since Perl 5.10.0. (Fixes RT #72590) | |
3be84f1f | 128 | |
555dc087 | 129 | =item * |
3be84f1f | 130 | |
ca127710 SH |
131 | Reading C<$!> no longer causes a SEGV for out of range C<errno> values. (Fixes |
132 | RT #72850) | |
133 | ||
134 | =item * | |
135 | ||
555dc087 SH |
136 | A possible SEGV in C</\N{...}/> has been fixed. This was a regression since |
137 | Perl 5.10. | |
3be84f1f | 138 | |
555dc087 | 139 | =item * |
3be84f1f | 140 | |
555dc087 SH |
141 | A possible SEGV when freeing a scalar that was upgraded to an C<SVt_REGEXP> |
142 | type from a simple(r) scalar has been fixed. | |
3be84f1f RS |
143 | |
144 | =item * | |
145 | ||
555dc087 SH |
146 | A type conversion bug in C<gmtime64> that caused it to break around C<2**48> |
147 | has been fixed. | |
3be84f1f | 148 | |
555dc087 | 149 | =item * |
3be84f1f | 150 | |
e6a8543a SH |
151 | Interpolating a regex that makes use of the C<charnames> pragma will no longer |
152 | cause a run-time error. (Fixes RT #56444) | |
153 | ||
154 | =item * | |
155 | ||
156 | Array references assigned to C<*Foo::ISA> now have the necessary magic added | |
157 | to them to catch any further updates to the new C<@ISA>. (Fixes RT #72866) | |
158 | ||
159 | =item * | |
160 | ||
555dc087 SH |
161 | Filehandles are now always blessed into C<IO::File>, which, together with |
162 | some suitable manipulation of C<@IO::File::ISA>, fixes a breakage introduced | |
163 | in Perl 5.11.3 by a change that always blessed filehandles into C<IO::Handle> | |
164 | rather than checking for C<FileHandle> first. | |
3be84f1f | 165 | |
555dc087 | 166 | =item * |
3be84f1f | 167 | |
ca127710 SH |
168 | A change in the behaviour of C<warnings::enabled> and C<warnings::warnif> in |
169 | Perl 5.10.0 that wasn't documented at the time is now documented in | |
170 | L<perl5100delta>. (Fixes RT #62522) | |
3be84f1f | 171 | |
555dc087 | 172 | =item * |
3be84f1f | 173 | |
555dc087 SH |
174 | RT #71504 is now fixed by simply skipping the tests that failed on OpenBSD |
175 | with ithreads and perlio. | |
3be84f1f RS |
176 | |
177 | =back | |
178 | ||
555dc087 | 179 | =head1 New or Changed Diagnostics |
3be84f1f RS |
180 | |
181 | =over 4 | |
182 | ||
183 | =item * | |
184 | ||
875c5bf4 SH |
185 | The fatal error C<Malformed UTF-8 returned by \N> is now produced if the |
186 | C<charnames> handler returns malformed UTF-8. | |
187 | ||
188 | =item * | |
189 | ||
190 | If an unresolved named character or sequence was encountered when compiling a | |
191 | regex pattern then the fatal error C<\\N{NAME} must be resolved by the lexer> | |
192 | is now produced. This can happen, for example, when using a single-quotish | |
193 | context like C<$re = '\N{SPACE}'; $re;>. See L<perldiag> for more examples of | |
194 | how the lexer can get bypassed. | |
195 | ||
196 | =item * | |
197 | ||
198 | The fatal error C<Invalid hexadecimal number in \\N{U+...}> will be produced | |
199 | if the character constant represented by C<...> is not a valid hexadecimal | |
200 | number. | |
201 | ||
202 | =item * | |
203 | ||
204 | The new meaning of C<\N> as C<[^\n]> is not valid in a bracketed character | |
205 | class, just like C<.> in a character class loses its special meaning, and will | |
206 | cause the fatal error C<\\N in a character class must be a named character: | |
207 | \\N{...}>. | |
208 | ||
209 | =item * | |
210 | ||
9b49dc40 SH |
211 | The rules on what is legal for the C<...> in C<\N{...}> have been tightened |
212 | up so that unless the C<...> begins with an alphabetic character and continues | |
213 | with a combination of alphanumerics, dashes, spaces, parentheses or colons | |
214 | then the warning C<Deprecated character(s) in \\N{...} starting at '%s'> is | |
215 | now issued. | |
216 | ||
217 | =item * | |
218 | ||
875c5bf4 SH |
219 | The warning C<Using just the first characters returned by \N{}> will be |
220 | issued if the C<charnames> handler returns a sequence of characters which | |
221 | exceeds the limit of the number of characters that can be used. The message | |
222 | will indicate which characters were used and which were discarded. | |
223 | ||
224 | =item * | |
225 | ||
226 | Currently, all but the first of the several characters that the C<charnames> | |
227 | handler may return are discarded when used in a regular expression pattern | |
228 | bracketed character class. If this happens then the warning C<Using just the | |
229 | first character returned by \N{} in character class> will be issued. | |
230 | ||
231 | =item * | |
232 | ||
233 | The warning C<Missing right brace on \\N{} or unescaped left brace after \\N. | |
234 | Assuming the latter> will be issued if Perl encounters a C<\N{> but doesn't | |
235 | find a matching C<}>. In this case Perl doesn't know if it was mistakenly | |
236 | omitted, or if "match non-newline" followed by "match a C<{>" was desired. | |
237 | It assumes the latter because that is actually a valid interpretation as | |
238 | written, unlike the other case. If you meant the former, you need to add the | |
239 | matching right brace. If you did mean the latter, you can silence this | |
240 | warning by writing instead C<\N\{>. | |
241 | ||
242 | =item * | |
243 | ||
555dc087 SH |
244 | C<gmtime> and C<localtime> called with numbers smaller than they can reliably |
245 | handle will now issue the warnings C<gmtime(%.0f) too small> and | |
246 | C<localtime(%.0f) too small>. | |
3be84f1f RS |
247 | |
248 | =back | |
249 | ||
555dc087 | 250 | =head1 New Tests |
3be84f1f RS |
251 | |
252 | =over 4 | |
253 | ||
555dc087 | 254 | =item F<t/op/filehandle.t> |
3be84f1f | 255 | |
555dc087 SH |
256 | Tests some suitably portable filetest operators to check that they work as |
257 | expected, particularly in the light of some internal changes made in how | |
258 | filehandles are blessed. | |
3be84f1f | 259 | |
555dc087 | 260 | =item F<t/op/time_loop.t> |
3be84f1f | 261 | |
555dc087 SH |
262 | Tests that times greater than C<2**63>, which can now be handed to C<gmtime> |
263 | and C<localtime>, do not cause an internal overflow or an excessively long | |
264 | loop. | |
3be84f1f | 265 | |
555dc087 | 266 | =back |
3be84f1f | 267 | |
555dc087 | 268 | =head1 Known Problems |
3be84f1f | 269 | |
555dc087 SH |
270 | Perl 5.11.5 is a development release leading up to Perl 5.12.0. |
271 | Some notable known problems found in 5.11.5 are listed as dependencies | |
272 | of RT #69710, the Perl 5 version 12 meta-ticket. | |
3be84f1f RS |
273 | |
274 | =head1 Acknowledgements | |
275 | ||
555dc087 | 276 | Perl 5.11.5 represents approximately one month of development since |
b3289bd2 SH |
277 | Perl 5.11.4 and contains 9618 lines of changes across 151 files |
278 | from 33 authors and committers: | |
279 | ||
280 | E<AElig>var ArnfjE<ouml>rE<eth> Bjarmason, Abigail, brian d foy, Chris | |
281 | Williams, David Golden, David Mitchell, Eric Brine, Frank Wiegand, Gisle | |
282 | Aas, H.Merijn Brand, Jan Dubois, Jesse Vincent, Jim Cromie, John Peacock, | |
283 | Josh ben Jore, Karl Williamson, Marcus Holland-Moritz, Michael G Schwern, | |
284 | Nicholas Clark, Offer Kaye, Philippe Bruhat (BooK), Rafael Garcia-Suarez, | |
285 | Reini Urban, Ricardo Signes, Robin Barker, Slaven Rezic, Steffen Mueller, | |
286 | Steve Hay, Steve Peters, Tim Bunce, Todd Rinaldo, Tony Cook and | |
287 | Vincent Pit. | |
3be84f1f | 288 | |
555dc087 SH |
289 | Many of the changes included in this version originated in the CPAN |
290 | modules included in Perl's core. We're grateful to the entire CPAN | |
291 | community for helping Perl to flourish. | |
3be84f1f RS |
292 | |
293 | =head1 Reporting Bugs | |
294 | ||
295 | If you find what you think is a bug, you might check the articles | |
296 | recently posted to the comp.lang.perl.misc newsgroup and the perl | |
297 | bug database at http://rt.perl.org/perlbug/ . There may also be | |
298 | information at http://www.perl.org/ , the Perl Home Page. | |
299 | ||
300 | If you believe you have an unreported bug, please run the B<perlbug> | |
301 | program included with your release. Be sure to trim your bug down | |
302 | to a tiny but sufficient test case. Your bug report, along with the | |
303 | output of C<perl -V>, will be sent off to perlbug@perl.org to be | |
555dc087 | 304 | analyzed by the Perl porting team. |
3be84f1f RS |
305 | |
306 | If the bug you are reporting has security implications, which make it | |
307 | inappropriate to send to a publicly archived mailing list, then please send | |
308 | it to perl5-security-report@perl.org. This points to a closed subscription | |
309 | unarchived mailing list, which includes all the core committers, who be able | |
310 | to help assess the impact of issues, figure out a resolution, and help | |
311 | co-ordinate the release of patches to mitigate or fix the problem across all | |
312 | platforms on which Perl is supported. Please only use this address for | |
313 | security issues in the Perl core, not for modules independently | |
314 | distributed on CPAN. | |
315 | ||
316 | =head1 SEE ALSO | |
317 | ||
318 | The F<Changes> file for an explanation of how to view exhaustive details | |
319 | on what changed. | |
320 | ||
321 | The F<INSTALL> file for how to build Perl. | |
322 | ||
323 | The F<README> file for general stuff. | |
324 | ||
325 | The F<Artistic> and F<Copying> files for copyright information. | |
326 | ||
327 | =cut |