This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Unicode-Collate to CPAN version 0.67
[perl5.git] / pod / perl5111delta.pod
... / ...
CommitLineData
1=head1 NAME
2
3perl5111delta - 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
10=head1 Incompatible Changes
11
12=over
13
14=item *
15
16The boolkeys op moved to the group of hash ops. This breaks binary compatibility.
17
18=item *
19
20C<\s> C<\w> and C<\d> once again have the semantics they had in Perl 5.8.x.
21
22
23=back
24
25=head1 Core Enhancements
26
27=head2 Add C<package NAME VERSION> syntax
28
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.
32
33 package Foo::Bar 1.23;
34 # $Foo::Bar::VERSION == 1.23
35
36There are several advantages to this:
37
38=over
39
40=item *
41
42C<$VERSION> is parsed in I<exactly> the same way as C<use NAME VERSION>
43
44=item *
45
46C<$VERSION> is set at compile time
47
48=item *
49
50Eliminates C<$VERSION = ...> and C<eval $VERSION> clutter
51
52=item *
53
54As it requires VERSION to be a numeric literal or v-string
55literal, it can be statically parsed by toolchain modules
56without C<eval> the way MM-E<gt>parse_version does for C<$VERSION = ...>
57
58=item *
59
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
63
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.
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.
70
71=back
72
73=head1 Modules and Pragmata
74
75=head2 Updated Modules
76
77=over 4
78
79=item *
80
81Upgrade to Test-Simple 0.94
82
83=item *
84
85Upgrade to Storable 2.21
86
87=item *
88
89Upgrade to Pod-Simple 3.08
90
91=item *
92
93Upgrade to Parse-CPAN-Meta 1.40
94
95=item *
96
97Upgrade to ExtUtils-Manifest 1.57
98
99=item *
100
101Upgrade to ExtUtils-CBuilder 0.260301
102
103=item *
104
105Upgrade to CGI.pm-3.48
106
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
130
131=back
132
133=head1 New Documentation
134
135=over 4
136
137=item *
138
139L<perlpolicy> extends the "Social contract about contributed modules" into
140the beginnings of a document on Perl porting policies.
141
142=back
143
144=head1 Changes to Existing Documentation
145
146=over
147
148=item Documentation for C<$1> in perlvar.pod clarified
149
150=back
151
152=head1 Performance Enhancements
153
154=over 4
155
156=item C<if (%foo)> has been optimized to be faster than C<if (keys %foo)>
157
158=back
159
160=head1 Platform Specific Notes
161
162=over 4
163
164=item Darwin (Mac OS X)
165
166=over 4
167
168=item *
169
170Skip testing the be_BY.CP1131 locale on Darwin 10 (Mac OS X 10.6),
171as it's still buggy.
172
173=item *
174
175Correct infelicities in the regexp used to identify buggy locales
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
184=item *
185
186Fix thread library selection [perl #69686]
187
188=back
189
190=item Win32
191
192=over 4
193
194=item *
195
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.
201
202=back
203
204
205=back
206
207=head1 Selected Bug Fixes
208
209=over 4
210
211=item *
212
213Perl now properly returns a syntax error instead of segfaulting
214if C<each>, C<keys> or C<values> is used without an argument
215
216=item *
217
218C<tell()> now fails properly if called without an argument and when no previous file was read
219
220C<tell()> now returns C<-1>, and sets errno to C<EBADF>, thus restoring the 5.8.x behaviour
221
222=item *
223
224overload no longer implicitly unsets fallback on repeated 'use overload' lines
225
226=item *
227
228POSIX::strftime() can now handle Unicode characters in the format string.
229
230=item *
231
232The Windows select() implementation now supports all empty C<fd_set>s more correctly.
233
234=back
235
236=head1 New or Changed Diagnostics
237
238=over 4
239
240
241=item *
242
243The 'syntax' category was removed from 5 warnings that should only be in 'deprecated'.
244
245=item *
246
247Three fatal pack/unpack error messages have been normalized to "panic: %s"
248
249=item *
250
251"Unicode character is illegal" has been rephrased to be more accurate
252
253It now reads C<Unicode non-character is illegal in interchange> and the
254perldiag documentation has been expanded a bit.
255
256=item *
257
258Perl now defaults to issuing a warning if a deprecated language feature is used.
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
263see L<perldiag>
264
265=back
266
267=head1 Testing
268
269=over 4
270
271=item *
272
273Significant cleanups to core tests to ensure that language and
274interpreter features are not used before they're tested.
275
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.
279
280=item *
281
282F<t/porting/podcheck.t> automatically checks the well-formedness of
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
286=item *
287
288F<t/porting/manifest.t> now tests that all files listed in MANIFEST are present.
289
290=back
291
292=head1 Known Problems
293
294=over 4
295
296=item Untriaged test crashes on Windows 2000
297
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.
299
300=item Known test failures on VMS
301
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
304
305=back
306
307=head1 Errata for 5.11.0
308
309=over
310
311=item The Perl 5.11.0 release notes incorrectly described 'delete local'
312
313=back
314
315=head1 Acknowledgements
316
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.
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