HP/UX should have been HP-UX
[p5sagit/p5-mst-13.2.git] / pod / perl5111delta.pod
CommitLineData
9a7a3243 1=head1 NAME
2
3[ Any text flagged as XXX needs to be processed before release. ]
4
5perldelta - what is new for perl v5.11.1
6
7=head1 DESCRIPTION
8
9This document describes differences between the 5.11.0 release and
10the 5.11.1 release.
11
12=head1 Notice
13
345e2394 14XXX 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
25C<Perl_deprecate> was not part of the public API, and did not have a C<deprecate()>
26shortcut macro defined without C<-DPERL_CORE>. Neither codesearch.google.com nor
27CPAN::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
128XXX
129
130=back
131
132=head2 Pragmata Changes
133
134=over 4
135
136=item C<XXX>
137
138XXX
139
140=back
141
142=head2 Updated Modules
143
144=over 4
145
146=item C<XXX>
147
148XXX
149
150=back
151
152=head1 Utility Changes
153
154XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
155here. Most of these are built within the directories F<utils> and F<x2p>.
156
157=over 4
158
159=item F<XXX>
160
161XXX
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
183XXX Changes which enhance performance without changing behaviour go here. There
184may 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
190XXX
191
192=back
193
194=head1 Installation and Configuration Improvements
195
196XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
197go here.
198
199=head2 Configuration improvements
200
201XXX
202
203=head2 Compilation improvements
204
205XXX
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),
216as it's still buggy.
217
218=item Correct infelicities in the regexp used to identify buggy locales
219on 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
244XXX Important bug fixes in the core language are summarised here.
245Bug fixes in files in F<ext/> and F<lib/> are best summarised in
246L</Modules and Pragmata>.
247
248=over 4
249
8f3d5996 250=item Perl now properly returns a syntax error instead of segfaulting
251if 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
255C<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
263XXX 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
274It now reads C<Unicode non-character is illegal in interchange> and the
275perldiag documentation has been expanded a bit.
276
277=item Perl now defaults to issuing a warning if a deprecated language feature is used.
278
279To disable this feature in a given lexical scope, you should use C<no
280warnings 'deprecated';> For information about which language features
281are deprecated and explanations of various deprecation warnings, please
282see L<perldiag.pod>
9a7a3243 283
284=back
285
286=head1 Changed Internals
287
288XXX Changes which affect the interface available to C<XS> code go here.
289
290=over 4
291
292=item *
293
294XXX
295
296=back
297
6609e040 298=head1 Testing
9a7a3243 299
300XXX Changes which create B<new> files in F<t/> go here. Changes to
301existing files in F<t/> aren't worth summarising, although the bugs that
302they represent may be.
303
304=over 4
305
8f3d5996 306=item Significant cleanups to core tests to ensure that language and
307interpreter features are not used before they're tested.
9a7a3243 308
8f3d5996 309=item F<t/porting/podcheck.t> automatically checks the well-formedness of
310POD found in all .pl, .pm and .pod files in the F<MANIFEST>, other than in
311dual-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
319XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
320tests that had to be C<TODO>ed for the release would be noted here, unless
321they were specific to a particular platform (see below).
322
323This is a list of some significant unfixed bugs, which are regressions
324from either 5.10.1 or 5.11.0.
325
326=over 4
327
328=item *
329
330XXX
331
332=back
333
334=head1 Deprecations
335
336XXX Add any new known deprecations here.
337
338The following items are now deprecated.
339
340=over 4
341
342=item *
343
344XXX
345
346=back
347
348=head1 Platform Specific Notes
349
350XXX Any changes specific to a particular platform. VMS and Win32 are the usual
351stars here. It's probably best to group changes under the same section layout
352as the main perldelta
353
345e2394 354
8f3d5996 355=head1 Errata
356
357
358k=item The Perl 5.11.0 release notes incorrectly described 'delete local'
359
360
345e2394 361=head1 Obituary
9a7a3243 362
363XXX If any significant core contributor has died, we've added a short obituary
364here.
365
366=head1 Acknowledgements
367
368XXX The list of people to thank goes here.
369
370
371=head1 Reporting Bugs
372
373If you find what you think is a bug, you might check the articles
374recently posted to the comp.lang.perl.misc newsgroup and the perl
375bug database at http://rt.perl.org/perlbug/ . There may also be
376information at http://www.perl.org/ , the Perl Home Page.
377
378If you believe you have an unreported bug, please run the B<perlbug>
379program included with your release. Be sure to trim your bug down
380to a tiny but sufficient test case. Your bug report, along with the
381output of C<perl -V>, will be sent off to perlbug@perl.org to be
382analysed by the Perl porting team.
383
384If the bug you are reporting has security implications, which make it
385inappropriate to send to a publicly archived mailing list, then please send
386it to perl5-security-report@perl.org. This points to a closed subscription
387unarchived mailing list, which includes all the core committers, who be able
388to help assess the impact of issues, figure out a resolution, and help
389co-ordinate the release of patches to mitigate or fix the problem across all
390platforms on which Perl is supported. Please only use this address for
391security issues in the Perl core, not for modules independently
392distributed on CPAN.
393
394=head1 SEE ALSO
395
396The F<Changes> file for an explanation of how to view exhaustive details
397on what changed.
398
399The F<INSTALL> file for how to build Perl.
400
401The F<README> file for general stuff.
402
403The F<Artistic> and F<Copying> files for copyright information.
404
405=cut
6609e040 406
407This is all changes through 704e1b1e
408
409
6609e040 410
411commit a44d0896a6c4bfe01ea532694b8c1c073ea6a2f1
412Author: Nicholas Clark <nick@ccl4.org>
413Date: 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
417commit e4d771f5006ebd70b76422437cce60e9ac40c830
418Author: Jan Dubois <jand@activestate.com>
419Date: 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