perl5111delta now includes all changes between 5.11.0 and 5.11.1 and has been lightly...
[p5sagit/p5-mst-13.2.git] / pod / perl5111delta.pod
CommitLineData
9a7a3243 1=head1 NAME
2
9a7a3243 3perldelta - what is new for perl v5.11.1
4
5=head1 DESCRIPTION
6
7This document describes differences between the 5.11.0 release and
8the 5.11.1 release.
9
9a7a3243 10=head1 Incompatible Changes
11
8f3d5996 12=over
9a7a3243 13
8f3d5996 14=item The boolkeys op moved to the group of hash ops. This breaks binary compatibility.
9a7a3243 15
9bf23bab 16=item C<\s> C<\w> and C<\d> once again have the semantics they had in Perl 5.8.x.
17
18
8f3d5996 19=back
20
9a7a3243 21=head1 Core Enhancements
22
8f3d5996 23=head2 Add C<package NAME VERSION> syntax
24
efbe0a44 25This new syntax allows a module author to set the $VERSION of a namespace
26when the namespace is declared with 'package'. It eliminates the need
27for C<our $VERSION = ...> and similar constructs. E.g.
8f3d5996 28
29 package Foo::Bar 1.23;
30 # $Foo::Bar::VERSION == 1.23
9a7a3243 31
efbe0a44 32There are several advantages to this:
8f3d5996 33
32619a1d 34=over
35
efbe0a44 36=item *
8f3d5996 37
efbe0a44 38C<$VERSION> is parsed in I<exactly> the same way as C<use NAME VERSION>
8f3d5996 39
efbe0a44 40=item *
8f3d5996 41
efbe0a44 42C<$VERSION> is set at compile time
8f3d5996 43
efbe0a44 44=item *
8f3d5996 45
efbe0a44 46Eliminates C<$VERSION = ...> and C<eval $VERSION> clutter
8f3d5996 47
efbe0a44 48=item *
8f3d5996 49
efbe0a44 50As it requires VERSION to be a numeric literal or v-string
51literal, it can be statically parsed by toolchain modules
32619a1d 52without C<eval> the way MM-E<gt>parse_version does for C<$VERSION = ...>
8f3d5996 53
efbe0a44 54=item *
8f3d5996 55
efbe0a44 56Alpha versions with underscores do not need to be quoted; static
57parsing will preserve the underscore, but during compilation, Perl
58will remove underscores as it does for all numeric literals
9a7a3243 59
efbe0a44 60It does not break old code with only 'package NAME', but code that uses
61'package NAME VERSION' will need to be restricted to perl 5.11.X or newer
62This is analogous to the change to open() from two-args to three-args.
63Users requiring the latest Perl will benefit, and perhaps N years from
64now it will become standard practice when Perl 5.12 is targeted the way
65that 5.6 is today.
9a7a3243 66
32619a1d 67=back
68
9a7a3243 69=head1 Modules and Pragmata
70
90b948c5 71=head2 Updated Modules
72
8f3d5996 73=over 4
74
75=item Upgrade to Test-Simple-0.94
76
77=item Upgrade to Storable-2.21
78
79=item Upgrade to Pod-Simple-3.08
80
81=item Upgrade to Parse-CPAN-Meta-1.40
82
83=item Upgrade to ExtUtils-Manifest-1.57
84
85=item Upgrade to ExtUtils-CBuilder-0.260301
86
87=item Upgrade to CGI.pm-3.48
88
efbe0a44 89=item Upgrade CPANPLUS to CPAN version 0.89_02
8f3d5996 90
91=item Upgrade to threads::shared 1.32
92
efbe0a44 93=item Upgrade ExtUtils::ParseXS to 2.21
8f3d5996 94
95=item Upgrade File::Path to 2.08 (and add taint.t test)
96
97=item Upgrade Module::CoreList to 2.20
98
99=item Updated Object-Accessor to CPAN version 0.36
100
101=back
9a7a3243 102
9a7a3243 103=head1 New Documentation
104
9a7a3243 105=over 4
106
8f3d5996 107=item L<pod/perlpolicy.pod> extends the "Social contract about contributed modules" into the beginnings of a document on Perl porting policies.
9a7a3243 108
109=back
110
111=head1 Changes to Existing Documentation
112
8f3d5996 113=over
114
115=item Documentation for C<$1> in perlvar.pod clarified
9a7a3243 116
8f3d5996 117=back
9a7a3243 118
119=head1 Performance Enhancements
120
9a7a3243 121=over 4
122
8f3d5996 123=item C<if (%foo)> has been optimized to be faster than C<if (keys %foo)>
9a7a3243 124
9a7a3243 125=back
126
efbe0a44 127=head1 Platform Specific Notes
9a7a3243 128
129=over 4
130
8f3d5996 131=item Darwin (Mac OS X)
132
133=over 4
134
135=item Skip testing the be_BY.CP1131 locale on Darwin 10 (Mac OS X 10.6),
136as it's still buggy.
137
138=item Correct infelicities in the regexp used to identify buggy locales
139on Darwin 8 and 9 (Mac OS X 10.4 and 10.5, respectively).
140
141=back
142
143=item DragonFly BSD
144
145=over 4
146
147=item Fix thread library selection [perl #69686]
148
149=back
150
151=item Win32
152
153=over 4
154
155=item Initial support for mingw64 is now available
156
32619a1d 157=item Various bits of Perl's build infrastructure are no longer converted to win32 line endings at release time. If this hurts you, please speak up.
158
8f3d5996 159=back
9a7a3243 160
9a7a3243 161
162=back
163
164=head1 Selected Bug Fixes
165
9a7a3243 166=over 4
167
8f3d5996 168=item Perl now properly returns a syntax error instead of segfaulting
169if C<each>, C<keys> or C<values> is used without an argument
9a7a3243 170
8f3d5996 171=item C<tell()> now fails properly if called without an argument and when no previous file was read
172
173C<tell()> now returns C<-1>, and sets errno to C<EBADF>, thus restoring the 5.8.x behaviour
174
175=item overload no longer implicitly unsets fallback on repeated 'use overload' lines
9a7a3243 176
90b948c5 177=item POSIX::strftime() can now handle Unicode characters in the format string.
178
546378fe 179=item The Windows select() implementation now supports all empty C<fd_set>s more correctly.
90b948c5 180
9a7a3243 181=back
182
183=head1 New or Changed Diagnostics
184
9a7a3243 185=over 4
186
9a7a3243 187
8f3d5996 188=item The 'syntax' category was removed from 5 warnings that should only be in 'deprecated'.
189
190=item Three fatal pack/unpack error messages have been normalized to "panic: %s"
191
192=item "Unicode character is illegal" has been rephrased to be more accurate
193
194It now reads C<Unicode non-character is illegal in interchange> and the
195perldiag documentation has been expanded a bit.
196
197=item Perl now defaults to issuing a warning if a deprecated language feature is used.
198
199To disable this feature in a given lexical scope, you should use C<no
200warnings 'deprecated';> For information about which language features
201are deprecated and explanations of various deprecation warnings, please
202see L<perldiag.pod>
9a7a3243 203
204=back
205
6609e040 206=head1 Testing
9a7a3243 207
9a7a3243 208=over 4
209
8f3d5996 210=item Significant cleanups to core tests to ensure that language and
211interpreter features are not used before they're tested.
9a7a3243 212
32619a1d 213=item C<make test_porting> now runs a number of important pre-commit checks which might be of use to anyone working on the Perl core.
214
8f3d5996 215=item F<t/porting/podcheck.t> automatically checks the well-formedness of
216POD found in all .pl, .pm and .pod files in the F<MANIFEST>, other than in
217dual-lifed modules which are primarily maintained outside the Perl core.
218
219=item F<t/porting/manifest.t> now tests that all files listed in MANIFEST are present.
9a7a3243 220
221=back
222
223=head1 Known Problems
224
9bf23bab 225=over 4
9a7a3243 226
9bf23bab 227=item Untriaged test crashes on Windows 2000
9a7a3243 228
9bf23bab 229Several porters have reported mysterious crashes when Perl's entire test suite is run after a build on certain Windows 2000 systems. When run by hand, the individual tests reportedly work fine.
9a7a3243 230
9bf23bab 231=item Known test failures on VMS
9a7a3243 232
9bf23bab 233Perl 5.11.1 fails a small set of core and CPAN tests as of this release.
234With luck, that'll be sorted out for 5.11.2
9a7a3243 235
236=back
237
efbe0a44 238=head1 Errata for 5.11.0
8f3d5996 239
2cf7e86b 240=over
8f3d5996 241
90b948c5 242=item The Perl 5.11.0 release notes incorrectly described 'delete local'
8f3d5996 243
2cf7e86b 244=back
9a7a3243 245
246=head1 Acknowledgements
247
248XXX The list of people to thank goes here.
249
250
251=head1 Reporting Bugs
252
253If you find what you think is a bug, you might check the articles
254recently posted to the comp.lang.perl.misc newsgroup and the perl
255bug database at http://rt.perl.org/perlbug/ . There may also be
256information at http://www.perl.org/ , the Perl Home Page.
257
258If you believe you have an unreported bug, please run the B<perlbug>
259program included with your release. Be sure to trim your bug down
260to a tiny but sufficient test case. Your bug report, along with the
261output of C<perl -V>, will be sent off to perlbug@perl.org to be
262analysed by the Perl porting team.
263
264If the bug you are reporting has security implications, which make it
265inappropriate to send to a publicly archived mailing list, then please send
266it to perl5-security-report@perl.org. This points to a closed subscription
267unarchived mailing list, which includes all the core committers, who be able
268to help assess the impact of issues, figure out a resolution, and help
269co-ordinate the release of patches to mitigate or fix the problem across all
270platforms on which Perl is supported. Please only use this address for
271security issues in the Perl core, not for modules independently
272distributed on CPAN.
273
274=head1 SEE ALSO
275
276The F<Changes> file for an explanation of how to view exhaustive details
277on what changed.
278
279The F<INSTALL> file for how to build Perl.
280
281The F<README> file for general stuff.
282
283The F<Artistic> and F<Copying> files for copyright information.
284
285=cut