This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
c05531b6d0b1e272d46944f1a24b168805b40f3e
[perl5.git] / pod / perl5115delta.pod
1 =head1 NAME
2
3 perldelta - what is new for perl v5.11.5
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
14 =head1 Core Enhancements
15
16 =head2 32-bit limit on substr arguments removed
17
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.
21
22 =head1 Modules and Pragmata
23
24 =head2 Pragmata Changes
25
26 =over 4
27
28 =item C<version>
29
30 Upgraded from version 0.81 to 0.82.
31
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.
34
35 Undefined 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<CPAN>
44
45 Upgraded from version 1.94_53 to 1.94_56.
46
47 This module is also now built in a less specialized way, which resolves a
48 problem that caused C<make> after C<make clean> to fail, fixing RT #72218.
49
50 =item C<CPANPLUS::Dist::Build>
51
52 Upgraded from version 0.44 to 0.46.
53
54 =item C<Safe>
55
56 Upgraded from version 2.21 to 2.22.
57
58 This resolves RT #72700, in which an exception thrown from a closure was
59 getting lost.
60
61 =item C<Socket>
62
63 Upgraded from version 1.85 to 1.86.
64
65 This makes the new Socket implementation of C<inet_pton> consistent with the
66 existing Socket6 implementation of C<inet_pton>, fixing RT #72884.
67
68 =item C<podlators>
69
70 Upgraded from version 2.2.2 to 2.3.1.
71
72 =back
73
74 =head1 Changes to Existing Documentation
75
76 The syntax C<unless (EXPR) BLOCK else BLOCK> is now documented as valid, as
77 is the syntax C<unless (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK>,
78 although actually using the latter may not be the best idea for the
79 readability of your source code.
80
81 =head1 Installation and Configuration Improvements
82
83 =head2 Configuration improvements
84
85 Support for SystemTap's C<dtrace> compatibility layer has been added and an
86 issue with linking C<miniperl> has been fixed in the process.
87
88 C<less -R> is now used instead of C<less> for C<groff>'s new usage of ANSI
89 escape codes by setting C<$Config{less}> (and thereby C<$Config{pager}>,
90 which fixes RT #72156.
91
92 USE_PERL_ATOF is now reported in the compile-time options listed by the C<-V>
93 switch.
94
95 =head1 Selected Bug Fixes
96
97 =over 4
98
99 =item *
100
101 Arbitrary whitespace is now allowed between C<NAME> and C<VERSION> in
102 C<package NAME VERSION;> statements. (Fixes RT #72432)
103
104 =item *
105
106 A panic caused by trying to load C<charnames> when the parser is already in
107 error (e.g. by a missing C<my> under C<use strict;>) is now averted. This
108 was a regression since Perl 5.10.0. (Fixes RT #72590)
109
110 =item *
111
112 Reading C<$!> no longer causes a SEGV for out of range C<errno> values. (Fixes
113 RT #72850)
114
115 =item *
116
117 A possible SEGV in C</\N{...}/> has been fixed. This was a regression since
118 Perl 5.10.
119
120 =item *
121
122 A possible SEGV when freeing a scalar that was upgraded to an C<SVt_REGEXP>
123 type from a simple(r) scalar has been fixed.
124
125 =item *
126
127 A type conversion bug in C<gmtime64> that caused it to break around C<2**48>
128 has been fixed.
129
130 =item *
131
132 Interpolating a regex that makes use of the C<charnames> pragma will no longer
133 cause a run-time error. (Fixes RT #56444)
134
135 =item *
136
137 Array references assigned to C<*Foo::ISA> now have the necessary magic added
138 to them to catch any further updates to the new C<@ISA>. (Fixes RT #72866)
139
140 =item *
141
142 Filehandles are now always blessed into C<IO::File>, which, together with
143 some suitable manipulation of C<@IO::File::ISA>, fixes a breakage introduced
144 in Perl 5.11.3 by a change that always blessed filehandles into C<IO::Handle>
145 rather than checking for C<FileHandle> first.
146
147 =item *
148
149 A change in the behaviour of C<warnings::enabled> and C<warnings::warnif> in
150 Perl 5.10.0 that wasn't documented at the time is now documented in
151 L<perl5100delta>. (Fixes RT #62522)
152
153 =item *
154
155 RT #71504 is now fixed by simply skipping the tests that failed on OpenBSD
156 with ithreads and perlio.
157
158 =back
159
160 =head1 New or Changed Diagnostics
161
162 =over 4
163
164 =item *
165
166 C<gmtime> and C<localtime> called with numbers smaller than they can reliably
167 handle will now issue the warnings C<gmtime(%.0f) too small> and
168 C<localtime(%.0f) too small>.
169
170 =back
171
172 =head1 New Tests
173
174 =over 4
175
176 =item F<t/op/filehandle.t>
177
178 Tests some suitably portable filetest operators to check that they work as
179 expected, particularly in the light of some internal changes made in how
180 filehandles are blessed.
181
182 =item F<t/op/time_loop.t>
183
184 Tests that times greater than C<2**63>, which can now be handed to C<gmtime>
185 and C<localtime>, do not cause an internal overflow or an excessively long
186 loop.
187
188 =back
189
190 =head1 Known Problems
191
192 Perl 5.11.5 is a development release leading up to Perl 5.12.0.
193 Some notable known problems found in 5.11.5 are listed as dependencies
194 of RT #69710, the Perl 5 version 12 meta-ticket.
195
196 =head1 Acknowledgements
197
198 Perl 5.11.5 represents approximately one month of development since
199 Perl 5.11.4 and contains XXX lines of changes across XXX files
200 from XXX authors and committers:
201
202 XXX The list of people to thank goes here.
203
204 Many of the changes included in this version originated in the CPAN
205 modules included in Perl's core. We're grateful to the entire CPAN
206 community for helping Perl to flourish.
207
208 =head1 Reporting Bugs
209
210 If you find what you think is a bug, you might check the articles
211 recently posted to the comp.lang.perl.misc newsgroup and the perl
212 bug database at http://rt.perl.org/perlbug/ .  There may also be
213 information at http://www.perl.org/ , the Perl Home Page.
214
215 If you believe you have an unreported bug, please run the B<perlbug>
216 program included with your release.  Be sure to trim your bug down
217 to a tiny but sufficient test case.  Your bug report, along with the
218 output of C<perl -V>, will be sent off to perlbug@perl.org to be
219 analyzed by the Perl porting team.
220
221 If the bug you are reporting has security implications, which make it
222 inappropriate to send to a publicly archived mailing list, then please send
223 it to perl5-security-report@perl.org. This points to a closed subscription
224 unarchived mailing list, which includes all the core committers, who be able
225 to help assess the impact of issues, figure out a resolution, and help
226 co-ordinate the release of patches to mitigate or fix the problem across all
227 platforms on which Perl is supported. Please only use this address for
228 security issues in the Perl core, not for modules independently
229 distributed on CPAN.
230
231 =head1 SEE ALSO
232
233 The F<Changes> file for an explanation of how to view exhaustive details
234 on what changed.
235
236 The F<INSTALL> file for how to build Perl.
237
238 The F<README> file for general stuff.
239
240 The F<Artistic> and F<Copying> files for copyright information.
241
242 =cut