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