| 1 | |
| 2 | =encoding utf8 |
| 3 | |
| 4 | =head1 NAME |
| 5 | |
| 6 | perl51911delta - what is new for perl v5.19.11 |
| 7 | |
| 8 | =head1 DESCRIPTION |
| 9 | |
| 10 | This document describes differences between the 5.19.10 release and the 5.19.11 |
| 11 | release. |
| 12 | |
| 13 | If you are upgrading from an earlier release such as 5.19.9, first read |
| 14 | L<perl51910delta>, which describes differences between 5.19.9 and 5.19.10. |
| 15 | |
| 16 | =head1 Modules and Pragmata |
| 17 | |
| 18 | =head2 New Modules and Pragmata |
| 19 | |
| 20 | =over 4 |
| 21 | |
| 22 | =item * |
| 23 | |
| 24 | L<experimental> version 0.007 has been added. |
| 25 | |
| 26 | This pragma provides an easy and convenient way to enable or disable |
| 27 | experimental features. |
| 28 | |
| 29 | =back |
| 30 | |
| 31 | =head2 Updated Modules and Pragmata |
| 32 | |
| 33 | =over 4 |
| 34 | |
| 35 | =item * |
| 36 | |
| 37 | L<Carp> has been upgraded from version 1.33 to 1.3301. |
| 38 | |
| 39 | No changes have been made to the installed code other than the version bump to |
| 40 | keep in sync with the latest CPAN release. |
| 41 | |
| 42 | =item * |
| 43 | |
| 44 | L<CPAN> has been upgraded from version 2.04-TRIAL to 2.05. |
| 45 | |
| 46 | This fixes L<local::lib> shell variable string output and prevents an endless |
| 47 | loop when running "notest test Module" for some Module having dependencies. |
| 48 | |
| 49 | =item * |
| 50 | |
| 51 | L<DB> has been upgraded from version 1.43 to 1.44. |
| 52 | |
| 53 | The debugger now correctly restores its input and output filehandles after |
| 54 | using the pager command. |
| 55 | [L<perl #121456|https://rt.perl.org/Public/Bug/Display.html?id=121456>] |
| 56 | |
| 57 | =item * |
| 58 | |
| 59 | L<ExtUtils::Install> has been upgraded from version 1.63 to 1.67. |
| 60 | |
| 61 | When upgrading an already-installed file, L<ExtUtils::Install> could mess up |
| 62 | the permissions of files if the old versions of files were hard or symbolic |
| 63 | links. This has now been fixed. |
| 64 | [L<perl #72028|https://rt.perl.org/Public/Bug/Display.html?id=72028>] |
| 65 | |
| 66 | The MM_TEST_ROOT feature has been removed from the tests. |
| 67 | |
| 68 | =item * |
| 69 | |
| 70 | L<ExtUtils::MakeMaker> has been upgraded from version 6.92 to 6.94. |
| 71 | |
| 72 | A regression in MM_Unix.pm has been resolved. |
| 73 | [L<Issue #96|https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/issues/96>] |
| 74 | |
| 75 | =item * |
| 76 | |
| 77 | L<Module::CoreList> has been upgraded from version 3.09 to 3.10. |
| 78 | |
| 79 | The list of Perl versions covered has been updated. |
| 80 | |
| 81 | =item * |
| 82 | |
| 83 | L<PerlIO> has been upgraded from version 1.08 to 1.09. |
| 84 | |
| 85 | The warning about the use of the C<:utf8> layer has been made more prominent. |
| 86 | |
| 87 | =item * |
| 88 | |
| 89 | L<Storable> has been upgraded from version 2.48 to 2.49. |
| 90 | |
| 91 | Recognition of tied SVs has been tightened up. |
| 92 | |
| 93 | =item * |
| 94 | |
| 95 | L<Win32> has been upgraded from version 0.48 to 0.49. |
| 96 | |
| 97 | This fixes a problem when building with B<gcc> version 4.8.1 from |
| 98 | L<http://www.mingw.org>. |
| 99 | [L<cpan #94730|https://rt.cpan.org/Public/Bug/Display.html?id=94730>] |
| 100 | |
| 101 | =back |
| 102 | |
| 103 | =head1 Diagnostics |
| 104 | |
| 105 | The following additions or changes have been made to diagnostic output, |
| 106 | including warnings and fatal error messages. For the complete list of |
| 107 | diagnostic messages, see L<perldiag>. |
| 108 | |
| 109 | =head2 Changes to Existing Diagnostics |
| 110 | |
| 111 | =over 4 |
| 112 | |
| 113 | =item * |
| 114 | |
| 115 | The now fatal error message C<Character following "\c" must be ASCII> has been |
| 116 | reworded as C<Character following "\c" must be printable ASCII> to emphasize |
| 117 | that in C<\cI<X>>, I<X> must be a I<printable (non-control)> ASCII character. |
| 118 | |
| 119 | =back |
| 120 | |
| 121 | =head1 Utility Changes |
| 122 | |
| 123 | =head2 L<perlbug> |
| 124 | |
| 125 | =over 4 |
| 126 | |
| 127 | =item * |
| 128 | |
| 129 | L<perlbug> has been modified to supply the report template with CRLF line |
| 130 | endings on Windows. |
| 131 | [L<perl #121277|https://rt.perl.org/Public/Bug/Display.html?id=121277>] |
| 132 | |
| 133 | =item * |
| 134 | |
| 135 | L<perlbug> now makes as few assumptions as possible about the encoding of the |
| 136 | report. This will likely change in the future to assume UTF-8 by default but |
| 137 | allow a user override. |
| 138 | |
| 139 | =back |
| 140 | |
| 141 | =head1 Configuration and Compilation |
| 142 | |
| 143 | =over 4 |
| 144 | |
| 145 | =item * |
| 146 | |
| 147 | By default, B<gcc> 4.9 does some optimizations that break perl. The B<-fwrapv> |
| 148 | option disables those optimizations (and probably others), so for B<gcc> 4.9 |
| 149 | (and later, since the optimizations probably won't go away), F<Configure> now |
| 150 | adds B<-fwrapv> unless the user requests B<-fno-wrapv>, which disables |
| 151 | B<-fwrapv>, or B<-fsanitize=undefined>, which turns the overflows B<-fwrapv> |
| 152 | ignores into runtime errors. (This is not done prior to B<gcc> 4.3, since |
| 153 | B<-fwrapv> was broken then.) |
| 154 | [L<perl #121505|https://rt.perl.org/Public/Bug/Display.html?id=121505>] |
| 155 | |
| 156 | =back |
| 157 | |
| 158 | =head1 Platform Support |
| 159 | |
| 160 | =head2 Platform-Specific Notes |
| 161 | |
| 162 | =over 4 |
| 163 | |
| 164 | =item VMS |
| 165 | |
| 166 | On VMS only, a check for glob metacharacters in a path returned by the |
| 167 | L<C<glob()>|perlfunc/glob> operator has been replaced with a check for VMS |
| 168 | wildcard characters. This saves a significant number of unnecessary |
| 169 | L<C<lstat()>|perlfunc/lstat> calls such that some simple glob operations become |
| 170 | 60-80% faster. |
| 171 | |
| 172 | =item Win32 |
| 173 | |
| 174 | The time taken to build perl on Windows has been reduced quite significantly |
| 175 | (time savings in the region of 30-40% are typically seen) by reducing the |
| 176 | number of, usually failing, I/O calls for each L<C<require()>|perlfunc/require> |
| 177 | (for B<miniperl.exe> only). |
| 178 | [L<perl #121119|https://rt.perl.org/Public/Bug/Display.html?id=121119>] |
| 179 | |
| 180 | About 15 minutes of idle sleeping was removed from running C<make test> due to |
| 181 | a bug in which the timeout monitor used for tests could not be cancelled once |
| 182 | the test completes, and the full timeout period elapsed before running the next |
| 183 | test file. |
| 184 | [L<perl #121395|https://rt.perl.org/Public/Bug/Display.html?id=121395>] |
| 185 | |
| 186 | On a perl built without pseudo-fork (pseudo-fork builds were not affected by |
| 187 | this bug), killing a process tree with L<C<kill()>|perlfunc/kill> and a negative |
| 188 | signal resulted in C<kill()> inverting the returned value. For example, if |
| 189 | C<kill()> killed 1 process tree PID then it returned 0 instead of 1, and if |
| 190 | C<kill()> was passed 2 invalid PIDs then it returned 2 instead of 0. This has |
| 191 | probably been the case since the process tree kill feature was implemented on |
| 192 | Win32. It has now been corrected to follow the documented behaviour. |
| 193 | [L<perl #121230|https://rt.perl.org/Public/Bug/Display.html?id=121230>] |
| 194 | |
| 195 | When building a 64-bit perl, an uninitialized memory read in B<miniperl.exe>, |
| 196 | used during the build process, could lead to a 4GB B<wperl.exe> being created. |
| 197 | This has now been fixed. (Note that B<perl.exe> itself was unaffected, but |
| 198 | obviously B<wperl.exe> would have been completely broken.) |
| 199 | [L<perl #121471|https://rt.perl.org/Public/Bug/Display.html?id=121471>] |
| 200 | |
| 201 | Perl can now be built with B<gcc> version 4.8.1 from L<http://www.mingw.org>. |
| 202 | This was previously broken due to an incorrect definition of DllMain() in one |
| 203 | of perl's source files. Earlier B<gcc> versions were also affected when using |
| 204 | version 4 of the w32api package. Versions of B<gcc> available from |
| 205 | L<http://mingw-w64.sourceforge.net/> were not affected. |
| 206 | [L<perl #121643|https://rt.perl.org/Public/Bug/Display.html?id=121643>] |
| 207 | |
| 208 | The test harness now has no failures when perl is built on a FAT drive with the |
| 209 | Windows OS on an NTFS drive. |
| 210 | [L<perl #21442|https://rt.perl.org/Public/Bug/Display.html?id=21442>] |
| 211 | |
| 212 | =back |
| 213 | |
| 214 | =head1 Internal Changes |
| 215 | |
| 216 | =over 4 |
| 217 | |
| 218 | =item * |
| 219 | |
| 220 | C<LC_NUMERIC> is now initialized to the C locale. This affects only XS |
| 221 | modules, as the Perl core usages always make sure this locale category is |
| 222 | correctly set for their purposes. XS code remains vulnerable to other code |
| 223 | changing this category's locale. Further fixes are planned in Perl 5.22 to |
| 224 | reduce these long-standing vulnerabilities. |
| 225 | [L<perl #121317|https://rt.perl.org/Public/Bug/Display.html?id=121317>] |
| 226 | |
| 227 | =back |
| 228 | |
| 229 | =head1 Selected Bug Fixes |
| 230 | |
| 231 | =over 4 |
| 232 | |
| 233 | =item * |
| 234 | |
| 235 | A regression involving the string value of L<C<$!>|perlvar/$!> introduced in |
| 236 | Perl 5.19.2 has been reverted for Perl 5.20. |
| 237 | [L<perl #119499|https://rt.perl.org/Public/Bug/Display.html?id=119499>] |
| 238 | |
| 239 | This re-breaks the bugs it fixed, |
| 240 | L<perl #112208|https://rt.perl.org/Public/Bug/Display.html?id=112208>, so an |
| 241 | alternative fix is planned for Perl 5.22 |
| 242 | |
| 243 | =item * |
| 244 | |
| 245 | A regression was introduced in Perl 5.19.10 that under some circumstances |
| 246 | caused C<//m> matches to falsely fail. Now fixed. |
| 247 | [L<perl #121484|https://rt.perl.org/Public/Bug/Display.html?id=121484>] |
| 248 | |
| 249 | =item * |
| 250 | |
| 251 | A regression was introduced in the fix for |
| 252 | L<perl #116192|https://rt.perl.org/Public/Bug/Display.html?id=116192> that |
| 253 | prevented C<perl -I /somedir/> (with a trailing slash) from finding .pmc files. |
| 254 | This has been fixed. |
| 255 | [L<perl #121512|https://rt.perl.org/Public/Bug/Display.html?id=121512>]. |
| 256 | |
| 257 | =item * |
| 258 | |
| 259 | Fixed a bug detected by valgrind where sv_pvn_force_flags() would check SvPVX() |
| 260 | even when the SV hadn't been upgraded to a SVt_PV. SvPVX() is only initialized |
| 261 | when the SV is upgraded to a SVt_PV or higher. |
| 262 | [L<perl #121366|https://rt.perl.org/Public/Bug/Display.html?id=121366>] |
| 263 | |
| 264 | =item * |
| 265 | |
| 266 | Fixed a bug in L<C<caller()>|perlfunc/caller> introduced in Perl 5.18.0. In |
| 267 | some circumstances when C<caller()> was called on an C<eval STRING> stack frame |
| 268 | it would attempt to allocate the limit of the address space minus one, which |
| 269 | would croak with an out of memory error, which would be caught by the eval. A |
| 270 | change in Perl 5.19.1 which increased allocation sizes to allow COW to operate |
| 271 | more often rounded that allocation size up and wrapped to a zero allocation |
| 272 | size, resulting in a crash when the source string was copied over. |
| 273 | [L<perl #120998|https://rt.perl.org/Public/Bug/Display.html?id=120998>]. |
| 274 | |
| 275 | =back |
| 276 | |
| 277 | =head1 Known Problems |
| 278 | |
| 279 | =over 4 |
| 280 | |
| 281 | =item * |
| 282 | |
| 283 | One test in F<ext/POSIX/t/time.t> is known to fail on Windows when building |
| 284 | with certain versions of B<gcc> from L<http://www.mingw.org> due to a known bug |
| 285 | in the MinGW build, which is logged here: |
| 286 | L<http://sourceforge.net/p/mingw/bugs/2152/>. |
| 287 | |
| 288 | =back |
| 289 | |
| 290 | =head1 Acknowledgements |
| 291 | |
| 292 | Perl 5.19.11 represents approximately 4 weeks of development since Perl 5.19.10 |
| 293 | and contains approximately 3,600 lines of changes across 140 files from 18 |
| 294 | authors. |
| 295 | |
| 296 | Excluding auto-generated files, documentation and release tools, there were |
| 297 | approximately 850 lines of changes to 72 .pm, .t, .c and .h files. |
| 298 | |
| 299 | Perl continues to flourish into its third decade thanks to a vibrant community |
| 300 | of users and developers. The following people are known to have contributed |
| 301 | the improvements that became Perl 5.19.11: |
| 302 | |
| 303 | Aaron Crane, Chris 'BinGOs' Williams, Craig A. Berry, Daniel Dragan, David |
| 304 | Golden, David Mitchell, H.Merijn Brand, Hiroo Hayashi, Karl Williamson, Matthew |
| 305 | Horsfall, Ricardo Signes, Shirakata Kentaro, Smylers, Steve Hay, Thomas Sibley, |
| 306 | Tony Cook, Zefram, Ævar Arnfjörð Bjarmason. |
| 307 | |
| 308 | The list above is almost certainly incomplete as it is automatically generated |
| 309 | from version control history. In particular, it does not include the names of |
| 310 | the (very much appreciated) contributors who reported issues to the Perl bug |
| 311 | tracker. |
| 312 | |
| 313 | Many of the changes included in this version originated in the CPAN modules |
| 314 | included in Perl's core. We're grateful to the entire CPAN community for |
| 315 | helping Perl to flourish. |
| 316 | |
| 317 | For a more complete list of all of Perl's historical contributors, please see |
| 318 | the F<AUTHORS> file in the Perl source distribution. |
| 319 | |
| 320 | =head1 Reporting Bugs |
| 321 | |
| 322 | If you find what you think is a bug, you might check the articles recently |
| 323 | posted to the comp.lang.perl.misc newsgroup and the perl bug database at |
| 324 | https://rt.perl.org/ . There may also be information at http://www.perl.org/ , |
| 325 | the Perl Home Page. |
| 326 | |
| 327 | If you believe you have an unreported bug, please run the L<perlbug> program |
| 328 | included with your release. Be sure to trim your bug down to a tiny but |
| 329 | sufficient test case. Your bug report, along with the output of C<perl -V>, |
| 330 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. |
| 331 | |
| 332 | If the bug you are reporting has security implications, which make it |
| 333 | inappropriate to send to a publicly archived mailing list, then please send it |
| 334 | to perl5-security-report@perl.org. This points to a closed subscription |
| 335 | unarchived mailing list, which includes all the core committers, who will be |
| 336 | able to help assess the impact of issues, figure out a resolution, and help |
| 337 | co-ordinate the release of patches to mitigate or fix the problem across all |
| 338 | platforms on which Perl is supported. Please only use this address for |
| 339 | security issues in the Perl core, not for modules independently distributed on |
| 340 | CPAN. |
| 341 | |
| 342 | =head1 SEE ALSO |
| 343 | |
| 344 | The F<Changes> file for an explanation of how to view exhaustive details on |
| 345 | what changed. |
| 346 | |
| 347 | The F<INSTALL> file for how to build Perl. |
| 348 | |
| 349 | The F<README> file for general stuff. |
| 350 | |
| 351 | The F<Artistic> and F<Copying> files for copyright information. |
| 352 | |
| 353 | =cut |