This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perlfunc: List all prototypes for lstat
[perl5.git] / pod / perl5115delta.pod
... / ...
CommitLineData
1=head1 NAME
2
3perl5115delta - 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
14=head1 Core Enhancements
15
16=head2 32-bit limit on substr arguments removed
17
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.
21
22=head1 Modules and Pragmata
23
24=head2 Pragmata Changes
25
26=over 4
27
28=item C<version>
29
30Upgraded from version 0.81 to 0.82.
31
32The C<is_lax> and C<is_strict> functions can now be optionally exported to the
33caller's namespace and are also now documented.
34
35Undefined version objects are now uninitialized with zero rather than C<undef>.
36
37=back
38
39=head2 Updated Modules
40
41=over 4
42
43=item C<B::Debug>
44
45Upgraded from version 1.11 to 1.12.
46
47=item C<CPAN>
48
49Upgraded from version 1.94_53 to 1.94_56.
50
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
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.
57
58=item C<CPANPLUS::Dist::Build>
59
60Upgraded from version 0.44 to 0.46.
61
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
73=item C<Safe>
74
75Upgraded from version 2.21 to 2.22.
76
77This resolves RT #72700, in which an exception thrown from a closure was
78getting lost.
79
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
87=item C<podlators>
88
89Upgraded from version 2.2.2 to 2.3.1.
90
91=back
92
93=head1 Changes to Existing Documentation
94
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.
99
100=head1 Installation and Configuration Improvements
101
102=head2 Configuration improvements
103
104Support for SystemTap's C<dtrace> compatibility layer has been added and an
105issue with linking C<miniperl> has been fixed in the process.
106
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.
110
111USE_PERL_ATOF is now reported in the compile-time options listed by the C<-V>
112switch.
113
114=head1 Selected Bug Fixes
115
116=over 4
117
118=item *
119
120Arbitrary whitespace is now allowed between C<NAME> and C<VERSION> in
121C<package NAME VERSION;> statements. (Fixes RT #72432)
122
123=item *
124
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)
128
129=item *
130
131Reading C<$!> no longer causes a SEGV for out of range C<errno> values. (Fixes
132RT #72850)
133
134=item *
135
136A possible SEGV in C</\N{...}/> has been fixed. This was a regression since
137Perl 5.10.
138
139=item *
140
141A possible SEGV when freeing a scalar that was upgraded to an C<SVt_REGEXP>
142type from a simple(r) scalar has been fixed.
143
144=item *
145
146A type conversion bug in C<gmtime64> that caused it to break around C<2**48>
147has been fixed.
148
149=item *
150
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
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.
165
166=item *
167
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)
171
172=item *
173
174RT #71504 is now fixed by simply skipping the tests that failed on OpenBSD
175with ithreads and perlio.
176
177=back
178
179=head1 New or Changed Diagnostics
180
181=over 4
182
183=item *
184
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
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
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
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>.
247
248=back
249
250=head1 New Tests
251
252=over 4
253
254=item F<t/op/filehandle.t>
255
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.
259
260=item F<t/op/time_loop.t>
261
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.
265
266=back
267
268=head1 Known Problems
269
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.
273
274=head1 Acknowledgements
275
276Perl 5.11.5 represents approximately one month of development since
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.
288
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.
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
304analyzed by the Perl porting team.
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
310all the core committers, who will be able
311to help assess the impact of issues, figure out a resolution, and help
312co-ordinate the release of patches to mitigate or fix the problem across all
313platforms on which Perl is supported. Please only use this address for
314security issues in the Perl core, not for modules independently
315distributed on CPAN.
316
317=head1 SEE ALSO
318
319The F<Changes> file for an explanation of how to view exhaustive details
320on what changed.
321
322The F<INSTALL> file for how to build Perl.
323
324The F<README> file for general stuff.
325
326The F<Artistic> and F<Copying> files for copyright information.
327
328=cut