Commit | Line | Data |
9a7a3243 |
1 | =head1 NAME |
2 | |
3 | [ Any text flagged as XXX needs to be processed before release. ] |
4 | |
5 | perldelta - what is new for perl v5.11.1 |
6 | |
7 | =head1 DESCRIPTION |
8 | |
9 | This document describes differences between the 5.11.0 release and |
10 | the 5.11.1 release. |
11 | |
12 | =head1 Notice |
13 | |
345e2394 |
14 | XXX Notice |
9a7a3243 |
15 | |
16 | =head1 Incompatible Changes |
17 | |
8f3d5996 |
18 | =over |
9a7a3243 |
19 | |
8f3d5996 |
20 | =item The boolkeys op moved to the group of hash ops. This breaks binary compatibility. |
9a7a3243 |
21 | |
22 | |
8f3d5996 |
23 | =item C<Perl_deprecate()> was replaced with a macro that calls C<Perl_ck_warner()> |
24 | |
25 | C<Perl_deprecate> was not part of the public API, and did not have a C<deprecate()> |
26 | shortcut macro defined without C<-DPERL_CORE>. Neither codesearch.google.com nor |
27 | CPAN::Unpack show any users outside the Perl core. |
28 | |
29 | =back |
30 | |
9a7a3243 |
31 | =head1 Core Enhancements |
32 | |
8f3d5996 |
33 | =head2 Add C<package NAME VERSION> syntax |
34 | |
35 | This patch adds support for setting the $VERSION of a namespace |
36 | when the namespace is declared with 'package'. It eliminates the |
37 | need for 'our $VERSION = ...' and similar constructs. E.g. |
38 | |
39 | package Foo::Bar 1.23; |
40 | # $Foo::Bar::VERSION == 1.23 |
9a7a3243 |
41 | |
8f3d5996 |
42 | There are several advantages to this: |
43 | |
44 | * VERSION is parsed in *exactly* the same way as 'use NAME VERSION' |
45 | |
46 | * $VERSION is set at compile time |
47 | |
48 | * Eliminates '$VERSION = ...' and 'eval $VERSION' clutter |
49 | |
50 | * As it requires VERSION to be a numeric literal or v-string |
51 | literal, it can be statically parsed by toolchain modules |
52 | without 'eval' the way MM->parse_version does for '$VERSION = ...' |
53 | |
54 | * Alpha versions with underscores do not need to be quoted; static |
55 | parsing will preserve the underscore, but during compilation, Perl |
56 | will remove underscores as it does for all numeric literals |
57 | |
58 | During development of this, there was discussion on #corehackers and |
59 | elsewhere that this should also allow other metadata to be set such as |
60 | "status" (stable/alpha) or "author/authority". On reflection, those |
61 | metadata are not very well defined yet and likely should never be |
62 | encoded into Perl core parsing so they can be freely changed in the |
63 | future. (They could perhaps be achieved via a comment on the same line |
64 | as 'package NAME VERSION'.) |
65 | |
66 | Version numbers, however, already have a very specific definition and |
67 | use defined in the core through 'use NAME VERSION'. This patch merely |
68 | provides appropriate symmetry for setting $VERSION with the exact same |
69 | parsing and semantics as 'use'. |
70 | |
71 | It does not break old code with only 'package NAME', but code that |
72 | uses 'package NAME VERSION' will need to be restricted to perl 5.11.X. |
73 | This is analogous to the change to open() from two-args to three-args. |
74 | Users requiring the latest Perl will benefit, and perhaps N years from |
75 | now it will become standard practice when Perl 5.12 is targeted the |
76 | way that 5.6 is today. |
77 | |
78 | The patch does not prevent 'package NAME VERSION' from being used |
79 | multiple times for the same package with different version numbers, but |
80 | nothing prevents $VERSION from being modified arbitrarily at runtime, |
81 | either, so I see no urgen reason to add limitations or warnings so |
82 | long as Perl uses a global $VERSION variable for package version |
83 | numbers. |
84 | |
85 | I am posting this patch to the p5p list for discussion and review. If |
86 | there seems to be general assent (or lack of dissent), I will go ahead |
87 | and commit the patch to blead. |
9a7a3243 |
88 | |
9a7a3243 |
89 | |
90 | =head1 Modules and Pragmata |
91 | |
8f3d5996 |
92 | =over 4 |
93 | |
94 | =item Upgrade to Test-Simple-0.94 |
95 | |
96 | =item Upgrade to Storable-2.21 |
97 | |
98 | =item Upgrade to Pod-Simple-3.08 |
99 | |
100 | =item Upgrade to Parse-CPAN-Meta-1.40 |
101 | |
102 | =item Upgrade to ExtUtils-Manifest-1.57 |
103 | |
104 | =item Upgrade to ExtUtils-CBuilder-0.260301 |
105 | |
106 | =item Upgrade to CGI.pm-3.48 |
107 | |
108 | =item Update CPANPLUS to CPAN version 0.89_02 |
109 | |
110 | =item Upgrade to threads::shared 1.32 |
111 | |
112 | =item Update ExtUtils::ParseXS to 2.21 |
113 | |
114 | =item Upgrade File::Path to 2.08 (and add taint.t test) |
115 | |
116 | =item Upgrade Module::CoreList to 2.20 |
117 | |
118 | =item Updated Object-Accessor to CPAN version 0.36 |
119 | |
120 | =back |
9a7a3243 |
121 | |
122 | =head2 New Modules and Pragmata |
123 | |
124 | =over 4 |
125 | |
126 | =item C<XXX> |
127 | |
128 | XXX |
129 | |
130 | =back |
131 | |
132 | =head2 Pragmata Changes |
133 | |
134 | =over 4 |
135 | |
136 | =item C<XXX> |
137 | |
138 | XXX |
139 | |
140 | =back |
141 | |
142 | =head2 Updated Modules |
143 | |
144 | =over 4 |
145 | |
146 | =item C<XXX> |
147 | |
148 | XXX |
149 | |
150 | =back |
151 | |
152 | =head1 Utility Changes |
153 | |
154 | XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go |
155 | here. Most of these are built within the directories F<utils> and F<x2p>. |
156 | |
157 | =over 4 |
158 | |
159 | =item F<XXX> |
160 | |
161 | XXX |
162 | |
163 | =back |
164 | |
165 | =head1 New Documentation |
166 | |
9a7a3243 |
167 | =over 4 |
168 | |
8f3d5996 |
169 | =item L<pod/perlpolicy.pod> extends the "Social contract about contributed modules" into the beginnings of a document on Perl porting policies. |
9a7a3243 |
170 | |
171 | =back |
172 | |
173 | =head1 Changes to Existing Documentation |
174 | |
8f3d5996 |
175 | =over |
176 | |
177 | =item Documentation for C<$1> in perlvar.pod clarified |
9a7a3243 |
178 | |
8f3d5996 |
179 | =back |
9a7a3243 |
180 | |
181 | =head1 Performance Enhancements |
182 | |
183 | XXX Changes which enhance performance without changing behaviour go here. There |
184 | may well be none in a stable release. |
185 | |
186 | =over 4 |
187 | |
8f3d5996 |
188 | =item C<if (%foo)> has been optimized to be faster than C<if (keys %foo)> |
9a7a3243 |
189 | |
190 | XXX |
191 | |
192 | =back |
193 | |
194 | =head1 Installation and Configuration Improvements |
195 | |
196 | XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools |
197 | go here. |
198 | |
199 | =head2 Configuration improvements |
200 | |
201 | XXX |
202 | |
203 | =head2 Compilation improvements |
204 | |
205 | XXX |
206 | |
207 | =head2 Platform Specific Changes |
208 | |
209 | =over 4 |
210 | |
8f3d5996 |
211 | =item Darwin (Mac OS X) |
212 | |
213 | =over 4 |
214 | |
215 | =item Skip testing the be_BY.CP1131 locale on Darwin 10 (Mac OS X 10.6), |
216 | as it's still buggy. |
217 | |
218 | =item Correct infelicities in the regexp used to identify buggy locales |
219 | on Darwin 8 and 9 (Mac OS X 10.4 and 10.5, respectively). |
220 | |
221 | =back |
222 | |
223 | =item DragonFly BSD |
224 | |
225 | =over 4 |
226 | |
227 | =item Fix thread library selection [perl #69686] |
228 | |
229 | =back |
230 | |
231 | =item Win32 |
232 | |
233 | =over 4 |
234 | |
235 | =item Initial support for mingw64 is now available |
236 | |
237 | =back |
9a7a3243 |
238 | |
9a7a3243 |
239 | |
240 | =back |
241 | |
242 | =head1 Selected Bug Fixes |
243 | |
244 | XXX Important bug fixes in the core language are summarised here. |
245 | Bug fixes in files in F<ext/> and F<lib/> are best summarised in |
246 | L</Modules and Pragmata>. |
247 | |
248 | =over 4 |
249 | |
8f3d5996 |
250 | =item Perl now properly returns a syntax error instead of segfaulting |
251 | if C<each>, C<keys> or C<values> is used without an argument |
9a7a3243 |
252 | |
8f3d5996 |
253 | =item C<tell()> now fails properly if called without an argument and when no previous file was read |
254 | |
255 | C<tell()> now returns C<-1>, and sets errno to C<EBADF>, thus restoring the 5.8.x behaviour |
256 | |
257 | =item overload no longer implicitly unsets fallback on repeated 'use overload' lines |
9a7a3243 |
258 | |
259 | =back |
260 | |
261 | =head1 New or Changed Diagnostics |
262 | |
263 | XXX New or changed warnings emitted by the core's C<C> code go here. |
264 | |
265 | =over 4 |
266 | |
9a7a3243 |
267 | |
8f3d5996 |
268 | =item The 'syntax' category was removed from 5 warnings that should only be in 'deprecated'. |
269 | |
270 | =item Three fatal pack/unpack error messages have been normalized to "panic: %s" |
271 | |
272 | =item "Unicode character is illegal" has been rephrased to be more accurate |
273 | |
274 | It now reads C<Unicode non-character is illegal in interchange> and the |
275 | perldiag documentation has been expanded a bit. |
276 | |
277 | =item Perl now defaults to issuing a warning if a deprecated language feature is used. |
278 | |
279 | To disable this feature in a given lexical scope, you should use C<no |
280 | warnings 'deprecated';> For information about which language features |
281 | are deprecated and explanations of various deprecation warnings, please |
282 | see L<perldiag.pod> |
9a7a3243 |
283 | |
284 | =back |
285 | |
286 | =head1 Changed Internals |
287 | |
288 | XXX Changes which affect the interface available to C<XS> code go here. |
289 | |
290 | =over 4 |
291 | |
292 | =item * |
293 | |
294 | XXX |
295 | |
296 | =back |
297 | |
6609e040 |
298 | =head1 Testing |
9a7a3243 |
299 | |
300 | XXX Changes which create B<new> files in F<t/> go here. Changes to |
301 | existing files in F<t/> aren't worth summarising, although the bugs that |
302 | they represent may be. |
303 | |
304 | =over 4 |
305 | |
8f3d5996 |
306 | =item Significant cleanups to core tests to ensure that language and |
307 | interpreter features are not used before they're tested. |
9a7a3243 |
308 | |
8f3d5996 |
309 | =item F<t/porting/podcheck.t> automatically checks the well-formedness of |
310 | POD found in all .pl, .pm and .pod files in the F<MANIFEST>, other than in |
311 | dual-lifed modules which are primarily maintained outside the Perl core. |
312 | |
313 | =item F<t/porting/manifest.t> now tests that all files listed in MANIFEST are present. |
9a7a3243 |
314 | |
315 | =back |
316 | |
317 | =head1 Known Problems |
318 | |
319 | XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any |
320 | tests that had to be C<TODO>ed for the release would be noted here, unless |
321 | they were specific to a particular platform (see below). |
322 | |
323 | This is a list of some significant unfixed bugs, which are regressions |
324 | from either 5.10.1 or 5.11.0. |
325 | |
326 | =over 4 |
327 | |
328 | =item * |
329 | |
330 | XXX |
331 | |
332 | =back |
333 | |
334 | =head1 Deprecations |
335 | |
336 | XXX Add any new known deprecations here. |
337 | |
338 | The following items are now deprecated. |
339 | |
340 | =over 4 |
341 | |
342 | =item * |
343 | |
344 | XXX |
345 | |
346 | =back |
347 | |
348 | =head1 Platform Specific Notes |
349 | |
350 | XXX Any changes specific to a particular platform. VMS and Win32 are the usual |
351 | stars here. It's probably best to group changes under the same section layout |
352 | as the main perldelta |
353 | |
345e2394 |
354 | |
8f3d5996 |
355 | =head1 Errata |
356 | |
357 | |
358 | k=item The Perl 5.11.0 release notes incorrectly described 'delete local' |
359 | |
360 | |
345e2394 |
361 | =head1 Obituary |
9a7a3243 |
362 | |
363 | XXX If any significant core contributor has died, we've added a short obituary |
364 | here. |
365 | |
366 | =head1 Acknowledgements |
367 | |
368 | XXX The list of people to thank goes here. |
369 | |
370 | |
371 | =head1 Reporting Bugs |
372 | |
373 | If you find what you think is a bug, you might check the articles |
374 | recently posted to the comp.lang.perl.misc newsgroup and the perl |
375 | bug database at http://rt.perl.org/perlbug/ . There may also be |
376 | information at http://www.perl.org/ , the Perl Home Page. |
377 | |
378 | If you believe you have an unreported bug, please run the B<perlbug> |
379 | program included with your release. Be sure to trim your bug down |
380 | to a tiny but sufficient test case. Your bug report, along with the |
381 | output of C<perl -V>, will be sent off to perlbug@perl.org to be |
382 | analysed by the Perl porting team. |
383 | |
384 | If the bug you are reporting has security implications, which make it |
385 | inappropriate to send to a publicly archived mailing list, then please send |
386 | it to perl5-security-report@perl.org. This points to a closed subscription |
387 | unarchived mailing list, which includes all the core committers, who be able |
388 | to help assess the impact of issues, figure out a resolution, and help |
389 | co-ordinate the release of patches to mitigate or fix the problem across all |
390 | platforms on which Perl is supported. Please only use this address for |
391 | security issues in the Perl core, not for modules independently |
392 | distributed on CPAN. |
393 | |
394 | =head1 SEE ALSO |
395 | |
396 | The F<Changes> file for an explanation of how to view exhaustive details |
397 | on what changed. |
398 | |
399 | The F<INSTALL> file for how to build Perl. |
400 | |
401 | The F<README> file for general stuff. |
402 | |
403 | The F<Artistic> and F<Copying> files for copyright information. |
404 | |
405 | =cut |
6609e040 |
406 | |
407 | This is all changes through 704e1b1e |
408 | |
409 | |
6609e040 |
410 | |
411 | commit a44d0896a6c4bfe01ea532694b8c1c073ea6a2f1 |
412 | Author: Nicholas Clark <nick@ccl4.org> |
413 | Date: Thu Oct 15 23:37:41 2009 +0100 |
414 | |
8f3d5996 |
415 | POSIX::strftime() should be able to handle Unicode characters in the format string. |
6609e040 |
416 | |
417 | commit e4d771f5006ebd70b76422437cce60e9ac40c830 |
418 | Author: Jan Dubois <jand@activestate.com> |
419 | Date: Tue Oct 13 16:46:58 2009 -0700 |
420 | |
421 | The winsock select() implementation doesn't support all empty 'fd_set's. |
422 | |
423 | The code already contained a workaround for the special case |
424 | |
425 | select(undef, undef, undef, $sleep); |
426 | |
427 | but didn't handle the case when actual bit vectors were passed in |
428 | that didn't have any bits set. |
429 | |
430 | Fixes http://rt.perl.org/rt3/Public/Bug/Display.html?id=54544 |
431 | |
432 | |
433 | |
434 | |
435 | |
6609e040 |
436 | Add perltodo: write an XS cookbook |
437 | |
6609e040 |
438 | Explain using git send-email for patches |
439 | |
6609e040 |
440 | |
6609e040 |
441 | |
442 | =TODO FOR RELENG GUIDE Make Module::Corelist recognise $] as a version number on 5.11.0 |
443 | |