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