Commit | Line | Data |
9a7a3243 |
1 | =head1 NAME |
2 | |
9a7a3243 |
3 | perldelta - 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 | |
9a7a3243 |
10 | =head1 Incompatible Changes |
11 | |
8f3d5996 |
12 | =over |
9a7a3243 |
13 | |
8f3d5996 |
14 | =item The boolkeys op moved to the group of hash ops. This breaks binary compatibility. |
9a7a3243 |
15 | |
9bf23bab |
16 | =item C<\s> C<\w> and C<\d> once again have the semantics they had in Perl 5.8.x. |
17 | |
18 | |
8f3d5996 |
19 | =back |
20 | |
9a7a3243 |
21 | =head1 Core Enhancements |
22 | |
8f3d5996 |
23 | =head2 Add C<package NAME VERSION> syntax |
24 | |
efbe0a44 |
25 | This new syntax allows a module author to set the $VERSION of a namespace |
26 | when the namespace is declared with 'package'. It eliminates the need |
27 | for C<our $VERSION = ...> and similar constructs. E.g. |
8f3d5996 |
28 | |
29 | package Foo::Bar 1.23; |
30 | # $Foo::Bar::VERSION == 1.23 |
9a7a3243 |
31 | |
efbe0a44 |
32 | There are several advantages to this: |
8f3d5996 |
33 | |
32619a1d |
34 | =over |
35 | |
efbe0a44 |
36 | =item * |
8f3d5996 |
37 | |
efbe0a44 |
38 | C<$VERSION> is parsed in I<exactly> the same way as C<use NAME VERSION> |
8f3d5996 |
39 | |
efbe0a44 |
40 | =item * |
8f3d5996 |
41 | |
efbe0a44 |
42 | C<$VERSION> is set at compile time |
8f3d5996 |
43 | |
efbe0a44 |
44 | =item * |
8f3d5996 |
45 | |
efbe0a44 |
46 | Eliminates C<$VERSION = ...> and C<eval $VERSION> clutter |
8f3d5996 |
47 | |
efbe0a44 |
48 | =item * |
8f3d5996 |
49 | |
efbe0a44 |
50 | As it requires VERSION to be a numeric literal or v-string |
51 | literal, it can be statically parsed by toolchain modules |
32619a1d |
52 | without C<eval> the way MM-E<gt>parse_version does for C<$VERSION = ...> |
8f3d5996 |
53 | |
efbe0a44 |
54 | =item * |
8f3d5996 |
55 | |
efbe0a44 |
56 | Alpha versions with underscores do not need to be quoted; static |
57 | parsing will preserve the underscore, but during compilation, Perl |
58 | will remove underscores as it does for all numeric literals |
9a7a3243 |
59 | |
efbe0a44 |
60 | It does not break old code with only 'package NAME', but code that uses |
61 | 'package NAME VERSION' will need to be restricted to perl 5.11.X or newer |
62 | This is analogous to the change to open() from two-args to three-args. |
63 | Users requiring the latest Perl will benefit, and perhaps N years from |
64 | now it will become standard practice when Perl 5.12 is targeted the way |
65 | that 5.6 is today. |
9a7a3243 |
66 | |
32619a1d |
67 | =back |
68 | |
9a7a3243 |
69 | =head1 Modules and Pragmata |
70 | |
90b948c5 |
71 | =head2 Updated Modules |
72 | |
8f3d5996 |
73 | =over 4 |
74 | |
75 | =item Upgrade to Test-Simple-0.94 |
76 | |
77 | =item Upgrade to Storable-2.21 |
78 | |
79 | =item Upgrade to Pod-Simple-3.08 |
80 | |
81 | =item Upgrade to Parse-CPAN-Meta-1.40 |
82 | |
83 | =item Upgrade to ExtUtils-Manifest-1.57 |
84 | |
85 | =item Upgrade to ExtUtils-CBuilder-0.260301 |
86 | |
87 | =item Upgrade to CGI.pm-3.48 |
88 | |
efbe0a44 |
89 | =item Upgrade CPANPLUS to CPAN version 0.89_02 |
8f3d5996 |
90 | |
91 | =item Upgrade to threads::shared 1.32 |
92 | |
efbe0a44 |
93 | =item Upgrade ExtUtils::ParseXS to 2.21 |
8f3d5996 |
94 | |
95 | =item Upgrade File::Path to 2.08 (and add taint.t test) |
96 | |
97 | =item Upgrade Module::CoreList to 2.20 |
98 | |
99 | =item Updated Object-Accessor to CPAN version 0.36 |
100 | |
101 | =back |
9a7a3243 |
102 | |
9a7a3243 |
103 | =head1 New Documentation |
104 | |
9a7a3243 |
105 | =over 4 |
106 | |
8f3d5996 |
107 | =item L<pod/perlpolicy.pod> extends the "Social contract about contributed modules" into the beginnings of a document on Perl porting policies. |
9a7a3243 |
108 | |
109 | =back |
110 | |
111 | =head1 Changes to Existing Documentation |
112 | |
8f3d5996 |
113 | =over |
114 | |
115 | =item Documentation for C<$1> in perlvar.pod clarified |
9a7a3243 |
116 | |
8f3d5996 |
117 | =back |
9a7a3243 |
118 | |
119 | =head1 Performance Enhancements |
120 | |
9a7a3243 |
121 | =over 4 |
122 | |
8f3d5996 |
123 | =item C<if (%foo)> has been optimized to be faster than C<if (keys %foo)> |
9a7a3243 |
124 | |
9a7a3243 |
125 | =back |
126 | |
efbe0a44 |
127 | =head1 Platform Specific Notes |
9a7a3243 |
128 | |
129 | =over 4 |
130 | |
8f3d5996 |
131 | =item Darwin (Mac OS X) |
132 | |
133 | =over 4 |
134 | |
135 | =item Skip testing the be_BY.CP1131 locale on Darwin 10 (Mac OS X 10.6), |
136 | as it's still buggy. |
137 | |
138 | =item Correct infelicities in the regexp used to identify buggy locales |
139 | on Darwin 8 and 9 (Mac OS X 10.4 and 10.5, respectively). |
140 | |
141 | =back |
142 | |
143 | =item DragonFly BSD |
144 | |
145 | =over 4 |
146 | |
147 | =item Fix thread library selection [perl #69686] |
148 | |
149 | =back |
150 | |
151 | =item Win32 |
152 | |
153 | =over 4 |
154 | |
155 | =item Initial support for mingw64 is now available |
156 | |
32619a1d |
157 | =item 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. |
158 | |
8f3d5996 |
159 | =back |
9a7a3243 |
160 | |
9a7a3243 |
161 | |
162 | =back |
163 | |
164 | =head1 Selected Bug Fixes |
165 | |
9a7a3243 |
166 | =over 4 |
167 | |
8f3d5996 |
168 | =item Perl now properly returns a syntax error instead of segfaulting |
169 | if C<each>, C<keys> or C<values> is used without an argument |
9a7a3243 |
170 | |
8f3d5996 |
171 | =item C<tell()> now fails properly if called without an argument and when no previous file was read |
172 | |
173 | C<tell()> now returns C<-1>, and sets errno to C<EBADF>, thus restoring the 5.8.x behaviour |
174 | |
175 | =item overload no longer implicitly unsets fallback on repeated 'use overload' lines |
9a7a3243 |
176 | |
90b948c5 |
177 | =item POSIX::strftime() can now handle Unicode characters in the format string. |
178 | |
546378fe |
179 | =item The Windows select() implementation now supports all empty C<fd_set>s more correctly. |
90b948c5 |
180 | |
9a7a3243 |
181 | =back |
182 | |
183 | =head1 New or Changed Diagnostics |
184 | |
9a7a3243 |
185 | =over 4 |
186 | |
9a7a3243 |
187 | |
8f3d5996 |
188 | =item The 'syntax' category was removed from 5 warnings that should only be in 'deprecated'. |
189 | |
190 | =item Three fatal pack/unpack error messages have been normalized to "panic: %s" |
191 | |
192 | =item "Unicode character is illegal" has been rephrased to be more accurate |
193 | |
194 | It now reads C<Unicode non-character is illegal in interchange> and the |
195 | perldiag documentation has been expanded a bit. |
196 | |
197 | =item Perl now defaults to issuing a warning if a deprecated language feature is used. |
198 | |
199 | To disable this feature in a given lexical scope, you should use C<no |
200 | warnings 'deprecated';> For information about which language features |
201 | are deprecated and explanations of various deprecation warnings, please |
202 | see L<perldiag.pod> |
9a7a3243 |
203 | |
204 | =back |
205 | |
6609e040 |
206 | =head1 Testing |
9a7a3243 |
207 | |
9a7a3243 |
208 | =over 4 |
209 | |
8f3d5996 |
210 | =item Significant cleanups to core tests to ensure that language and |
211 | interpreter features are not used before they're tested. |
9a7a3243 |
212 | |
32619a1d |
213 | =item 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. |
214 | |
8f3d5996 |
215 | =item F<t/porting/podcheck.t> automatically checks the well-formedness of |
216 | POD found in all .pl, .pm and .pod files in the F<MANIFEST>, other than in |
217 | dual-lifed modules which are primarily maintained outside the Perl core. |
218 | |
219 | =item F<t/porting/manifest.t> now tests that all files listed in MANIFEST are present. |
9a7a3243 |
220 | |
221 | =back |
222 | |
223 | =head1 Known Problems |
224 | |
9bf23bab |
225 | =over 4 |
9a7a3243 |
226 | |
9bf23bab |
227 | =item Untriaged test crashes on Windows 2000 |
9a7a3243 |
228 | |
9bf23bab |
229 | 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. |
9a7a3243 |
230 | |
9bf23bab |
231 | =item Known test failures on VMS |
9a7a3243 |
232 | |
9bf23bab |
233 | Perl 5.11.1 fails a small set of core and CPAN tests as of this release. |
234 | With luck, that'll be sorted out for 5.11.2 |
9a7a3243 |
235 | |
236 | =back |
237 | |
efbe0a44 |
238 | =head1 Errata for 5.11.0 |
8f3d5996 |
239 | |
2cf7e86b |
240 | =over |
8f3d5996 |
241 | |
90b948c5 |
242 | =item The Perl 5.11.0 release notes incorrectly described 'delete local' |
8f3d5996 |
243 | |
2cf7e86b |
244 | =back |
9a7a3243 |
245 | |
246 | =head1 Acknowledgements |
247 | |
248 | XXX The list of people to thank goes here. |
249 | |
250 | |
251 | =head1 Reporting Bugs |
252 | |
253 | If you find what you think is a bug, you might check the articles |
254 | recently posted to the comp.lang.perl.misc newsgroup and the perl |
255 | bug database at http://rt.perl.org/perlbug/ . There may also be |
256 | information at http://www.perl.org/ , the Perl Home Page. |
257 | |
258 | If you believe you have an unreported bug, please run the B<perlbug> |
259 | program included with your release. Be sure to trim your bug down |
260 | to a tiny but sufficient test case. Your bug report, along with the |
261 | output of C<perl -V>, will be sent off to perlbug@perl.org to be |
262 | analysed by the Perl porting team. |
263 | |
264 | If the bug you are reporting has security implications, which make it |
265 | inappropriate to send to a publicly archived mailing list, then please send |
266 | it to perl5-security-report@perl.org. This points to a closed subscription |
267 | unarchived mailing list, which includes all the core committers, who be able |
268 | to help assess the impact of issues, figure out a resolution, and help |
269 | co-ordinate the release of patches to mitigate or fix the problem across all |
270 | platforms on which Perl is supported. Please only use this address for |
271 | security issues in the Perl core, not for modules independently |
272 | distributed on CPAN. |
273 | |
274 | =head1 SEE ALSO |
275 | |
276 | The F<Changes> file for an explanation of how to view exhaustive details |
277 | on what changed. |
278 | |
279 | The F<INSTALL> file for how to build Perl. |
280 | |
281 | The F<README> file for general stuff. |
282 | |
283 | The F<Artistic> and F<Copying> files for copyright information. |
284 | |
285 | =cut |