Commit | Line | Data |
e06a4ec4 |
1 | =head1 NAME |
2 | |
3 | perldelta - what is new for perl v5.11.4 |
4 | |
5 | =head1 DESCRIPTION |
6 | |
7 | This document describes differences between the 5.11.3 release and |
8 | the 5.11.4 release. |
9 | |
10 | If you are upgrading from an earlier release such as 5.11.2, first read |
11 | L<perl5113delta>, which describes differences between 5.11.2 and |
12 | 5.11.3. |
13 | |
e06a4ec4 |
14 | =head1 Incompatible Changes |
15 | |
91625400 |
16 | =head2 Version number formats |
17 | |
18 | Acceptable version number formats have been formalized into "strict" and |
19 | "lax" rules. C<package NAME VERSION> takes a strict version number. C<use |
20 | NAME VERSION> takes a lax version number. C<UNIVERSAL::VERSION> and the |
21 | L<version> object constructors take lax version numbers. Providing an |
22 | invalid version will result in a fatal error. |
23 | |
24 | These formats will be documented fully in the L<version> module in a |
25 | subsequent release of Perl 5.11. To a first approximation, a "strict" |
26 | version number is a positive decimal number (integer or decimal-fraction) |
27 | without exponentiation or else a dotted-decimal v-string with a leading 'v' |
28 | character and at least three components. A "lax" version number allows |
29 | v-strings with fewer than three components or without a leading 'v'. Under |
30 | "lax" rules, both decimal and dotted-decimal versions may have a trailing |
31 | "alpha" component separated by an underscore character after a fractional |
32 | or dotted-decimal component. |
33 | |
34 | The L<version> module adds C<version::is_strict> and C<version::is_lax> |
35 | functions to check a scalar against these rules. |
e06a4ec4 |
36 | |
37 | =head1 Core Enhancements |
38 | |
75080c80 |
39 | =head2 Unicode properties |
40 | |
41 | C<\p{XDigit}> now matches the same characters as C<\p{Hex_Digit}>. This |
42 | means that in addition to the characters it currently matches, |
43 | C<[A-Fa-f0-9]>, it will also match their fullwidth equivalent forms, for |
44 | example U+FF10: FULLWIDTH DIGIT ZERO. |
45 | |
e06a4ec4 |
46 | =head1 Modules and Pragmata |
47 | |
48 | XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> |
49 | go here. If Module::CoreList is updated, generate an initial draft of the |
50 | following sections using F<Porting/corelist-perldelta.pl>, which prints stub |
51 | entries to STDOUT. Results can be pasted in place of the '=head2' entries |
52 | below. A paragraph summary for important changes should then be added by hand. |
53 | In an ideal world, dual-life modules would have a F<Changes> file that could be |
54 | cribbed. |
55 | |
e06a4ec4 |
56 | =head2 Pragmata Changes |
57 | |
aac9cb74 |
58 | =over 4 |
e06a4ec4 |
59 | |
aac9cb74 |
60 | =item C<less> |
e06a4ec4 |
61 | |
aac9cb74 |
62 | Upgraded from version 0.03 to 0.03. |
e06a4ec4 |
63 | |
aac9cb74 |
64 | This version introduces the C<stash_name> method to allow subclasses of less to |
65 | pick where in %^H to store their stash. |
e06a4ec4 |
66 | |
aac9cb74 |
67 | =item C<version> |
e06a4ec4 |
68 | |
aac9cb74 |
69 | Upgraded from version 0.77 to 0.81. |
e06a4ec4 |
70 | |
aac9cb74 |
71 | This version adds support for L</Version number formats> as described earlier |
72 | in this document and in its own documentation. |
e06a4ec4 |
73 | |
aac9cb74 |
74 | =item C<warnings> |
75 | |
76 | Upgraded from version 1.08 to 1.09. |
e06a4ec4 |
77 | |
aac9cb74 |
78 | This version adds the C<illegalproto> warning category. See also L</New or |
79 | Changed Diagnostics> for this change. |
e06a4ec4 |
80 | |
aac9cb74 |
81 | =back |
82 | |
83 | =head2 Updated Modules |
e06a4ec4 |
84 | |
85 | =over 4 |
86 | |
aac9cb74 |
87 | =item C<Archive::Extract> |
e06a4ec4 |
88 | |
aac9cb74 |
89 | Upgraded from version 0.36 to 0.38. |
e06a4ec4 |
90 | |
aac9cb74 |
91 | =item C<B::Deparse> |
e06a4ec4 |
92 | |
aac9cb74 |
93 | Upgraded from version 0.93 to 0.94. |
e06a4ec4 |
94 | |
aac9cb74 |
95 | =item C<Compress::Raw::Bzip2> |
e06a4ec4 |
96 | |
aac9cb74 |
97 | Upgraded from version 2.021 to 2.024. |
e06a4ec4 |
98 | |
aac9cb74 |
99 | =item C<Compress::Raw::Zlib> |
e06a4ec4 |
100 | |
aac9cb74 |
101 | Upgraded from version 2.021 to 2.024. |
e06a4ec4 |
102 | |
aac9cb74 |
103 | =item C<CPAN> |
e06a4ec4 |
104 | |
aac9cb74 |
105 | Upgraded from version 1.94_5301 to 1.94_54. |
106 | |
107 | =item C<File::Fetch> |
108 | |
109 | Upgraded from version 0.22 to 0.24. |
110 | |
111 | =item C<Module::Build> |
e06a4ec4 |
112 | |
aac9cb74 |
113 | Upgraded from version 0.36 to 0.3603. |
114 | |
115 | =item C<Safe> |
116 | |
117 | Upgraded from version 2.20 to 2.21. |
118 | |
119 | Anonymous coderefs created in Safe containers no longer get bogus |
120 | arguments passed to them, fixing RT #72068. |
e06a4ec4 |
121 | |
122 | =back |
123 | |
aac9cb74 |
124 | =head2 Removed Modules and Pragmata |
e06a4ec4 |
125 | |
aac9cb74 |
126 | =over 4 |
e06a4ec4 |
127 | |
aac9cb74 |
128 | =item C<Devel::DProf::V> |
129 | |
130 | Removed from the Perl core. Prior version was 'undef'. |
e06a4ec4 |
131 | |
aac9cb74 |
132 | =back |
133 | |
134 | =head1 Changes to Existing Documentation |
135 | |
136 | A significant fraction of the core documentation has been updated to clarify |
137 | the behavior of Perl's Unicode handling. |
e06a4ec4 |
138 | |
aac9cb74 |
139 | Much of the remaining core documentation has been reviewed and edited |
140 | for clarity, consistent use of language, and to fix the spelling of Tom |
141 | Christiansen's name. |
e06a4ec4 |
142 | |
aac9cb74 |
143 | =head2 Configuration improvements |
144 | |
145 | USE_ATTRIBUTES_FOR_PERLIO is now reported in the compile-time options |
146 | listed by the C<-V> switch. |
e06a4ec4 |
147 | |
148 | =head2 Platform Specific Changes |
149 | |
150 | =over 4 |
151 | |
aac9cb74 |
152 | =item VMS |
e06a4ec4 |
153 | |
aac9cb74 |
154 | The default pipe buffer size on VMS has been updated to 8192 on 64-bit |
155 | systems. |
e06a4ec4 |
156 | |
157 | =back |
158 | |
159 | =head1 Selected Bug Fixes |
160 | |
161 | XXX Important bug fixes in the core language are summarised here. |
162 | Bug fixes in files in F<ext/> and F<lib/> are best summarised in |
163 | L</Modules and Pragmata>. |
164 | |
165 | =over 4 |
166 | |
167 | =item * |
168 | |
aac9cb74 |
169 | Tie::Hash::NamedCapture::* shouldn't abort if passed bad input (RT #71828) |
170 | |
171 | =item * |
172 | |
173 | @_ and $_ no longer leak under threads (RT #34342 and #41138, also |
174 | #70602, #70974) |
e06a4ec4 |
175 | |
176 | =back |
177 | |
178 | =head1 New or Changed Diagnostics |
179 | |
e06a4ec4 |
180 | =over 4 |
181 | |
cabbd591 |
182 | =item New warning category C<illegalproto> |
e06a4ec4 |
183 | |
cabbd591 |
184 | The two warnings : |
185 | |
186 | Illegal character in prototype for %s : %s |
187 | Prototype after '%c' for %s : %s |
188 | |
189 | have been moved from the C<syntax> top-level warnings category into a new |
190 | first-level category, C<illegalproto>. These two warnings are currently the |
191 | only ones emitted during parsing of an invalid/illegal prototype, so one |
192 | can now do |
193 | |
194 | no warnings 'illegalproto'; |
195 | |
196 | to suppress only those, but not other syntax-related warnings. Warnings where |
197 | prototypes are changed, ignored, or not met are still in the C<prototype> |
198 | category as before. (Matt S. Trout) |
e06a4ec4 |
199 | |
98adedef |
200 | =item lvalue attribute ignored after the subroutine has been defined |
201 | |
202 | This new warning is issued when one attempts to mark a subroutine as |
203 | lvalue after it has been defined. |
204 | |
e06a4ec4 |
205 | =back |
206 | |
207 | =head1 Changed Internals |
208 | |
e06a4ec4 |
209 | =over 4 |
210 | |
211 | =item * |
212 | |
aac9cb74 |
213 | Perl_magic_setmglob now knows about globs, fixing RT #71254. |
e06a4ec4 |
214 | |
215 | =back |
216 | |
217 | =head1 Known Problems |
218 | |
aac9cb74 |
219 | Perl 5.11.4 is a development release leading up to Perl 5.12.0. |
220 | Some notable known problems found in 5.11.4 are listed as dependencies |
221 | of RT #69710, the Perl 5 version 12 meta-ticket. |
e06a4ec4 |
222 | |
223 | =head1 Deprecations |
224 | |
e06a4ec4 |
225 | The following items are now deprecated. |
226 | |
227 | =over 4 |
228 | |
6f7a7d3e |
229 | =item C<< UNIVERSAL-E<gt>import() >> |
e06a4ec4 |
230 | |
aac9cb74 |
231 | The method C<< UNIVERSAL-E<gt>import() >> is now deprecated. Attempting to |
232 | pass import arguments to a C<use UNIVERSAL> statement will result in a |
233 | deprecation warning. (This is a less noisy version of the full deprecation |
234 | warning added in 5.11.0.) |
e06a4ec4 |
235 | |
236 | =back |
237 | |
e06a4ec4 |
238 | =head1 Acknowledgements |
239 | |
aac9cb74 |
240 | Perl 5.11.4 represents approximately one month of development since |
241 | Perl 5.11.3 and contains 17682 lines of changes across 318 files |
242 | from 40 authors and committers: |
243 | |
244 | Abigail, Andy Dougherty, brian d foy, Chris Williams, Craig A. Berry, |
245 | David Golden, David Mitchell, Father Chrysostomos, Gerard Goossen, |
246 | H.Merijn Brand, Jesse Vincent, Jim Cromie, Josh ben Jore, Karl |
247 | Williamson, kmx, Matt S Trout, Nicholas Clark, Niko Tyni, Paul Marquess, |
248 | Philip Hazel, Rafael Garcia-Suarez, Rainer Tammer, Reini Urban, Ricardo |
249 | Signes, Shlomi Fish, Tim Bunce, Todd Rinaldo, Tom Christiansen, Tony |
250 | Cook, Vincent Pit, and Zefram |
e06a4ec4 |
251 | |
aac9cb74 |
252 | Many of the changes included in this version originated in the CPAN |
253 | modules included in Perl's core. We're grateful to the entire CPAN |
254 | community for helping Perl to flourish. |
e06a4ec4 |
255 | |
256 | =head1 Reporting Bugs |
257 | |
258 | If you find what you think is a bug, you might check the articles |
259 | recently posted to the comp.lang.perl.misc newsgroup and the perl |
aac9cb74 |
260 | bug database at L<http://rt.perl.org/perlbug/>. There may also be |
261 | information at L<http://www.perl.org/>, the Perl Home Page. |
e06a4ec4 |
262 | |
263 | If you believe you have an unreported bug, please run the B<perlbug> |
264 | program included with your release. Be sure to trim your bug down |
265 | to a tiny but sufficient test case. Your bug report, along with the |
266 | output of C<perl -V>, will be sent off to perlbug@perl.org to be |
267 | analysed by the Perl porting team. |
268 | |
269 | If the bug you are reporting has security implications, which make it |
270 | inappropriate to send to a publicly archived mailing list, then please send |
271 | it to perl5-security-report@perl.org. This points to a closed subscription |
272 | unarchived mailing list, which includes all the core committers, who be able |
273 | to help assess the impact of issues, figure out a resolution, and help |
274 | co-ordinate the release of patches to mitigate or fix the problem across all |
275 | platforms on which Perl is supported. Please only use this address for |
276 | security issues in the Perl core, not for modules independently |
277 | distributed on CPAN. |
278 | |
279 | =head1 SEE ALSO |
280 | |
281 | The F<Changes> file for an explanation of how to view exhaustive details |
282 | on what changed. |
283 | |
284 | The F<INSTALL> file for how to build Perl. |
285 | |
286 | The F<README> file for general stuff. |
287 | |
288 | The F<Artistic> and F<Copying> files for copyright information. |
289 | |
290 | =cut |