Commit | Line | Data |
3be84f1f |
1 | =head1 NAME |
2 | |
655da5cf |
3 | perl5115delta - what is new for perl v5.11.5 |
3be84f1f |
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 |
14 | =head1 Core Enhancements |
15 | |
555dc087 |
16 | =head2 32-bit limit on substr arguments removed |
3be84f1f |
17 | |
555dc087 |
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 |
21 | |
22 | =head1 Modules and Pragmata |
23 | |
3be84f1f |
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 |
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 |
36 | |
37 | =back |
38 | |
555dc087 |
39 | =head2 Updated Modules |
3be84f1f |
40 | |
41 | =over 4 |
42 | |
9b49dc40 |
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 |
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 |
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 |
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 |
77 | This resolves RT #72700, in which an exception thrown from a closure was |
78 | getting lost. |
3be84f1f |
79 | |
a4cc9611 |
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 |
90 | |
91 | =back |
92 | |
555dc087 |
93 | =head1 Changes to Existing Documentation |
3be84f1f |
94 | |
555dc087 |
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 |
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 |
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 |
111 | USE_PERL_ATOF is now reported in the compile-time options listed by the C<-V> |
112 | switch. |
3be84f1f |
113 | |
114 | =head1 Selected Bug Fixes |
115 | |
3be84f1f |
116 | =over 4 |
117 | |
118 | =item * |
119 | |
555dc087 |
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 |
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 |
131 | Reading C<$!> no longer causes a SEGV for out of range C<errno> values. (Fixes |
132 | RT #72850) |
133 | |
134 | =item * |
135 | |
555dc087 |
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 |
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 |
143 | |
144 | =item * |
145 | |
555dc087 |
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 |
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 |
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 |
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 |
174 | RT #71504 is now fixed by simply skipping the tests that failed on OpenBSD |
175 | with ithreads and perlio. |
3be84f1f |
176 | |
177 | =back |
178 | |
555dc087 |
179 | =head1 New or Changed Diagnostics |
3be84f1f |
180 | |
181 | =over 4 |
182 | |
183 | =item * |
184 | |
875c5bf4 |
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 |
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 |
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 |
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 |
247 | |
248 | =back |
249 | |
555dc087 |
250 | =head1 New Tests |
3be84f1f |
251 | |
252 | =over 4 |
253 | |
555dc087 |
254 | =item F<t/op/filehandle.t> |
3be84f1f |
255 | |
555dc087 |
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 |
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 |
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 |
273 | |
274 | =head1 Acknowledgements |
275 | |
555dc087 |
276 | Perl 5.11.5 represents approximately one month of development since |
b3289bd2 |
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 |
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 |
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 |
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 |