Commit | Line | Data |
---|---|---|
9a7a3243 JV |
1 | =head1 NAME |
2 | ||
d5114285 | 3 | perl5111delta - what is new for perl v5.11.1 |
9a7a3243 JV |
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 | ||
d408791f RGS |
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 JV |
141 | |
142 | =back | |
143 | ||
144 | =head1 Changes to Existing Documentation | |
145 | ||
8f3d5996 JV |
146 | =over |
147 | ||
148 | =item Documentation for C<$1> in perlvar.pod clarified | |
9a7a3243 | 149 | |
8f3d5996 | 150 | =back |
9a7a3243 JV |
151 | |
152 | =head1 Performance Enhancements | |
153 | ||
9a7a3243 JV |
154 | =over 4 |
155 | ||
8f3d5996 | 156 | =item C<if (%foo)> has been optimized to be faster than C<if (keys %foo)> |
9a7a3243 | 157 | |
9a7a3243 JV |
158 | =back |
159 | ||
efbe0a44 | 160 | =head1 Platform Specific Notes |
9a7a3243 JV |
161 | |
162 | =over 4 | |
163 | ||
8f3d5996 JV |
164 | =item Darwin (Mac OS X) |
165 | ||
166 | =over 4 | |
167 | ||
79801d6a JV |
168 | =item * |
169 | ||
170 | Skip testing the be_BY.CP1131 locale on Darwin 10 (Mac OS X 10.6), | |
8f3d5996 JV |
171 | as it's still buggy. |
172 | ||
79801d6a JV |
173 | =item * |
174 | ||
175 | Correct infelicities in the regexp used to identify buggy locales | |
8f3d5996 JV |
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 JV |
184 | =item * |
185 | ||
186 | Fix thread library selection [perl #69686] | |
8f3d5996 JV |
187 | |
188 | =back | |
189 | ||
190 | =item Win32 | |
191 | ||
192 | =over 4 | |
193 | ||
79801d6a | 194 | =item * |
8f3d5996 | 195 | |
79801d6a JV |
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 JV |
204 | |
205 | =back | |
206 | ||
207 | =head1 Selected Bug Fixes | |
208 | ||
9a7a3243 JV |
209 | =over 4 |
210 | ||
79801d6a JV |
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 JV |
216 | =item * |
217 | ||
218 | C<tell()> now fails properly if called without an argument and when no previous file was read | |
8f3d5996 JV |
219 | |
220 | C<tell()> now returns C<-1>, and sets errno to C<EBADF>, thus restoring the 5.8.x behaviour | |
221 | ||
79801d6a JV |
222 | =item * |
223 | ||
224 | overload no longer implicitly unsets fallback on repeated 'use overload' lines | |
9a7a3243 | 225 | |
79801d6a JV |
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 JV |
234 | =back |
235 | ||
236 | =head1 New or Changed Diagnostics | |
237 | ||
9a7a3243 JV |
238 | =over 4 |
239 | ||
9a7a3243 | 240 | |
79801d6a JV |
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 JV |
249 | =item * |
250 | ||
251 | "Unicode character is illegal" has been rephrased to be more accurate | |
8f3d5996 JV |
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 JV |
256 | =item * |
257 | ||
258 | Perl now defaults to issuing a warning if a deprecated language feature is used. | |
8f3d5996 JV |
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 | |
3676dc40 | 263 | see L<perldiag> |
9a7a3243 JV |
264 | |
265 | =back | |
266 | ||
6609e040 | 267 | =head1 Testing |
9a7a3243 | 268 | |
9a7a3243 JV |
269 | =over 4 |
270 | ||
79801d6a JV |
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 JV |
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 JV |
280 | =item * |
281 | ||
282 | F<t/porting/podcheck.t> automatically checks the well-formedness of | |
8f3d5996 JV |
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 JV |
286 | =item * |
287 | ||
288 | F<t/porting/manifest.t> now tests that all files listed in MANIFEST are present. | |
9a7a3243 JV |
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 JV |
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 JV |
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 JV |
314 | |
315 | =head1 Acknowledgements | |
316 | ||
7360c6b4 JV |
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 JV |
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 |