Commit | Line | Data |
9a7a3243 |
1 | =head1 NAME |
2 | |
d5114285 |
3 | perl5111delta - what is new for perl v5.11.1 |
9a7a3243 |
4 | |
5 | =head1 DESCRIPTION |
6 | |
7 | This document describes differences between the 5.11.0 release and |
8 | the 5.11.1 release. |
9 | |
9a7a3243 |
10 | =head1 Incompatible Changes |
11 | |
8f3d5996 |
12 | =over |
9a7a3243 |
13 | |
79801d6a |
14 | =item * |
15 | |
16 | The boolkeys op moved to the group of hash ops. This breaks binary compatibility. |
9a7a3243 |
17 | |
79801d6a |
18 | =item * |
19 | |
20 | C<\s> C<\w> and C<\d> once again have the semantics they had in Perl 5.8.x. |
9bf23bab |
21 | |
22 | |
8f3d5996 |
23 | =back |
24 | |
9a7a3243 |
25 | =head1 Core Enhancements |
26 | |
8f3d5996 |
27 | =head2 Add C<package NAME VERSION> syntax |
28 | |
efbe0a44 |
29 | This new syntax allows a module author to set the $VERSION of a namespace |
30 | when the namespace is declared with 'package'. It eliminates the need |
31 | for C<our $VERSION = ...> and similar constructs. E.g. |
8f3d5996 |
32 | |
33 | package Foo::Bar 1.23; |
34 | # $Foo::Bar::VERSION == 1.23 |
9a7a3243 |
35 | |
efbe0a44 |
36 | There are several advantages to this: |
8f3d5996 |
37 | |
32619a1d |
38 | =over |
39 | |
efbe0a44 |
40 | =item * |
8f3d5996 |
41 | |
efbe0a44 |
42 | C<$VERSION> is parsed in I<exactly> the same way as C<use NAME VERSION> |
8f3d5996 |
43 | |
efbe0a44 |
44 | =item * |
8f3d5996 |
45 | |
efbe0a44 |
46 | C<$VERSION> is set at compile time |
8f3d5996 |
47 | |
efbe0a44 |
48 | =item * |
8f3d5996 |
49 | |
efbe0a44 |
50 | Eliminates C<$VERSION = ...> and C<eval $VERSION> clutter |
8f3d5996 |
51 | |
efbe0a44 |
52 | =item * |
8f3d5996 |
53 | |
efbe0a44 |
54 | As it requires VERSION to be a numeric literal or v-string |
55 | literal, it can be statically parsed by toolchain modules |
32619a1d |
56 | without C<eval> the way MM-E<gt>parse_version does for C<$VERSION = ...> |
8f3d5996 |
57 | |
efbe0a44 |
58 | =item * |
8f3d5996 |
59 | |
efbe0a44 |
60 | Alpha versions with underscores do not need to be quoted; static |
61 | parsing will preserve the underscore, but during compilation, Perl |
62 | will remove underscores as it does for all numeric literals |
9a7a3243 |
63 | |
70ec4673 |
64 | It does not break old code with only C<package NAME>, but code that uses |
65 | C<package NAME VERSION> will need to be restricted to perl 5.11.X or newer |
66 | This is analogous to the change to C<open> from two-args to three-args. |
efbe0a44 |
67 | Users requiring the latest Perl will benefit, and perhaps N years from |
68 | now it will become standard practice when Perl 5.12 is targeted the way |
69 | that 5.6 is today. |
9a7a3243 |
70 | |
32619a1d |
71 | =back |
72 | |
9a7a3243 |
73 | =head1 Modules and Pragmata |
74 | |
90b948c5 |
75 | =head2 Updated Modules |
76 | |
8f3d5996 |
77 | =over 4 |
78 | |
79801d6a |
79 | =item * |
8f3d5996 |
80 | |
79801d6a |
81 | Upgrade to Test-Simple 0.94 |
8f3d5996 |
82 | |
79801d6a |
83 | =item * |
8f3d5996 |
84 | |
79801d6a |
85 | Upgrade to Storable 2.21 |
8f3d5996 |
86 | |
79801d6a |
87 | =item * |
8f3d5996 |
88 | |
79801d6a |
89 | Upgrade to Pod-Simple 3.08 |
8f3d5996 |
90 | |
79801d6a |
91 | =item * |
8f3d5996 |
92 | |
79801d6a |
93 | Upgrade to Parse-CPAN-Meta 1.40 |
8f3d5996 |
94 | |
79801d6a |
95 | =item * |
8f3d5996 |
96 | |
79801d6a |
97 | Upgrade to ExtUtils-Manifest 1.57 |
8f3d5996 |
98 | |
79801d6a |
99 | =item * |
100 | |
101 | Upgrade to ExtUtils-CBuilder 0.260301 |
102 | |
103 | =item * |
8f3d5996 |
104 | |
79801d6a |
105 | Upgrade to CGI.pm-3.48 |
8f3d5996 |
106 | |
79801d6a |
107 | =item * |
108 | |
109 | Upgrade CPANPLUS to CPAN version 0.89_02 |
110 | |
111 | =item * |
112 | |
113 | Upgrade to threads::shared 1.32 |
114 | |
115 | =item * |
116 | |
117 | Upgrade ExtUtils::ParseXS to 2.21 |
118 | |
119 | =item * |
120 | |
121 | Upgrade File::Path to 2.08 (and add taint.t test) |
122 | |
123 | =item * |
124 | |
125 | Upgrade Module::CoreList to 2.20 |
126 | |
127 | =item * |
128 | |
129 | Updated Object::Accessor to0.36 |
8f3d5996 |
130 | |
131 | =back |
9a7a3243 |
132 | |
9a7a3243 |
133 | =head1 New Documentation |
134 | |
9a7a3243 |
135 | =over 4 |
136 | |
d408791f |
137 | =item * |
138 | |
139 | L<perlpolicy> extends the "Social contract about contributed modules" into |
140 | the beginnings of a document on Perl porting policies. |
9a7a3243 |
141 | |
142 | =back |
143 | |
144 | =head1 Changes to Existing Documentation |
145 | |
8f3d5996 |
146 | =over |
147 | |
148 | =item Documentation for C<$1> in perlvar.pod clarified |
9a7a3243 |
149 | |
8f3d5996 |
150 | =back |
9a7a3243 |
151 | |
152 | =head1 Performance Enhancements |
153 | |
9a7a3243 |
154 | =over 4 |
155 | |
8f3d5996 |
156 | =item C<if (%foo)> has been optimized to be faster than C<if (keys %foo)> |
9a7a3243 |
157 | |
9a7a3243 |
158 | =back |
159 | |
efbe0a44 |
160 | =head1 Platform Specific Notes |
9a7a3243 |
161 | |
162 | =over 4 |
163 | |
8f3d5996 |
164 | =item Darwin (Mac OS X) |
165 | |
166 | =over 4 |
167 | |
79801d6a |
168 | =item * |
169 | |
170 | Skip testing the be_BY.CP1131 locale on Darwin 10 (Mac OS X 10.6), |
8f3d5996 |
171 | as it's still buggy. |
172 | |
79801d6a |
173 | =item * |
174 | |
175 | Correct infelicities in the regexp used to identify buggy locales |
8f3d5996 |
176 | on Darwin 8 and 9 (Mac OS X 10.4 and 10.5, respectively). |
177 | |
178 | =back |
179 | |
180 | =item DragonFly BSD |
181 | |
182 | =over 4 |
183 | |
79801d6a |
184 | =item * |
185 | |
186 | Fix thread library selection [perl #69686] |
8f3d5996 |
187 | |
188 | =back |
189 | |
190 | =item Win32 |
191 | |
192 | =over 4 |
193 | |
79801d6a |
194 | =item * |
8f3d5996 |
195 | |
79801d6a |
196 | Initial support for mingw64 is now available |
197 | |
198 | =item * |
199 | |
200 | Various bits of Perl's build infrastructure are no longer converted to win32 line endings at release time. If this hurts you, please speak up. |
32619a1d |
201 | |
8f3d5996 |
202 | =back |
9a7a3243 |
203 | |
9a7a3243 |
204 | |
205 | =back |
206 | |
207 | =head1 Selected Bug Fixes |
208 | |
9a7a3243 |
209 | =over 4 |
210 | |
79801d6a |
211 | =item * |
212 | |
213 | Perl now properly returns a syntax error instead of segfaulting |
8f3d5996 |
214 | if C<each>, C<keys> or C<values> is used without an argument |
9a7a3243 |
215 | |
79801d6a |
216 | =item * |
217 | |
218 | C<tell()> now fails properly if called without an argument and when no previous file was read |
8f3d5996 |
219 | |
220 | C<tell()> now returns C<-1>, and sets errno to C<EBADF>, thus restoring the 5.8.x behaviour |
221 | |
79801d6a |
222 | =item * |
223 | |
224 | overload no longer implicitly unsets fallback on repeated 'use overload' lines |
9a7a3243 |
225 | |
79801d6a |
226 | =item * |
227 | |
228 | POSIX::strftime() can now handle Unicode characters in the format string. |
229 | |
230 | =item * |
90b948c5 |
231 | |
79801d6a |
232 | The Windows select() implementation now supports all empty C<fd_set>s more correctly. |
90b948c5 |
233 | |
9a7a3243 |
234 | =back |
235 | |
236 | =head1 New or Changed Diagnostics |
237 | |
9a7a3243 |
238 | =over 4 |
239 | |
9a7a3243 |
240 | |
79801d6a |
241 | =item * |
242 | |
243 | The 'syntax' category was removed from 5 warnings that should only be in 'deprecated'. |
244 | |
245 | =item * |
8f3d5996 |
246 | |
79801d6a |
247 | Three fatal pack/unpack error messages have been normalized to "panic: %s" |
8f3d5996 |
248 | |
79801d6a |
249 | =item * |
250 | |
251 | "Unicode character is illegal" has been rephrased to be more accurate |
8f3d5996 |
252 | |
253 | It now reads C<Unicode non-character is illegal in interchange> and the |
254 | perldiag documentation has been expanded a bit. |
255 | |
79801d6a |
256 | =item * |
257 | |
258 | Perl now defaults to issuing a warning if a deprecated language feature is used. |
8f3d5996 |
259 | |
260 | To disable this feature in a given lexical scope, you should use C<no |
261 | warnings 'deprecated';> For information about which language features |
262 | are deprecated and explanations of various deprecation warnings, please |
263 | see L<perldiag.pod> |
9a7a3243 |
264 | |
265 | =back |
266 | |
6609e040 |
267 | =head1 Testing |
9a7a3243 |
268 | |
9a7a3243 |
269 | =over 4 |
270 | |
79801d6a |
271 | =item * |
272 | |
273 | Significant cleanups to core tests to ensure that language and |
8f3d5996 |
274 | interpreter features are not used before they're tested. |
9a7a3243 |
275 | |
79801d6a |
276 | =item * |
277 | |
278 | C<make test_porting> now runs a number of important pre-commit checks which might be of use to anyone working on the Perl core. |
32619a1d |
279 | |
79801d6a |
280 | =item * |
281 | |
282 | F<t/porting/podcheck.t> automatically checks the well-formedness of |
8f3d5996 |
283 | POD found in all .pl, .pm and .pod files in the F<MANIFEST>, other than in |
284 | dual-lifed modules which are primarily maintained outside the Perl core. |
285 | |
79801d6a |
286 | =item * |
287 | |
288 | F<t/porting/manifest.t> now tests that all files listed in MANIFEST are present. |
9a7a3243 |
289 | |
290 | =back |
291 | |
292 | =head1 Known Problems |
293 | |
9bf23bab |
294 | =over 4 |
9a7a3243 |
295 | |
9bf23bab |
296 | =item Untriaged test crashes on Windows 2000 |
9a7a3243 |
297 | |
9bf23bab |
298 | Several porters have reported mysterious crashes when Perl's entire test suite is run after a build on certain Windows 2000 systems. When run by hand, the individual tests reportedly work fine. |
9a7a3243 |
299 | |
9bf23bab |
300 | =item Known test failures on VMS |
9a7a3243 |
301 | |
9bf23bab |
302 | Perl 5.11.1 fails a small set of core and CPAN tests as of this release. |
303 | With luck, that'll be sorted out for 5.11.2 |
9a7a3243 |
304 | |
305 | =back |
306 | |
efbe0a44 |
307 | =head1 Errata for 5.11.0 |
8f3d5996 |
308 | |
2cf7e86b |
309 | =over |
8f3d5996 |
310 | |
90b948c5 |
311 | =item The Perl 5.11.0 release notes incorrectly described 'delete local' |
8f3d5996 |
312 | |
2cf7e86b |
313 | =back |
9a7a3243 |
314 | |
315 | =head1 Acknowledgements |
316 | |
7360c6b4 |
317 | Perl 5.11.1 represents approximately 3 weeks development since Perl 5.11.0 |
318 | contains 22,000 lines of changes across 396 files from 26 authors and committers: |
319 | |
320 | Abigail, Alex Vandiver, brian d foy, Chris Williams, Craig A. Berry, |
321 | David Fifield, David Golden, demerphq, Eric Brine, Geoffrey T. Dairiki, |
322 | George Greer, H.Merijn Brand, Jan Dubois, Jerry D. Hedden, Jesse Vincent, |
323 | Josh ben Jore, Max Maischein, Nicholas Clark, Rafael Garcia-Suarez, |
324 | Simon Schubert, Sisyphus, Smylers, Steve Hay, Steve Peters, Vincent Pit |
325 | and Yves Orton. |
326 | |
327 | Many of the changes included in this version originated in the CPAN |
328 | modules included in Perl's core. We're grateful to the entire CPAN |
329 | community for helping Perl to flourish. |
9a7a3243 |
330 | |
331 | =head1 Reporting Bugs |
332 | |
333 | If you find what you think is a bug, you might check the articles |
334 | recently posted to the comp.lang.perl.misc newsgroup and the perl |
335 | bug database at http://rt.perl.org/perlbug/ . There may also be |
336 | information at http://www.perl.org/ , the Perl Home Page. |
337 | |
338 | If you believe you have an unreported bug, please run the B<perlbug> |
339 | program included with your release. Be sure to trim your bug down |
340 | to a tiny but sufficient test case. Your bug report, along with the |
341 | output of C<perl -V>, will be sent off to perlbug@perl.org to be |
342 | analysed by the Perl porting team. |
343 | |
344 | If the bug you are reporting has security implications, which make it |
345 | inappropriate to send to a publicly archived mailing list, then please send |
346 | it to perl5-security-report@perl.org. This points to a closed subscription |
347 | unarchived mailing list, which includes all the core committers, who be able |
348 | to help assess the impact of issues, figure out a resolution, and help |
349 | co-ordinate the release of patches to mitigate or fix the problem across all |
350 | platforms on which Perl is supported. Please only use this address for |
351 | security issues in the Perl core, not for modules independently |
352 | distributed on CPAN. |
353 | |
354 | =head1 SEE ALSO |
355 | |
356 | The F<Changes> file for an explanation of how to view exhaustive details |
357 | on what changed. |
358 | |
359 | The F<INSTALL> file for how to build Perl. |
360 | |
361 | The F<README> file for general stuff. |
362 | |
363 | The F<Artistic> and F<Copying> files for copyright information. |
364 | |
365 | =cut |