This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
In buildtoc, pull the sanity check for NUL bytes to the top level.
[perl5.git] / pod / perl5111delta.pod
CommitLineData
9a7a3243
JV
1=head1 NAME
2
d5114285 3perl5111delta - what is new for perl v5.11.1
9a7a3243
JV
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
79801d6a
JV
14=item *
15
16The boolkeys op moved to the group of hash ops. This breaks binary compatibility.
9a7a3243 17
79801d6a
JV
18=item *
19
20C<\s> C<\w> and C<\d> once again have the semantics they had in Perl 5.8.x.
9bf23bab
JV
21
22
8f3d5996
JV
23=back
24
9a7a3243
JV
25=head1 Core Enhancements
26
8f3d5996
JV
27=head2 Add C<package NAME VERSION> syntax
28
efbe0a44
JV
29This new syntax allows a module author to set the $VERSION of a namespace
30when the namespace is declared with 'package'. It eliminates the need
31for C<our $VERSION = ...> and similar constructs. E.g.
8f3d5996
JV
32
33 package Foo::Bar 1.23;
34 # $Foo::Bar::VERSION == 1.23
9a7a3243 35
efbe0a44 36There are several advantages to this:
8f3d5996 37
32619a1d
JV
38=over
39
efbe0a44 40=item *
8f3d5996 41
efbe0a44 42C<$VERSION> is parsed in I<exactly> the same way as C<use NAME VERSION>
8f3d5996 43
efbe0a44 44=item *
8f3d5996 45
efbe0a44 46C<$VERSION> is set at compile time
8f3d5996 47
efbe0a44 48=item *
8f3d5996 49
efbe0a44 50Eliminates C<$VERSION = ...> and C<eval $VERSION> clutter
8f3d5996 51
efbe0a44 52=item *
8f3d5996 53
efbe0a44
JV
54As it requires VERSION to be a numeric literal or v-string
55literal, it can be statically parsed by toolchain modules
32619a1d 56without C<eval> the way MM-E<gt>parse_version does for C<$VERSION = ...>
8f3d5996 57
efbe0a44 58=item *
8f3d5996 59
efbe0a44
JV
60Alpha versions with underscores do not need to be quoted; static
61parsing will preserve the underscore, but during compilation, Perl
62will remove underscores as it does for all numeric literals
9a7a3243 63
70ec4673
JV
64It does not break old code with only C<package NAME>, but code that uses
65C<package NAME VERSION> will need to be restricted to perl 5.11.X or newer
66This is analogous to the change to C<open> from two-args to three-args.
efbe0a44
JV
67Users requiring the latest Perl will benefit, and perhaps N years from
68now it will become standard practice when Perl 5.12 is targeted the way
69that 5.6 is today.
9a7a3243 70
32619a1d
JV
71=back
72
9a7a3243
JV
73=head1 Modules and Pragmata
74
90b948c5
JV
75=head2 Updated Modules
76
8f3d5996
JV
77=over 4
78
79801d6a 79=item *
8f3d5996 80
79801d6a 81Upgrade to Test-Simple 0.94
8f3d5996 82
79801d6a 83=item *
8f3d5996 84
79801d6a 85Upgrade to Storable 2.21
8f3d5996 86
79801d6a 87=item *
8f3d5996 88
79801d6a 89Upgrade to Pod-Simple 3.08
8f3d5996 90
79801d6a 91=item *
8f3d5996 92
79801d6a 93Upgrade to Parse-CPAN-Meta 1.40
8f3d5996 94
79801d6a 95=item *
8f3d5996 96
79801d6a 97Upgrade to ExtUtils-Manifest 1.57
8f3d5996 98
79801d6a
JV
99=item *
100
101Upgrade to ExtUtils-CBuilder 0.260301
102
103=item *
8f3d5996 104
79801d6a 105Upgrade to CGI.pm-3.48
8f3d5996 106
79801d6a
JV
107=item *
108
109Upgrade CPANPLUS to CPAN version 0.89_02
110
111=item *
112
113Upgrade to threads::shared 1.32
114
115=item *
116
117Upgrade ExtUtils::ParseXS to 2.21
118
119=item *
120
121Upgrade File::Path to 2.08 (and add taint.t test)
122
123=item *
124
125Upgrade Module::CoreList to 2.20
126
127=item *
128
129Updated Object::Accessor to0.36
8f3d5996
JV
130
131=back
9a7a3243 132
9a7a3243
JV
133=head1 New Documentation
134
9a7a3243
JV
135=over 4
136
d408791f
RGS
137=item *
138
139L<perlpolicy> extends the "Social contract about contributed modules" into
140the beginnings of a document on Perl porting policies.
9a7a3243
JV
141
142=back
143
144=head1 Changes to Existing Documentation
145
8f3d5996
JV
146=over
147
148=item Documentation for C<$1> in perlvar.pod clarified
9a7a3243 149
8f3d5996 150=back
9a7a3243
JV
151
152=head1 Performance Enhancements
153
9a7a3243
JV
154=over 4
155
8f3d5996 156=item C<if (%foo)> has been optimized to be faster than C<if (keys %foo)>
9a7a3243 157
9a7a3243
JV
158=back
159
efbe0a44 160=head1 Platform Specific Notes
9a7a3243
JV
161
162=over 4
163
8f3d5996
JV
164=item Darwin (Mac OS X)
165
166=over 4
167
79801d6a
JV
168=item *
169
170Skip testing the be_BY.CP1131 locale on Darwin 10 (Mac OS X 10.6),
8f3d5996
JV
171as it's still buggy.
172
79801d6a
JV
173=item *
174
175Correct infelicities in the regexp used to identify buggy locales
8f3d5996
JV
176on Darwin 8 and 9 (Mac OS X 10.4 and 10.5, respectively).
177
178=back
179
180=item DragonFly BSD
181
182=over 4
183
79801d6a
JV
184=item *
185
186Fix thread library selection [perl #69686]
8f3d5996
JV
187
188=back
189
190=item Win32
191
192=over 4
193
79801d6a 194=item *
8f3d5996 195
79801d6a
JV
196Initial support for mingw64 is now available
197
198=item *
199
200Various bits of Perl's build infrastructure are no longer converted to win32 line endings at release time. If this hurts you, please speak up.
32619a1d 201
8f3d5996 202=back
9a7a3243 203
9a7a3243
JV
204
205=back
206
207=head1 Selected Bug Fixes
208
9a7a3243
JV
209=over 4
210
79801d6a
JV
211=item *
212
213Perl now properly returns a syntax error instead of segfaulting
8f3d5996 214if C<each>, C<keys> or C<values> is used without an argument
9a7a3243 215
79801d6a
JV
216=item *
217
218C<tell()> now fails properly if called without an argument and when no previous file was read
8f3d5996
JV
219
220C<tell()> now returns C<-1>, and sets errno to C<EBADF>, thus restoring the 5.8.x behaviour
221
79801d6a
JV
222=item *
223
224overload no longer implicitly unsets fallback on repeated 'use overload' lines
9a7a3243 225
79801d6a
JV
226=item *
227
228POSIX::strftime() can now handle Unicode characters in the format string.
229
230=item *
90b948c5 231
79801d6a 232The Windows select() implementation now supports all empty C<fd_set>s more correctly.
90b948c5 233
9a7a3243
JV
234=back
235
236=head1 New or Changed Diagnostics
237
9a7a3243
JV
238=over 4
239
9a7a3243 240
79801d6a
JV
241=item *
242
243The 'syntax' category was removed from 5 warnings that should only be in 'deprecated'.
244
245=item *
8f3d5996 246
79801d6a 247Three fatal pack/unpack error messages have been normalized to "panic: %s"
8f3d5996 248
79801d6a
JV
249=item *
250
251"Unicode character is illegal" has been rephrased to be more accurate
8f3d5996
JV
252
253It now reads C<Unicode non-character is illegal in interchange> and the
254perldiag documentation has been expanded a bit.
255
79801d6a
JV
256=item *
257
258Perl now defaults to issuing a warning if a deprecated language feature is used.
8f3d5996
JV
259
260To disable this feature in a given lexical scope, you should use C<no
261warnings 'deprecated';> For information about which language features
262are deprecated and explanations of various deprecation warnings, please
3676dc40 263see L<perldiag>
9a7a3243
JV
264
265=back
266
6609e040 267=head1 Testing
9a7a3243 268
9a7a3243
JV
269=over 4
270
79801d6a
JV
271=item *
272
273Significant cleanups to core tests to ensure that language and
8f3d5996 274interpreter features are not used before they're tested.
9a7a3243 275
79801d6a
JV
276=item *
277
278C<make test_porting> now runs a number of important pre-commit checks which might be of use to anyone working on the Perl core.
32619a1d 279
79801d6a
JV
280=item *
281
282F<t/porting/podcheck.t> automatically checks the well-formedness of
8f3d5996
JV
283POD found in all .pl, .pm and .pod files in the F<MANIFEST>, other than in
284dual-lifed modules which are primarily maintained outside the Perl core.
285
79801d6a
JV
286=item *
287
288F<t/porting/manifest.t> now tests that all files listed in MANIFEST are present.
9a7a3243
JV
289
290=back
291
292=head1 Known Problems
293
9bf23bab 294=over 4
9a7a3243 295
9bf23bab 296=item Untriaged test crashes on Windows 2000
9a7a3243 297
9bf23bab 298Several 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 299
9bf23bab 300=item Known test failures on VMS
9a7a3243 301
9bf23bab
JV
302Perl 5.11.1 fails a small set of core and CPAN tests as of this release.
303With luck, that'll be sorted out for 5.11.2
9a7a3243
JV
304
305=back
306
efbe0a44 307=head1 Errata for 5.11.0
8f3d5996 308
2cf7e86b 309=over
8f3d5996 310
90b948c5 311=item The Perl 5.11.0 release notes incorrectly described 'delete local'
8f3d5996 312
2cf7e86b 313=back
9a7a3243
JV
314
315=head1 Acknowledgements
316
7360c6b4
JV
317Perl 5.11.1 represents approximately 3 weeks development since Perl 5.11.0
318contains 22,000 lines of changes across 396 files from 26 authors and committers:
319
320Abigail, Alex Vandiver, brian d foy, Chris Williams, Craig A. Berry,
321David Fifield, David Golden, demerphq, Eric Brine, Geoffrey T. Dairiki,
322George Greer, H.Merijn Brand, Jan Dubois, Jerry D. Hedden, Jesse Vincent,
323Josh ben Jore, Max Maischein, Nicholas Clark, Rafael Garcia-Suarez,
324Simon Schubert, Sisyphus, Smylers, Steve Hay, Steve Peters, Vincent Pit
325and Yves Orton.
326
327Many of the changes included in this version originated in the CPAN
328modules included in Perl's core. We're grateful to the entire CPAN
329community for helping Perl to flourish.
9a7a3243
JV
330
331=head1 Reporting Bugs
332
333If you find what you think is a bug, you might check the articles
334recently posted to the comp.lang.perl.misc newsgroup and the perl
335bug database at http://rt.perl.org/perlbug/ . There may also be
336information at http://www.perl.org/ , the Perl Home Page.
337
338If you believe you have an unreported bug, please run the B<perlbug>
339program included with your release. Be sure to trim your bug down
340to a tiny but sufficient test case. Your bug report, along with the
341output of C<perl -V>, will be sent off to perlbug@perl.org to be
342analysed by the Perl porting team.
343
344If the bug you are reporting has security implications, which make it
345inappropriate to send to a publicly archived mailing list, then please send
346it to perl5-security-report@perl.org. This points to a closed subscription
347unarchived mailing list, which includes all the core committers, who be able
348to help assess the impact of issues, figure out a resolution, and help
349co-ordinate the release of patches to mitigate or fix the problem across all
350platforms on which Perl is supported. Please only use this address for
351security issues in the Perl core, not for modules independently
352distributed on CPAN.
353
354=head1 SEE ALSO
355
356The F<Changes> file for an explanation of how to view exhaustive details
357on what changed.
358
359The F<INSTALL> file for how to build Perl.
360
361The F<README> file for general stuff.
362
363The F<Artistic> and F<Copying> files for copyright information.
364
365=cut