7e8dc8920e274f05334e5b9c615d15809b6a016c
[p5sagit/p5-mst-13.2.git] / pod / perl5111delta.pod
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
14 XXX Notice
15
16 =head1 Incompatible Changes
17
18 =over 
19
20 =item The boolkeys op moved to the group of hash ops. This breaks binary compatibility.
21
22
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
31 =head1 Core Enhancements
32
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
41
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.
88
89
90 =head1 Modules and Pragmata
91
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
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
167 =over 4
168
169 =item L<pod/perlpolicy.pod> extends the "Social contract about contributed modules" into the beginnings of a document on Perl porting policies.
170
171 =back
172
173 =head1 Changes to Existing Documentation
174
175 =over 
176
177 =item Documentation for C<$1> in perlvar.pod clarified
178
179 =back
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
188 =item C<if (%foo)> has been optimized to be faster than C<if (keys %foo)>
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
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
238
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
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
252
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
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
267
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>
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
298 =head1 Testing
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
306 =item Significant cleanups to core tests to ensure that language and
307 interpreter features are not used before they're tested.
308
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.
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
354
355 =head1 Errata
356
357
358 k=item The Perl 5.11.0 release notes incorrectly described 'delete local'
359
360
361 =head1 Obituary
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
406
407 This is all changes through 704e1b1e
408
409
410
411 commit a44d0896a6c4bfe01ea532694b8c1c073ea6a2f1
412 Author: Nicholas Clark <nick@ccl4.org>
413 Date:   Thu Oct 15 23:37:41 2009 +0100
414
415     POSIX::strftime() should be able to handle Unicode characters in the format string.
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
436     Add perltodo: write an XS cookbook
437
438     Explain using git send-email for patches
439
440
441
442  =TODO FOR RELENG GUIDE   Make Module::Corelist recognise $] as a version number on 5.11.0
443