Commit | Line | Data |
---|---|---|
9a7a3243 JV |
1 | =head1 NAME |
2 | ||
9a7a3243 JV |
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 JV |
10 | =head1 Incompatible Changes |
11 | ||
8f3d5996 | 12 | =over |
9a7a3243 | 13 | |
79801d6a JV |
14 | =item * |
15 | ||
16 | The boolkeys op moved to the group of hash ops. This breaks binary compatibility. | |
9a7a3243 | 17 | |
79801d6a JV |
18 | =item * |
19 | ||
20 | C<\s> C<\w> and C<\d> once again have the semantics they had in Perl 5.8.x. | |
9bf23bab JV |
21 | |
22 | ||
8f3d5996 JV |
23 | =back |
24 | ||
9a7a3243 JV |
25 | =head1 Core Enhancements |
26 | ||
8f3d5996 JV |
27 | =head2 Add C<package NAME VERSION> syntax |
28 | ||
efbe0a44 JV |
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 JV |
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 JV |
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 JV |
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 JV |
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 JV |
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 JV |
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 JV |
71 | =back |
72 | ||
9a7a3243 JV |
73 | =head1 Modules and Pragmata |
74 | ||
90b948c5 JV |
75 | =head2 Updated Modules |
76 | ||
8f3d5996 JV |
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 JV |
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 JV |
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 JV |
130 | |
131 | =back | |
9a7a3243 | 132 | |
9a7a3243 JV |
133 | =head1 New Documentation |
134 | ||
9a7a3243 JV |
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 JV |
138 | |
139 | =back | |
140 | ||
141 | =head1 Changes to Existing Documentation | |
142 | ||
8f3d5996 JV |
143 | =over |
144 | ||
145 | =item Documentation for C<$1> in perlvar.pod clarified | |
9a7a3243 | 146 | |
8f3d5996 | 147 | =back |
9a7a3243 JV |
148 | |
149 | =head1 Performance Enhancements | |
150 | ||
9a7a3243 JV |
151 | =over 4 |
152 | ||
8f3d5996 | 153 | =item C<if (%foo)> has been optimized to be faster than C<if (keys %foo)> |
9a7a3243 | 154 | |
9a7a3243 JV |
155 | =back |
156 | ||
efbe0a44 | 157 | =head1 Platform Specific Notes |
9a7a3243 JV |
158 | |
159 | =over 4 | |
160 | ||
8f3d5996 JV |
161 | =item Darwin (Mac OS X) |
162 | ||
163 | =over 4 | |
164 | ||
79801d6a JV |
165 | =item * |
166 | ||
167 | Skip testing the be_BY.CP1131 locale on Darwin 10 (Mac OS X 10.6), | |
8f3d5996 JV |
168 | as it's still buggy. |
169 | ||
79801d6a JV |
170 | =item * |
171 | ||
172 | Correct infelicities in the regexp used to identify buggy locales | |
8f3d5996 JV |
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 JV |
181 | =item * |
182 | ||
183 | Fix thread library selection [perl #69686] | |
8f3d5996 JV |
184 | |
185 | =back | |
186 | ||
187 | =item Win32 | |
188 | ||
189 | =over 4 | |
190 | ||
79801d6a | 191 | =item * |
8f3d5996 | 192 | |
79801d6a JV |
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 JV |
201 | |
202 | =back | |
203 | ||
204 | =head1 Selected Bug Fixes | |
205 | ||
9a7a3243 JV |
206 | =over 4 |
207 | ||
79801d6a JV |
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 JV |
213 | =item * |
214 | ||
215 | C<tell()> now fails properly if called without an argument and when no previous file was read | |
8f3d5996 JV |
216 | |
217 | C<tell()> now returns C<-1>, and sets errno to C<EBADF>, thus restoring the 5.8.x behaviour | |
218 | ||
79801d6a JV |
219 | =item * |
220 | ||
221 | overload no longer implicitly unsets fallback on repeated 'use overload' lines | |
9a7a3243 | 222 | |
79801d6a JV |
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 JV |
231 | =back |
232 | ||
233 | =head1 New or Changed Diagnostics | |
234 | ||
9a7a3243 JV |
235 | =over 4 |
236 | ||
9a7a3243 | 237 | |
79801d6a JV |
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 JV |
246 | =item * |
247 | ||
248 | "Unicode character is illegal" has been rephrased to be more accurate | |
8f3d5996 JV |
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 JV |
253 | =item * |
254 | ||
255 | Perl now defaults to issuing a warning if a deprecated language feature is used. | |
8f3d5996 JV |
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 JV |
261 | |
262 | =back | |
263 | ||
6609e040 | 264 | =head1 Testing |
9a7a3243 | 265 | |
9a7a3243 JV |
266 | =over 4 |
267 | ||
79801d6a JV |
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 JV |
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 JV |
277 | =item * |
278 | ||
279 | F<t/porting/podcheck.t> automatically checks the well-formedness of | |
8f3d5996 JV |
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 JV |
283 | =item * |
284 | ||
285 | F<t/porting/manifest.t> now tests that all files listed in MANIFEST are present. | |
9a7a3243 JV |
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 JV |
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 JV |
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 JV |
311 | |
312 | =head1 Acknowledgements | |
313 | ||
7360c6b4 JV |
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 JV |
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 |