| 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 |