This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Eviscerate README.macos to match the state of the world
[perl5.git] / pod / perl5111delta.pod
CommitLineData
9a7a3243
JV
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
JV
15
16=head1 Incompatible Changes
17
18XXX 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
26XXX New core language features go here. Summarise user-visible core language
27enhancements. Particularly prominent performance optimisations could go
28here, but most should go in the L</Performance Enhancements> section.
29
30=head1 New Platforms
31
32XXX List any platforms that this version of perl compiles on, that previous
33versions did not. These will either be enabled by new files in the F<hints/>
34directories, or new subdirectories and F<README> files at the top level of the
35source tree.
36
37=head1 Modules and Pragmata
38
39XXX All changes to installed files in F<ext/> and F<lib/> go here, in a list
40ordered by distribution name. Minimally it should be the module version,
41but it's more useful to the end user to give a paragraph's summary of the
42module's changes. In an ideal world, dual-life modules would have a
43F<Changes> file that could be cribbed.
44
45=head2 New Modules and Pragmata
46
47=over 4
48
49=item C<XXX>
50
51XXX
52
53=back
54
55=head2 Pragmata Changes
56
57=over 4
58
59=item C<XXX>
60
61XXX
62
63=back
64
65=head2 Updated Modules
66
67=over 4
68
69=item C<XXX>
70
71XXX
72
73=back
74
75=head1 Utility Changes
76
77XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
78here. Most of these are built within the directories F<utils> and F<x2p>.
79
80=over 4
81
82=item F<XXX>
83
84XXX
85
86=back
87
88=head1 New Documentation
89
90XXX Changes which create B<new> files in F<pod/> go here.
91
92=over 4
93
94=item L<XXX>
95
96XXX
97
98=back
99
100=head1 Changes to Existing Documentation
101
102XXX Changes which significantly change existing files in F<pod/> go here.
103Any changes to F<pod/perldiag.pod> should go in L</New or Changed Diagnostics>.
104
105
106=head1 Performance Enhancements
107
108XXX Changes which enhance performance without changing behaviour go here. There
109may well be none in a stable release.
110
111=over 4
112
113=item *
114
115XXX
116
117=back
118
119=head1 Installation and Configuration Improvements
120
121XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
122go here.
123
124=head2 Configuration improvements
125
126XXX
127
128=head2 Compilation improvements
129
130XXX
131
132=head2 Platform Specific Changes
133
134=over 4
135
136=item XXX-some-platform
137
138XXX
139
140=back
141
142=head1 Selected Bug Fixes
143
144XXX Important bug fixes in the core language are summarised here.
145Bug fixes in files in F<ext/> and F<lib/> are best summarised in
146L</Modules and Pragmata>.
147
148=over 4
149
150=item *
151
152XXX
153
154=back
155
156=head1 New or Changed Diagnostics
157
158XXX New or changed warnings emitted by the core's C<C> code go here.
159
160=over 4
161
162=item C<XXX>
163
164XXX
165
166=back
167
168=head1 Changed Internals
169
170XXX Changes which affect the interface available to C<XS> code go here.
171
172=over 4
173
174=item *
175
176XXX
177
178=back
179
6609e040 180=head1 Testing
9a7a3243
JV
181
182XXX Changes which create B<new> files in F<t/> go here. Changes to
183existing files in F<t/> aren't worth summarising, although the bugs that
184they represent may be.
185
186=over 4
187
6609e040 188=item Significant cleanups to core tests to ensure that language and interpreter features are not used before they're tested.
9a7a3243
JV
189
190XXX
191
192=back
193
194=head1 Known Problems
195
196XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
197tests that had to be C<TODO>ed for the release would be noted here, unless
198they were specific to a particular platform (see below).
199
200This is a list of some significant unfixed bugs, which are regressions
201from either 5.10.1 or 5.11.0.
202
203=over 4
204
205=item *
206
207XXX
208
209=back
210
211=head1 Deprecations
212
213XXX Add any new known deprecations here.
214
215The following items are now deprecated.
216
217=over 4
218
219=item *
220
221XXX
222
223=back
224
225=head1 Platform Specific Notes
226
227XXX Any changes specific to a particular platform. VMS and Win32 are the usual
228stars here. It's probably best to group changes under the same section layout
229as the main perldelta
230
345e2394
JV
231
232=head1 Obituary
9a7a3243
JV
233
234XXX If any significant core contributor has died, we've added a short obituary
235here.
236
237=head1 Acknowledgements
238
239XXX The list of people to thank goes here.
240
241
242=head1 Reporting Bugs
243
244If you find what you think is a bug, you might check the articles
245recently posted to the comp.lang.perl.misc newsgroup and the perl
246bug database at http://rt.perl.org/perlbug/ . There may also be
247information at http://www.perl.org/ , the Perl Home Page.
248
249If you believe you have an unreported bug, please run the B<perlbug>
250program included with your release. Be sure to trim your bug down
251to a tiny but sufficient test case. Your bug report, along with the
252output of C<perl -V>, will be sent off to perlbug@perl.org to be
253analysed by the Perl porting team.
254
255If the bug you are reporting has security implications, which make it
256inappropriate to send to a publicly archived mailing list, then please send
257it to perl5-security-report@perl.org. This points to a closed subscription
258unarchived mailing list, which includes all the core committers, who be able
259to help assess the impact of issues, figure out a resolution, and help
260co-ordinate the release of patches to mitigate or fix the problem across all
261platforms on which Perl is supported. Please only use this address for
262security issues in the Perl core, not for modules independently
263distributed on CPAN.
264
265=head1 SEE ALSO
266
267The F<Changes> file for an explanation of how to view exhaustive details
268on what changed.
269
270The F<INSTALL> file for how to build Perl.
271
272The F<README> file for general stuff.
273
274The F<Artistic> and F<Copying> files for copyright information.
275
276=cut
6609e040
JV
277
278This 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
287commit d1d15184c41c6ad4f16829561163cd118e5ae917
288Author: Nicholas Clark <nick@ccl4.org>
289Date: 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
319commit a44d0896a6c4bfe01ea532694b8c1c073ea6a2f1
320Author: Nicholas Clark <nick@ccl4.org>
321Date: 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
331commit 2e0eeeaafce11cb0128a6d1e245f1a5b806e3a87
332Author: Nicholas Clark <nick@ccl4.org>
333Date: 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
339commit 867fa1e2da145229b4db2c6e8d5b51700c15f114
340Author: demerphq <demerphq@gmail.com>
341Date: 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
354commit 1c85afcecc8ee030e2780aa5bfa85692c8db64df
355Author: demerphq <demerphq@gmail.com>
356Date: 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
367commit 55b77936aef50881a71470fd06e66edffd66d9de
368Author: Sisyphus <sisyphus1@optusnet.com.au>
369Date: Wed Oct 14 10:02:16 2009 -0400
370
371 Add mingw64 support for win32
372
373commit d4c22fec77d7244882ce42a93a4ad25bdada2519
374Author: Sisyphus <sisyphus1@optusnet.com.au>
375Date: Wed Oct 14 06:58:49 2009 -0400
376
377 Patch t/win32/system.t for mingw32/64
378
379commit e4d771f5006ebd70b76422437cce60e9ac40c830
380Author: Jan Dubois <jand@activestate.com>
381Date: 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
402Author: Smylers <Smylers@stripey.com>
403Date: 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
439commit c989e6a3e4b89b26d315693449c76cdcb754611f
440Author: Geoffrey T. Dairiki <dairiki at dairiki.org>
441Date: 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
446commit 5f5991a0d6d8ef99d2643b88a7d9285e35277331
447Author: Nicholas Clark <nick@ccl4.org>
448Date: Mon Oct 12 15:54:30 2009 +0100
449
450 Normalise 3 fatal pack/unpack error messages to "panic: %s"
451
452commit 04e82a462b85b3d6265b04aa07a405316616dc66
453Author: Nicholas Clark <nick@ccl4.org>
454Date: Sun Oct 11 18:56:01 2009 +0100
455
456 porting/manifest.t now tests that all files listed in MANIFEST are present.
457
458commit 41239ce77fcd273e18c4017d3d96a5f42e228594
459Author: Nicholas Clark <nick@ccl4.org>
460Date: 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
467commit fc5e5837c991d3d3224259ff5c1d728d4e0636e2
468Author: Nicholas Clark <nick@ccl4.org>
469Date: 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
495commit 6c1b5ced18901286f16f6d5f6914ba4b5e3db601
496Author: Simon 'corecode' Schubert <corecode@fs.ei.tum.de>
497Date: Sat Oct 10 17:55:26 2009 +0100
498
499 [perl #69686] Fix DragonFly thread lib selection
500
501
502
503Merge: 8e32470 e92f586
504Author: Rafael Garcia-Suarez <rgs@consttype.org>
505Date: Thu Oct 8 15:13:18 2009 +0200
506
507 Merge branch 'feature/package-name-version' into blead
508
509commit f03173f2c707a804ec3e9c291d2ab1adb9db4abc
510Author: Rafael Garcia-Suarez <rgs@consttype.org>
511Date: 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
518commit a916b30221d5aac718ed67c9a5bc9c0905daddd0
519Author: Rafael Garcia-Suarez <rgs@consttype.org>
520Date: 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
531commit 6fa4d285bff5644bebb95aff09143322042282cc
532Author: David Golden <dagolden@cpan.org>
533Date: 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
591commit a67b1afafddaaed84e79a867acc888c9ccfb6460
592Author: Max Maischein <corion@corion.net>
593Date: Mon Oct 5 22:49:09 2009 +0200
594
595New porting tests to automatically check POD in lib/, ext/ and pod/
596
597commit 2d5f1d01166a325b29ccc86102d26e68def13786
598Author: David Golden <dagolden@cpan.org>
599Date: 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
607commit b2680017d861a93d2d51b07bce2f1731086bc8c3
608Author: Yves Orton <demerphq@gmail.com>
609Date: 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
618commit e74a3e73f5e128a77b691fcfc83214f58419a493
619Author: Jesse Vincent <jesse@bestpractical.com>
620Date: 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
630commit 6f6ac1dea8501596050bc974dc468632797d51eb
631Author: Rafael Garcia-Suarez <rgs@consttype.org>
632Date: 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.