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