First pass of weeding commit meesages from "git log v5.11.0..blead" into a perldelta.
[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 XXX For a release on a stable branch, this section aspires to be:
19
20     There are no changes intentionally incompatible with 5.XXX.XXX. If any
21     exist, they are bugs and reports are welcome.
22
23
24 =head1 Core Enhancements
25
26 XXX New core language features go here. Summarise user-visible core language
27 enhancements. Particularly prominent performance optimisations could go
28 here, but most should go in the L</Performance Enhancements> section.
29
30 =head1 New Platforms
31
32 XXX List any platforms that this version of perl compiles on, that previous
33 versions did not. These will either be enabled by new files in the F<hints/>
34 directories, or new subdirectories and F<README> files at the top level of the
35 source tree.
36
37 =head1 Modules and Pragmata
38
39 XXX All changes to installed files in F<ext/> and F<lib/> go here, in a list
40 ordered by distribution name. Minimally it should be the module version,
41 but it's more useful to the end user to give a paragraph's summary of the
42 module's changes. In an ideal world, dual-life modules would have a
43 F<Changes> file that could be cribbed.
44
45 =head2 New Modules and Pragmata
46
47 =over 4
48
49 =item C<XXX>
50
51 XXX
52
53 =back
54
55 =head2 Pragmata Changes
56
57 =over 4
58
59 =item C<XXX>
60
61 XXX
62
63 =back
64
65 =head2 Updated Modules
66
67 =over 4
68
69 =item C<XXX>
70
71 XXX
72
73 =back
74
75 =head1 Utility Changes
76
77 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
78 here. Most of these are built within the directories F<utils> and F<x2p>.
79
80 =over 4
81
82 =item F<XXX>
83
84 XXX
85
86 =back
87
88 =head1 New Documentation
89
90 XXX Changes which create B<new> files in F<pod/> go here.
91
92 =over 4
93
94 =item L<XXX>
95
96 XXX
97
98 =back
99
100 =head1 Changes to Existing Documentation
101
102 XXX Changes which significantly change existing files in F<pod/> go here.
103 Any changes to F<pod/perldiag.pod> should go in L</New or Changed Diagnostics>.
104
105
106 =head1 Performance Enhancements
107
108 XXX Changes which enhance performance without changing behaviour go here. There
109 may well be none in a stable release.
110
111 =over 4
112
113 =item *
114
115 XXX
116
117 =back
118
119 =head1 Installation and Configuration Improvements
120
121 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
122 go here.
123
124 =head2 Configuration improvements
125
126 XXX
127
128 =head2 Compilation improvements
129
130 XXX
131
132 =head2 Platform Specific Changes
133
134 =over 4
135
136 =item XXX-some-platform
137
138 XXX
139
140 =back
141
142 =head1 Selected Bug Fixes
143
144 XXX Important bug fixes in the core language are summarised here.
145 Bug fixes in files in F<ext/> and F<lib/> are best summarised in
146 L</Modules and Pragmata>.
147
148 =over 4
149
150 =item *
151
152 XXX
153
154 =back
155
156 =head1 New or Changed Diagnostics
157
158 XXX New or changed warnings emitted by the core's C<C> code go here.
159
160 =over 4
161
162 =item C<XXX>
163
164 XXX
165
166 =back
167
168 =head1 Changed Internals
169
170 XXX Changes which affect the interface available to C<XS> code go here.
171
172 =over 4
173
174 =item *
175
176 XXX
177
178 =back
179
180 =head1 Testing
181
182 XXX Changes which create B<new> files in F<t/> go here. Changes to
183 existing files in F<t/> aren't worth summarising, although the bugs that
184 they represent may be.
185
186 =over 4
187
188 =item Significant cleanups to core tests to ensure that language and interpreter features are not used before they're tested.
189
190 XXX
191
192 =back
193
194 =head1 Known Problems
195
196 XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
197 tests that had to be C<TODO>ed for the release would be noted here, unless
198 they were specific to a particular platform (see below).
199
200 This is a list of some significant unfixed bugs, which are regressions
201 from either 5.10.1 or 5.11.0.
202
203 =over 4
204
205 =item *
206
207 XXX
208
209 =back
210
211 =head1 Deprecations
212
213 XXX Add any new known deprecations here.
214
215 The following items are now deprecated.
216
217 =over 4
218
219 =item *
220
221 XXX
222
223 =back
224
225 =head1 Platform Specific Notes
226
227 XXX Any changes specific to a particular platform. VMS and Win32 are the usual
228 stars here. It's probably best to group changes under the same section layout
229 as the main perldelta
230
231
232 =head1 Obituary
233
234 XXX If any significant core contributor has died, we've added a short obituary
235 here.
236
237 =head1 Acknowledgements
238
239 XXX The list of people to thank goes here.
240
241
242 =head1 Reporting Bugs
243
244 If you find what you think is a bug, you might check the articles
245 recently posted to the comp.lang.perl.misc newsgroup and the perl
246 bug database at http://rt.perl.org/perlbug/ .  There may also be
247 information at http://www.perl.org/ , the Perl Home Page.
248
249 If you believe you have an unreported bug, please run the B<perlbug>
250 program included with your release.  Be sure to trim your bug down
251 to a tiny but sufficient test case.  Your bug report, along with the
252 output of C<perl -V>, will be sent off to perlbug@perl.org to be
253 analysed by the Perl porting team.
254
255 If the bug you are reporting has security implications, which make it
256 inappropriate to send to a publicly archived mailing list, then please send
257 it to perl5-security-report@perl.org. This points to a closed subscription
258 unarchived mailing list, which includes all the core committers, who be able
259 to help assess the impact of issues, figure out a resolution, and help
260 co-ordinate the release of patches to mitigate or fix the problem across all
261 platforms on which Perl is supported. Please only use this address for
262 security issues in the Perl core, not for modules independently
263 distributed on CPAN.
264
265 =head1 SEE ALSO
266
267 The F<Changes> file for an explanation of how to view exhaustive details
268 on what changed.
269
270 The F<INSTALL> file for how to build Perl.
271
272 The F<README> file for general stuff.
273
274 The F<Artistic> and F<Copying> files for copyright information.
275
276 =cut
277
278 This is all changes through 704e1b1e
279
280
281     Update CPANPLUS to CPAN version 0.89_02
282
283     Upgrade to threads::shared 1.32
284
285     Help ExtUtils::Install's tests find PERL_SRC on VMS.
286
287 commit d1d15184c41c6ad4f16829561163cd118e5ae917
288 Author: Nicholas Clark <nick@ccl4.org>
289 Date:   Tue Oct 13 16:04:18 2009 +0100
290
291     Enable deprecation warnings by default.
292
293     locked is deprecated, so use :lvalue instead.
294
295     Can't use C<shift INC> to avoid @ in a commandline now, so use eval and octal.
296
297     shift with barewords is deprecated, so this test from perl 1 needs updating.
298
299     push and pop on barewords are deprecated, so need no warnings 'deprecated';
300
301     Opening dirhandle DIR also as a file needs no warnings 'deprecated';
302
303     defined @array and defined %hash need no warnings 'deprecated';
304
305     localisation of $[ is deprecated, so needs no warnings 'deprecated';
306
307     Tests for barewords and hash operators need no warnings 'deprecated';
308
309     do subname() is deprecated, so tests for it need no warnings 'deprecated';
310
311     Bracket deprecated features with no warnings 'deprecated';
312
313     Move the test for the deprecated feature <<; out of t/base/lext.t
314
315     Tests in base can't utilise pragmata, specifically no warnings 'deprecated';
316
317     Add no warnings 'deprecated' to a test that assigns to $[
318
319 commit a44d0896a6c4bfe01ea532694b8c1c073ea6a2f1
320 Author: Nicholas Clark <nick@ccl4.org>
321 Date:   Thu Oct 15 23:37:41 2009 +0100
322
323     Skip testing the be_BY.CP1131 locale on Darwin 10, as it's still buggy.
324
325     Correct infelicities in the regexp used to identify buggy locales on Darwin 8
326     and 9.
327
328     POSIX::strftime() should be able to handle Unicode characters in the format
329     string.
330
331 commit 2e0eeeaafce11cb0128a6d1e245f1a5b806e3a87
332 Author: Nicholas Clark <nick@ccl4.org>
333 Date:   Thu Oct 15 15:12:49 2009 +0100
334
335     Move the boolkeys op to the group of hash ops.
336
337     This breaks binary compatibility.
338
339 commit 867fa1e2da145229b4db2c6e8d5b51700c15f114
340 Author: demerphq <demerphq@gmail.com>
341 Date:   Thu Oct 15 14:27:30 2009 +0100
342
343     Optimise if (%foo) to be faster than if(keys %foo)
344
345     Thread was "[PATCH] Make if (%hash) {} act the same as if (keys %hash) {}"
346     http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-11/msg00432.html
347     but the implementation evolved from the approach described in the subject, to
348     instead add a new opcode pp_boolkeys, to exactly preserve the existing
349     behaviour.
350
351     Various conflicts with the passage of time resolved, 'register' removed, and a
352     $VERSION bump.
353
354 commit 1c85afcecc8ee030e2780aa5bfa85692c8db64df
355 Author: demerphq <demerphq@gmail.com>
356 Date:   Thu Oct 15 14:22:47 2009 +0100
357
358     Support for pp_boolkeys in B::Deparse.
359
360     Part of "[PATCH] Make if (%hash) {} act the same as if (keys %hash) {}"
361     http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-11/msg00432.html
362     which evolved from the approach described in the subject, to instead add a new
363     opcode pp_boolkeys, to exactly preserve the existing behaviour.
364
365     Plus a $VERSION bump.
366
367 commit 55b77936aef50881a71470fd06e66edffd66d9de
368 Author: Sisyphus <sisyphus1@optusnet.com.au>
369 Date:   Wed Oct 14 10:02:16 2009 -0400
370
371     Add mingw64 support for win32
372
373 commit d4c22fec77d7244882ce42a93a4ad25bdada2519
374 Author: Sisyphus <sisyphus1@optusnet.com.au>
375 Date:   Wed Oct 14 06:58:49 2009 -0400
376
377     Patch t/win32/system.t for mingw32/64
378
379 commit e4d771f5006ebd70b76422437cce60e9ac40c830
380 Author: Jan Dubois <jand@activestate.com>
381 Date:   Tue Oct 13 16:46:58 2009 -0700
382
383     The winsock select() implementation doesn't support all empty 'fd_set's.
384
385     The code already contained a workaround for the special case
386
387         select(undef, undef, undef, $sleep);
388
389     but didn't handle the case when actual bit vectors were passed in
390     that didn't have any bits set.
391
392     Fixes http://rt.perl.org/rt3/Public/Bug/Display.html?id=54544
393
394
395
396
397
398
399     Podify the social contract about contributed module. Turn it into a policy document.  Move the new "perl policy" document into pod/
400
401
402 Author: Smylers <Smylers@stripey.com>
403 Date:   Tue Oct 13 14:14:46 2009 +0200
404
405     perlvar $1 clarification
406
407     $1 is currently documented as being set by the "last pattern match".
408     But it is left alone by unsuccessful pattern match attempts (continuing
409     to hold a value from an earlier successful match).
410
411     Saying "last successful pattern match" clarifies this; it's also the
412     phrase used to document $&.
413
414     Second, the entry for $1 in perlvar doesn't actually contain the text
415     "$1" anywhere.  As such, doing man perlvar then using /\$1 to search for
416     it in less doesn't locate it (though does match other places in that
417     file where $1 happens to be used).
418
419
420  =item *
421
422     Replace Perl_deprecate() with a macro that calls Perl_ck_warner()
423     Perl_deprecate was not part of the public API, and did not have a deprecate()
424     shortcut macro defined without -DPERL_CORE. Neither codesearch.google.com nor
425     CPAN::Unpack show any users outside the core.
426
427
428
429  =item *
430     Remove category 'syntax' from 5 warnings that should just be in 'deprecated'.
431
432     None were documented as also being in 'syntax'. Effectively, this completes the
433     reorganisation of commits 12bcd1a617c74d6e and 9014280dc8264580. See
434     http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2009-10/msg00601.html and
435     http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-03/msg00850.html
436
437
438
439 commit c989e6a3e4b89b26d315693449c76cdcb754611f
440 Author: Geoffrey T. Dairiki <dairiki at dairiki.org>
441 Date:   Tue Aug 4 17:54:34 2009 -0700
442
443     overload no longer implicitly unsets fallback on repeated 'use overload' lines - Fix for RT#68916
444
445
446 commit 5f5991a0d6d8ef99d2643b88a7d9285e35277331
447 Author: Nicholas Clark <nick@ccl4.org>
448 Date:   Mon Oct 12 15:54:30 2009 +0100
449
450     Normalise 3 fatal pack/unpack error messages to "panic: %s"
451
452 commit 04e82a462b85b3d6265b04aa07a405316616dc66
453 Author: Nicholas Clark <nick@ccl4.org>
454 Date:   Sun Oct 11 18:56:01 2009 +0100
455
456     porting/manifest.t now tests that all files listed in MANIFEST are present.
457
458 commit 41239ce77fcd273e18c4017d3d96a5f42e228594
459 Author: Nicholas Clark <nick@ccl4.org>
460 Date:   Sun Oct 11 17:28:02 2009 +0100
461
462     Default to running tests in cpan/ with relative paths for perl and @INC
463
464     Explicitly turn paths absolute for the 33 extensions in cpan/ that fail tests
465     with relative paths.
466
467 commit fc5e5837c991d3d3224259ff5c1d728d4e0636e2
468 Author: Nicholas Clark <nick@ccl4.org>
469 Date:   Sun Oct 11 15:05:58 2009 +0100
470
471     MakeMaker::Test::Utils::perl_lib now copes with relative paths for core testing.
472
473     In the core, @INC already contains the moral equivalent of blib/lib. However,
474     it's a relative path (by default), so make it absolute. It's easier to KISS if
475     this is done *before* any change of directory, so document this, and change the
476     non-core case to add the absolute path of 'blib/lib' to @INC, rather than the
477     absolute path of '../blib/lib'.
478
479
480     Upgrade to Test-Simple-0.94
481
482     Upgrade to Storable-2.21
483
484     Upgrade to Pod-Simple-3.08
485
486     Upgrade to Parse-CPAN-Meta-1.40
487
488     Upgrade to ExtUtils-Manifest-1.57
489
490     Upgrade to ExtUtils-CBuilder-0.260301
491
492
493     Upgrade to CGI.pm-3.48
494
495 commit 6c1b5ced18901286f16f6d5f6914ba4b5e3db601
496 Author: Simon 'corecode' Schubert <corecode@fs.ei.tum.de>
497 Date:   Sat Oct 10 17:55:26 2009 +0100
498
499     [perl #69686] Fix DragonFly thread lib selection
500
501
502
503 Merge: 8e32470 e92f586
504 Author: Rafael Garcia-Suarez <rgs@consttype.org>
505 Date:   Thu Oct 8 15:13:18 2009 +0200
506
507     Merge branch 'feature/package-name-version' into blead
508
509 commit f03173f2c707a804ec3e9c291d2ab1adb9db4abc
510 Author: Rafael Garcia-Suarez <rgs@consttype.org>
511 Date:   Thu Oct 8 11:44:21 2009 +0200
512
513     Make tell() fail properly if called without an argument and when no previous file was read
514
515     This makes tell() return -1, and sets errno to EBADF, thus
516     restoring the 5.8.x behaviour
517
518 commit a916b30221d5aac718ed67c9a5bc9c0905daddd0
519 Author: Rafael Garcia-Suarez <rgs@consttype.org>
520 Date:   Thu Oct 8 11:33:06 2009 +0200
521
522     Properly return a syntax error instead of segfaulting if each/keys/values is used without an argument
523
524  =item Updated Object-Accessor to CPAN version 0.36
525
526
527     Add perltodo: write an XS cookbook
528
529     Porting/checkAUTHORS.pl now runs clean
530
531 commit 6fa4d285bff5644bebb95aff09143322042282cc
532 Author: David Golden <dagolden@cpan.org>
533 Date:   Tue Oct 6 06:48:48 2009 -0400
534
535     Add 'package NAME VERSION' syntax
536
537     This patch adds support for setting the $VERSION of a namespace
538     when the namespace is declared with 'package'.  It eliminates the
539     need for 'our $VERSION = ...' and similar constructs.  E.g.
540
541       package Foo::Bar 1.23;
542       # $Foo::Bar::VERSION == 1.23
543
544     There are several advantages to this:
545
546       * VERSION is parsed in *exactly* the same way as 'use NAME VERSION'
547
548       * $VERSION is set at compile time
549
550       * Eliminates '$VERSION = ...' and 'eval $VERSION' clutter
551
552       * As it requires VERSION to be a numeric literal or v-string
553         literal, it can be statically parsed by toolchain modules
554         without 'eval' the way MM->parse_version does for '$VERSION = ...'
555
556       * Alpha versions with underscores do not need to be quoted; static
557         parsing will preserve the underscore, but during compilation, Perl
558         will remove underscores as it does for all numeric literals
559
560     During development of this, there was discussion on #corehackers and
561     elsewhere that this should also allow other metadata to be set such as
562     "status" (stable/alpha) or "author/authority".  On reflection, those
563     metadata are not very well defined yet and likely should never be
564     encoded into Perl core parsing so they can be freely changed in the
565     future.  (They could perhaps be achieved via a comment on the same line
566     as 'package NAME VERSION'.)
567
568     Version numbers, however, already have a very specific definition and
569     use defined in the core through 'use NAME VERSION'.  This patch merely
570     provides appropriate symmetry for setting $VERSION with the exact same
571     parsing and semantics as 'use'.
572
573     It does not break old code with only 'package NAME', but code that
574     uses 'package NAME VERSION' will need to be restricted to perl 5.11.X.
575     This is analogous to the change to open() from two-args to three-args.
576     Users requiring the latest Perl will benefit, and perhaps N years from
577     now it will become standard practice when Perl 5.12 is targeted the
578     way that 5.6 is today.
579
580     The patch does not prevent 'package NAME VERSION' from being used
581     multiple times for the same package with different version numbers, but
582     nothing prevents $VERSION from being modified arbitrarily at runtime,
583     either, so I see no urgen reason to add limitations or warnings so
584     long as Perl uses a global $VERSION variable for package version
585     numbers.
586
587     I am posting this patch to the p5p list for discussion and review.  If
588     there seems to be general assent (or lack of dissent), I will go ahead
589     and commit the patch to blead.
590
591 commit a67b1afafddaaed84e79a867acc888c9ccfb6460
592 Author: Max Maischein <corion@corion.net>
593 Date:   Mon Oct 5 22:49:09 2009 +0200
594
595 New porting tests to automatically check POD in lib/, ext/ and pod/
596
597 commit 2d5f1d01166a325b29ccc86102d26e68def13786
598 Author: David Golden <dagolden@cpan.org>
599 Date:   Mon Oct 5 17:46:36 2009 -0400
600
601     Explain using git send-email for patches
602
603  =item Update ExtUtils::ParseXS to 2.21
604
605  =item Upgrade File::Path to 2.08 (and add taint.t test)
606
607 commit b2680017d861a93d2d51b07bce2f1731086bc8c3
608 Author: Yves Orton <demerphq@gmail.com>
609 Date:   Mon Oct 5 09:34:52 2009 +0200
610
611     in regexec.c move the BOUND logic out of the way of the special CC logic
612
613     This is a first step towards macroizing the special CC handler logic so
614     it is easier to maintain them, for instance interestng optimisations are
615     being used in one, but not all, even though the logic is sharable. By
616     moving the BOUND logic out of the way the code repition is much clearer.
617
618 commit e74a3e73f5e128a77b691fcfc83214f58419a493
619 Author: Jesse Vincent <jesse@bestpractical.com>
620 Date:   Sun Oct 4 05:22:17 2009 +0900
621
622     Correcting mistaken description of 'delete local' in perl5110delta
623
624     Reported by nothingmuch++ and rjbs++
625
626  =TODO FOR RELENG GUIDE   Make Module::Corelist recognise $] as a version number on 5.11.0
627
628  =item  Bump version to 2.20
629
630 commit 6f6ac1dea8501596050bc974dc468632797d51eb
631 Author: Rafael Garcia-Suarez <rgs@consttype.org>
632 Date:   Sat Oct 3 09:56:42 2009 +0200
633
634     Change warning "Unicode character is illegal" to more accurate description
635
636     That now reads "Unicode non-character is illegal in interchange" and the
637     perldiag documentation is expanded a bit.