Commit | Line | Data |
9a7a3243 |
1 | =head1 NAME |
2 | |
9a7a3243 |
3 | perldelta - what is new for perl v5.11.1 |
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 | |
8f3d5996 |
137 | =item L<pod/perlpolicy.pod> extends the "Social contract about contributed modules" into the beginnings of a document on Perl porting policies. |
9a7a3243 |
138 | |
139 | =back |
140 | |
141 | =head1 Changes to Existing Documentation |
142 | |
8f3d5996 |
143 | =over |
144 | |
145 | =item Documentation for C<$1> in perlvar.pod clarified |
9a7a3243 |
146 | |
8f3d5996 |
147 | =back |
9a7a3243 |
148 | |
149 | =head1 Performance Enhancements |
150 | |
9a7a3243 |
151 | =over 4 |
152 | |
8f3d5996 |
153 | =item C<if (%foo)> has been optimized to be faster than C<if (keys %foo)> |
9a7a3243 |
154 | |
9a7a3243 |
155 | =back |
156 | |
efbe0a44 |
157 | =head1 Platform Specific Notes |
9a7a3243 |
158 | |
159 | =over 4 |
160 | |
8f3d5996 |
161 | =item Darwin (Mac OS X) |
162 | |
163 | =over 4 |
164 | |
79801d6a |
165 | =item * |
166 | |
167 | Skip testing the be_BY.CP1131 locale on Darwin 10 (Mac OS X 10.6), |
8f3d5996 |
168 | as it's still buggy. |
169 | |
79801d6a |
170 | =item * |
171 | |
172 | Correct infelicities in the regexp used to identify buggy locales |
8f3d5996 |
173 | on Darwin 8 and 9 (Mac OS X 10.4 and 10.5, respectively). |
174 | |
175 | =back |
176 | |
177 | =item DragonFly BSD |
178 | |
179 | =over 4 |
180 | |
79801d6a |
181 | =item * |
182 | |
183 | Fix thread library selection [perl #69686] |
8f3d5996 |
184 | |
185 | =back |
186 | |
187 | =item Win32 |
188 | |
189 | =over 4 |
190 | |
79801d6a |
191 | =item * |
8f3d5996 |
192 | |
79801d6a |
193 | Initial support for mingw64 is now available |
194 | |
195 | =item * |
196 | |
197 | 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 |
198 | |
8f3d5996 |
199 | =back |
9a7a3243 |
200 | |
9a7a3243 |
201 | |
202 | =back |
203 | |
204 | =head1 Selected Bug Fixes |
205 | |
9a7a3243 |
206 | =over 4 |
207 | |
79801d6a |
208 | =item * |
209 | |
210 | Perl now properly returns a syntax error instead of segfaulting |
8f3d5996 |
211 | if C<each>, C<keys> or C<values> is used without an argument |
9a7a3243 |
212 | |
79801d6a |
213 | =item * |
214 | |
215 | C<tell()> now fails properly if called without an argument and when no previous file was read |
8f3d5996 |
216 | |
217 | C<tell()> now returns C<-1>, and sets errno to C<EBADF>, thus restoring the 5.8.x behaviour |
218 | |
79801d6a |
219 | =item * |
220 | |
221 | overload no longer implicitly unsets fallback on repeated 'use overload' lines |
9a7a3243 |
222 | |
79801d6a |
223 | =item * |
224 | |
225 | POSIX::strftime() can now handle Unicode characters in the format string. |
226 | |
227 | =item * |
90b948c5 |
228 | |
79801d6a |
229 | The Windows select() implementation now supports all empty C<fd_set>s more correctly. |
90b948c5 |
230 | |
9a7a3243 |
231 | =back |
232 | |
233 | =head1 New or Changed Diagnostics |
234 | |
9a7a3243 |
235 | =over 4 |
236 | |
9a7a3243 |
237 | |
79801d6a |
238 | =item * |
239 | |
240 | The 'syntax' category was removed from 5 warnings that should only be in 'deprecated'. |
241 | |
242 | =item * |
8f3d5996 |
243 | |
79801d6a |
244 | Three fatal pack/unpack error messages have been normalized to "panic: %s" |
8f3d5996 |
245 | |
79801d6a |
246 | =item * |
247 | |
248 | "Unicode character is illegal" has been rephrased to be more accurate |
8f3d5996 |
249 | |
250 | It now reads C<Unicode non-character is illegal in interchange> and the |
251 | perldiag documentation has been expanded a bit. |
252 | |
79801d6a |
253 | =item * |
254 | |
255 | Perl now defaults to issuing a warning if a deprecated language feature is used. |
8f3d5996 |
256 | |
257 | To disable this feature in a given lexical scope, you should use C<no |
258 | warnings 'deprecated';> For information about which language features |
259 | are deprecated and explanations of various deprecation warnings, please |
260 | see L<perldiag.pod> |
9a7a3243 |
261 | |
262 | =back |
263 | |
6609e040 |
264 | =head1 Testing |
9a7a3243 |
265 | |
9a7a3243 |
266 | =over 4 |
267 | |
79801d6a |
268 | =item * |
269 | |
270 | Significant cleanups to core tests to ensure that language and |
8f3d5996 |
271 | interpreter features are not used before they're tested. |
9a7a3243 |
272 | |
79801d6a |
273 | =item * |
274 | |
275 | 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 |
276 | |
79801d6a |
277 | =item * |
278 | |
279 | F<t/porting/podcheck.t> automatically checks the well-formedness of |
8f3d5996 |
280 | POD found in all .pl, .pm and .pod files in the F<MANIFEST>, other than in |
281 | dual-lifed modules which are primarily maintained outside the Perl core. |
282 | |
79801d6a |
283 | =item * |
284 | |
285 | F<t/porting/manifest.t> now tests that all files listed in MANIFEST are present. |
9a7a3243 |
286 | |
287 | =back |
288 | |
289 | =head1 Known Problems |
290 | |
9bf23bab |
291 | =over 4 |
9a7a3243 |
292 | |
9bf23bab |
293 | =item Untriaged test crashes on Windows 2000 |
9a7a3243 |
294 | |
9bf23bab |
295 | 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 |
296 | |
9bf23bab |
297 | =item Known test failures on VMS |
9a7a3243 |
298 | |
9bf23bab |
299 | Perl 5.11.1 fails a small set of core and CPAN tests as of this release. |
300 | With luck, that'll be sorted out for 5.11.2 |
9a7a3243 |
301 | |
302 | =back |
303 | |
efbe0a44 |
304 | =head1 Errata for 5.11.0 |
8f3d5996 |
305 | |
2cf7e86b |
306 | =over |
8f3d5996 |
307 | |
90b948c5 |
308 | =item The Perl 5.11.0 release notes incorrectly described 'delete local' |
8f3d5996 |
309 | |
2cf7e86b |
310 | =back |
9a7a3243 |
311 | |
312 | =head1 Acknowledgements |
313 | |
7360c6b4 |
314 | Perl 5.11.1 represents approximately 3 weeks development since Perl 5.11.0 |
315 | contains 22,000 lines of changes across 396 files from 26 authors and committers: |
316 | |
317 | Abigail, Alex Vandiver, brian d foy, Chris Williams, Craig A. Berry, |
318 | David Fifield, David Golden, demerphq, Eric Brine, Geoffrey T. Dairiki, |
319 | George Greer, H.Merijn Brand, Jan Dubois, Jerry D. Hedden, Jesse Vincent, |
320 | Josh ben Jore, Max Maischein, Nicholas Clark, Rafael Garcia-Suarez, |
321 | Simon Schubert, Sisyphus, Smylers, Steve Hay, Steve Peters, Vincent Pit |
322 | and Yves Orton. |
323 | |
324 | Many of the changes included in this version originated in the CPAN |
325 | modules included in Perl's core. We're grateful to the entire CPAN |
326 | community for helping Perl to flourish. |
9a7a3243 |
327 | |
328 | =head1 Reporting Bugs |
329 | |
330 | If you find what you think is a bug, you might check the articles |
331 | recently posted to the comp.lang.perl.misc newsgroup and the perl |
332 | bug database at http://rt.perl.org/perlbug/ . There may also be |
333 | information at http://www.perl.org/ , the Perl Home Page. |
334 | |
335 | If you believe you have an unreported bug, please run the B<perlbug> |
336 | program included with your release. Be sure to trim your bug down |
337 | to a tiny but sufficient test case. Your bug report, along with the |
338 | output of C<perl -V>, will be sent off to perlbug@perl.org to be |
339 | analysed by the Perl porting team. |
340 | |
341 | If the bug you are reporting has security implications, which make it |
342 | inappropriate to send to a publicly archived mailing list, then please send |
343 | it to perl5-security-report@perl.org. This points to a closed subscription |
344 | unarchived mailing list, which includes all the core committers, who be able |
345 | to help assess the impact of issues, figure out a resolution, and help |
346 | co-ordinate the release of patches to mitigate or fix the problem across all |
347 | platforms on which Perl is supported. Please only use this address for |
348 | security issues in the Perl core, not for modules independently |
349 | distributed on CPAN. |
350 | |
351 | =head1 SEE ALSO |
352 | |
353 | The F<Changes> file for an explanation of how to view exhaustive details |
354 | on what changed. |
355 | |
356 | The F<INSTALL> file for how to build Perl. |
357 | |
358 | The F<README> file for general stuff. |
359 | |
360 | The F<Artistic> and F<Copying> files for copyright information. |
361 | |
362 | =cut |