This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update perl5115delta.pod with new diagnostics
[perl5.git] / pod / perl5115delta.pod
CommitLineData
3be84f1f
RS
1=head1 NAME
2
3be84f1f
RS
3perldelta - what is new for perl v5.11.5
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
555dc087 43=item C<CPAN>
3be84f1f 44
a4cc9611 45Upgraded from version 1.94_53 to 1.94_56.
3be84f1f 46
555dc087
SH
47This module is also now built in a less specialized way, which resolves a
48problem that caused C<make> after C<make clean> to fail, fixing RT #72218.
3be84f1f 49
555dc087 50=item C<CPANPLUS::Dist::Build>
3be84f1f 51
555dc087 52Upgraded from version 0.44 to 0.46.
3be84f1f 53
555dc087 54=item C<Safe>
3be84f1f 55
555dc087 56Upgraded from version 2.21 to 2.22.
3be84f1f 57
555dc087
SH
58This resolves RT #72700, in which an exception thrown from a closure was
59getting lost.
3be84f1f 60
a4cc9611
SH
61=item C<Socket>
62
63Upgraded from version 1.85 to 1.86.
64
65This makes the new Socket implementation of C<inet_pton> consistent with the
66existing Socket6 implementation of C<inet_pton>, fixing RT #72884.
67
555dc087 68=item C<podlators>
3be84f1f 69
4d522957 70Upgraded from version 2.2.2 to 2.3.1.
3be84f1f
RS
71
72=back
73
555dc087 74=head1 Changes to Existing Documentation
3be84f1f 75
555dc087
SH
76The syntax C<unless (EXPR) BLOCK else BLOCK> is now documented as valid, as
77is the syntax C<unless (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK>,
78although actually using the latter may not be the best idea for the
79readability of your source code.
3be84f1f 80
555dc087 81=head1 Installation and Configuration Improvements
3be84f1f 82
555dc087 83=head2 Configuration improvements
3be84f1f 84
555dc087
SH
85Support for SystemTap's C<dtrace> compatibility layer has been added and an
86issue with linking C<miniperl> has been fixed in the process.
3be84f1f 87
555dc087
SH
88C<less -R> is now used instead of C<less> for C<groff>'s new usage of ANSI
89escape codes by setting C<$Config{less}> (and thereby C<$Config{pager}>,
90which fixes RT #72156.
3be84f1f 91
555dc087
SH
92USE_PERL_ATOF is now reported in the compile-time options listed by the C<-V>
93switch.
3be84f1f
RS
94
95=head1 Selected Bug Fixes
96
3be84f1f
RS
97=over 4
98
99=item *
100
555dc087
SH
101Arbitrary whitespace is now allowed between C<NAME> and C<VERSION> in
102C<package NAME VERSION;> statements. (Fixes RT #72432)
3be84f1f 103
555dc087 104=item *
3be84f1f 105
555dc087
SH
106A panic caused by trying to load C<charnames> when the parser is already in
107error (e.g. by a missing C<my> under C<use strict;>) is now averted. This
108was a regression since Perl 5.10.0. (Fixes RT #72590)
3be84f1f 109
555dc087 110=item *
3be84f1f 111
ca127710
SH
112Reading C<$!> no longer causes a SEGV for out of range C<errno> values. (Fixes
113RT #72850)
114
115=item *
116
555dc087
SH
117A possible SEGV in C</\N{...}/> has been fixed. This was a regression since
118Perl 5.10.
3be84f1f 119
555dc087 120=item *
3be84f1f 121
555dc087
SH
122A possible SEGV when freeing a scalar that was upgraded to an C<SVt_REGEXP>
123type from a simple(r) scalar has been fixed.
3be84f1f
RS
124
125=item *
126
555dc087
SH
127A type conversion bug in C<gmtime64> that caused it to break around C<2**48>
128has been fixed.
3be84f1f 129
555dc087 130=item *
3be84f1f 131
e6a8543a
SH
132Interpolating a regex that makes use of the C<charnames> pragma will no longer
133cause a run-time error. (Fixes RT #56444)
134
135=item *
136
137Array references assigned to C<*Foo::ISA> now have the necessary magic added
138to them to catch any further updates to the new C<@ISA>. (Fixes RT #72866)
139
140=item *
141
555dc087
SH
142Filehandles are now always blessed into C<IO::File>, which, together with
143some suitable manipulation of C<@IO::File::ISA>, fixes a breakage introduced
144in Perl 5.11.3 by a change that always blessed filehandles into C<IO::Handle>
145rather than checking for C<FileHandle> first.
3be84f1f 146
555dc087 147=item *
3be84f1f 148
ca127710
SH
149A change in the behaviour of C<warnings::enabled> and C<warnings::warnif> in
150Perl 5.10.0 that wasn't documented at the time is now documented in
151L<perl5100delta>. (Fixes RT #62522)
3be84f1f 152
555dc087 153=item *
3be84f1f 154
555dc087
SH
155RT #71504 is now fixed by simply skipping the tests that failed on OpenBSD
156with ithreads and perlio.
3be84f1f
RS
157
158=back
159
555dc087 160=head1 New or Changed Diagnostics
3be84f1f
RS
161
162=over 4
163
164=item *
165
875c5bf4
SH
166The fatal error C<Malformed UTF-8 returned by \N> is now produced if the
167C<charnames> handler returns malformed UTF-8.
168
169=item *
170
171If an unresolved named character or sequence was encountered when compiling a
172regex pattern then the fatal error C<\\N{NAME} must be resolved by the lexer>
173is now produced. This can happen, for example, when using a single-quotish
174context like C<$re = '\N{SPACE}'; $re;>. See L<perldiag> for more examples of
175how the lexer can get bypassed.
176
177=item *
178
179The fatal error C<Invalid hexadecimal number in \\N{U+...}> will be produced
180if the character constant represented by C<...> is not a valid hexadecimal
181number.
182
183=item *
184
185The new meaning of C<\N> as C<[^\n]> is not valid in a bracketed character
186class, just like C<.> in a character class loses its special meaning, and will
187cause the fatal error C<\\N in a character class must be a named character:
188\\N{...}>.
189
190=item *
191
192The warning C<Using just the first characters returned by \N{}> will be
193issued if the C<charnames> handler returns a sequence of characters which
194exceeds the limit of the number of characters that can be used. The message
195will indicate which characters were used and which were discarded.
196
197=item *
198
199Currently, all but the first of the several characters that the C<charnames>
200handler may return are discarded when used in a regular expression pattern
201bracketed character class. If this happens then the warning C<Using just the
202first character returned by \N{} in character class> will be issued.
203
204=item *
205
206The warning C<Missing right brace on \\N{} or unescaped left brace after \\N.
207Assuming the latter> will be issued if Perl encounters a C<\N{> but doesn't
208find a matching C<}>. In this case Perl doesn't know if it was mistakenly
209omitted, or if "match non-newline" followed by "match a C<{>" was desired.
210It assumes the latter because that is actually a valid interpretation as
211written, unlike the other case. If you meant the former, you need to add the
212matching right brace. If you did mean the latter, you can silence this
213warning by writing instead C<\N\{>.
214
215=item *
216
555dc087
SH
217C<gmtime> and C<localtime> called with numbers smaller than they can reliably
218handle will now issue the warnings C<gmtime(%.0f) too small> and
219C<localtime(%.0f) too small>.
3be84f1f
RS
220
221=back
222
555dc087 223=head1 New Tests
3be84f1f
RS
224
225=over 4
226
555dc087 227=item F<t/op/filehandle.t>
3be84f1f 228
555dc087
SH
229Tests some suitably portable filetest operators to check that they work as
230expected, particularly in the light of some internal changes made in how
231filehandles are blessed.
3be84f1f 232
555dc087 233=item F<t/op/time_loop.t>
3be84f1f 234
555dc087
SH
235Tests that times greater than C<2**63>, which can now be handed to C<gmtime>
236and C<localtime>, do not cause an internal overflow or an excessively long
237loop.
3be84f1f 238
555dc087 239=back
3be84f1f 240
555dc087 241=head1 Known Problems
3be84f1f 242
555dc087
SH
243Perl 5.11.5 is a development release leading up to Perl 5.12.0.
244Some notable known problems found in 5.11.5 are listed as dependencies
245of RT #69710, the Perl 5 version 12 meta-ticket.
3be84f1f
RS
246
247=head1 Acknowledgements
248
555dc087
SH
249Perl 5.11.5 represents approximately one month of development since
250Perl 5.11.4 and contains XXX lines of changes across XXX files
251from XXX authors and committers:
252
3be84f1f
RS
253XXX The list of people to thank goes here.
254
555dc087
SH
255Many of the changes included in this version originated in the CPAN
256modules included in Perl's core. We're grateful to the entire CPAN
257community for helping Perl to flourish.
3be84f1f
RS
258
259=head1 Reporting Bugs
260
261If you find what you think is a bug, you might check the articles
262recently posted to the comp.lang.perl.misc newsgroup and the perl
263bug database at http://rt.perl.org/perlbug/ . There may also be
264information at http://www.perl.org/ , the Perl Home Page.
265
266If you believe you have an unreported bug, please run the B<perlbug>
267program included with your release. Be sure to trim your bug down
268to a tiny but sufficient test case. Your bug report, along with the
269output of C<perl -V>, will be sent off to perlbug@perl.org to be
555dc087 270analyzed by the Perl porting team.
3be84f1f
RS
271
272If the bug you are reporting has security implications, which make it
273inappropriate to send to a publicly archived mailing list, then please send
274it to perl5-security-report@perl.org. This points to a closed subscription
275unarchived mailing list, which includes all the core committers, who be able
276to help assess the impact of issues, figure out a resolution, and help
277co-ordinate the release of patches to mitigate or fix the problem across all
278platforms on which Perl is supported. Please only use this address for
279security issues in the Perl core, not for modules independently
280distributed on CPAN.
281
282=head1 SEE ALSO
283
284The F<Changes> file for an explanation of how to view exhaustive details
285on what changed.
286
287The F<INSTALL> file for how to build Perl.
288
289The F<README> file for general stuff.
290
291The F<Artistic> and F<Copying> files for copyright information.
292
293=cut