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