regcomp.c: Move [] inversion optimization
[perl.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
241 =item *
242
243 The 'syntax' category was removed from 5 warnings that should only be in 'deprecated'.
244
245 =item *
246
247 Three 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
253 It now reads C<Unicode non-character is illegal in interchange> and the
254 perldiag documentation has been expanded a bit.
255
256 =item *
257
258 Perl now defaults to issuing a warning if a deprecated language feature is used.
259
260 To disable this feature in a given lexical scope, you should use C<no
261 warnings 'deprecated';> For information about which language features
262 are deprecated and explanations of various deprecation warnings, please
263 see L<perldiag>
264
265 =back
266
267 =head1 Testing
268
269 =over 4
270
271 =item *
272
273 Significant cleanups to core tests to ensure that language and
274 interpreter features are not used before they're tested.
275
276 =item *
277
278 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.
279
280 =item *
281
282 F<t/porting/podcheck.t> automatically checks the well-formedness of
283 POD found in all .pl, .pm and .pod files in the F<MANIFEST>, other than in
284 dual-lifed modules which are primarily maintained outside the Perl core.
285
286 =item *
287
288 F<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
298 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.
299
300 =item Known test failures on VMS
301
302 Perl 5.11.1 fails a small set of core and CPAN tests as of this release.
303 With 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
317 Perl 5.11.1 represents approximately 3 weeks development since Perl 5.11.0
318 contains 22,000 lines of changes across 396 files from 26 authors and committers:
319
320 Abigail, Alex Vandiver, brian d foy, Chris Williams, Craig A. Berry,
321 David Fifield, David Golden, demerphq, Eric Brine, Geoffrey T. Dairiki,
322 George Greer, H.Merijn Brand, Jan Dubois, Jerry D. Hedden, Jesse Vincent,
323 Josh ben Jore, Max Maischein, Nicholas Clark, Rafael Garcia-Suarez,
324 Simon Schubert, Sisyphus, Smylers, Steve Hay, Steve Peters, Vincent Pit
325 and Yves Orton.
326
327 Many of the changes included in this version originated in the CPAN
328 modules included in Perl's core.  We're grateful to the entire CPAN
329 community for helping Perl to flourish.
330
331 =head1 Reporting Bugs
332
333 If you find what you think is a bug, you might check the articles
334 recently posted to the comp.lang.perl.misc newsgroup and the perl
335 bug database at http://rt.perl.org/perlbug/ .  There may also be
336 information at http://www.perl.org/ , the Perl Home Page.
337
338 If you believe you have an unreported bug, please run the B<perlbug>
339 program included with your release.  Be sure to trim your bug down
340 to a tiny but sufficient test case.  Your bug report, along with the
341 output of C<perl -V>, will be sent off to perlbug@perl.org to be
342 analysed by the Perl porting team.
343
344 If the bug you are reporting has security implications, which make it
345 inappropriate to send to a publicly archived mailing list, then please send
346 it to perl5-security-report@perl.org. This points to a closed subscription
347 unarchived mailing list, which includes all the core committers, who 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