This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
In S_utf16_textfilter() replace sv_chop() with code, as we move 1 byte at most.
[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
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
8f3d5996 137=item L<pod/perlpolicy.pod> extends the "Social contract about contributed modules" into the beginnings of a document on Perl porting policies.
9a7a3243
JV
138
139=back
140
141=head1 Changes to Existing Documentation
142
8f3d5996
JV
143=over
144
145=item Documentation for C<$1> in perlvar.pod clarified
9a7a3243 146
8f3d5996 147=back
9a7a3243
JV
148
149=head1 Performance Enhancements
150
9a7a3243
JV
151=over 4
152
8f3d5996 153=item C<if (%foo)> has been optimized to be faster than C<if (keys %foo)>
9a7a3243 154
9a7a3243
JV
155=back
156
efbe0a44 157=head1 Platform Specific Notes
9a7a3243
JV
158
159=over 4
160
8f3d5996
JV
161=item Darwin (Mac OS X)
162
163=over 4
164
79801d6a
JV
165=item *
166
167Skip testing the be_BY.CP1131 locale on Darwin 10 (Mac OS X 10.6),
8f3d5996
JV
168as it's still buggy.
169
79801d6a
JV
170=item *
171
172Correct infelicities in the regexp used to identify buggy locales
8f3d5996
JV
173on Darwin 8 and 9 (Mac OS X 10.4 and 10.5, respectively).
174
175=back
176
177=item DragonFly BSD
178
179=over 4
180
79801d6a
JV
181=item *
182
183Fix thread library selection [perl #69686]
8f3d5996
JV
184
185=back
186
187=item Win32
188
189=over 4
190
79801d6a 191=item *
8f3d5996 192
79801d6a
JV
193Initial support for mingw64 is now available
194
195=item *
196
197Various 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 198
8f3d5996 199=back
9a7a3243 200
9a7a3243
JV
201
202=back
203
204=head1 Selected Bug Fixes
205
9a7a3243
JV
206=over 4
207
79801d6a
JV
208=item *
209
210Perl now properly returns a syntax error instead of segfaulting
8f3d5996 211if C<each>, C<keys> or C<values> is used without an argument
9a7a3243 212
79801d6a
JV
213=item *
214
215C<tell()> now fails properly if called without an argument and when no previous file was read
8f3d5996
JV
216
217C<tell()> now returns C<-1>, and sets errno to C<EBADF>, thus restoring the 5.8.x behaviour
218
79801d6a
JV
219=item *
220
221overload no longer implicitly unsets fallback on repeated 'use overload' lines
9a7a3243 222
79801d6a
JV
223=item *
224
225POSIX::strftime() can now handle Unicode characters in the format string.
226
227=item *
90b948c5 228
79801d6a 229The Windows select() implementation now supports all empty C<fd_set>s more correctly.
90b948c5 230
9a7a3243
JV
231=back
232
233=head1 New or Changed Diagnostics
234
9a7a3243
JV
235=over 4
236
9a7a3243 237
79801d6a
JV
238=item *
239
240The 'syntax' category was removed from 5 warnings that should only be in 'deprecated'.
241
242=item *
8f3d5996 243
79801d6a 244Three fatal pack/unpack error messages have been normalized to "panic: %s"
8f3d5996 245
79801d6a
JV
246=item *
247
248"Unicode character is illegal" has been rephrased to be more accurate
8f3d5996
JV
249
250It now reads C<Unicode non-character is illegal in interchange> and the
251perldiag documentation has been expanded a bit.
252
79801d6a
JV
253=item *
254
255Perl now defaults to issuing a warning if a deprecated language feature is used.
8f3d5996
JV
256
257To disable this feature in a given lexical scope, you should use C<no
258warnings 'deprecated';> For information about which language features
259are deprecated and explanations of various deprecation warnings, please
260see L<perldiag.pod>
9a7a3243
JV
261
262=back
263
6609e040 264=head1 Testing
9a7a3243 265
9a7a3243
JV
266=over 4
267
79801d6a
JV
268=item *
269
270Significant cleanups to core tests to ensure that language and
8f3d5996 271interpreter features are not used before they're tested.
9a7a3243 272
79801d6a
JV
273=item *
274
275C<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 276
79801d6a
JV
277=item *
278
279F<t/porting/podcheck.t> automatically checks the well-formedness of
8f3d5996
JV
280POD found in all .pl, .pm and .pod files in the F<MANIFEST>, other than in
281dual-lifed modules which are primarily maintained outside the Perl core.
282
79801d6a
JV
283=item *
284
285F<t/porting/manifest.t> now tests that all files listed in MANIFEST are present.
9a7a3243
JV
286
287=back
288
289=head1 Known Problems
290
9bf23bab 291=over 4
9a7a3243 292
9bf23bab 293=item Untriaged test crashes on Windows 2000
9a7a3243 294
9bf23bab 295Several 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 296
9bf23bab 297=item Known test failures on VMS
9a7a3243 298
9bf23bab
JV
299Perl 5.11.1 fails a small set of core and CPAN tests as of this release.
300With luck, that'll be sorted out for 5.11.2
9a7a3243
JV
301
302=back
303
efbe0a44 304=head1 Errata for 5.11.0
8f3d5996 305
2cf7e86b 306=over
8f3d5996 307
90b948c5 308=item The Perl 5.11.0 release notes incorrectly described 'delete local'
8f3d5996 309
2cf7e86b 310=back
9a7a3243
JV
311
312=head1 Acknowledgements
313
7360c6b4
JV
314Perl 5.11.1 represents approximately 3 weeks development since Perl 5.11.0
315contains 22,000 lines of changes across 396 files from 26 authors and committers:
316
317Abigail, Alex Vandiver, brian d foy, Chris Williams, Craig A. Berry,
318David Fifield, David Golden, demerphq, Eric Brine, Geoffrey T. Dairiki,
319George Greer, H.Merijn Brand, Jan Dubois, Jerry D. Hedden, Jesse Vincent,
320Josh ben Jore, Max Maischein, Nicholas Clark, Rafael Garcia-Suarez,
321Simon Schubert, Sisyphus, Smylers, Steve Hay, Steve Peters, Vincent Pit
322and Yves Orton.
323
324Many of the changes included in this version originated in the CPAN
325modules included in Perl's core. We're grateful to the entire CPAN
326community for helping Perl to flourish.
9a7a3243
JV
327
328=head1 Reporting Bugs
329
330If you find what you think is a bug, you might check the articles
331recently posted to the comp.lang.perl.misc newsgroup and the perl
332bug database at http://rt.perl.org/perlbug/ . There may also be
333information at http://www.perl.org/ , the Perl Home Page.
334
335If you believe you have an unreported bug, please run the B<perlbug>
336program included with your release. Be sure to trim your bug down
337to a tiny but sufficient test case. Your bug report, along with the
338output of C<perl -V>, will be sent off to perlbug@perl.org to be
339analysed by the Perl porting team.
340
341If the bug you are reporting has security implications, which make it
342inappropriate to send to a publicly archived mailing list, then please send
343it to perl5-security-report@perl.org. This points to a closed subscription
344unarchived mailing list, which includes all the core committers, who be able
345to help assess the impact of issues, figure out a resolution, and help
346co-ordinate the release of patches to mitigate or fix the problem across all
347platforms on which Perl is supported. Please only use this address for
348security issues in the Perl core, not for modules independently
349distributed on CPAN.
350
351=head1 SEE ALSO
352
353The F<Changes> file for an explanation of how to view exhaustive details
354on what changed.
355
356The F<INSTALL> file for how to build Perl.
357
358The F<README> file for general stuff.
359
360The F<Artistic> and F<Copying> files for copyright information.
361
362=cut