| 1 | =encoding utf8 |
| 2 | |
| 3 | =head1 NAME |
| 4 | |
| 5 | perl5233delta - what is new for perl v5.23.3 |
| 6 | |
| 7 | =head1 DESCRIPTION |
| 8 | |
| 9 | This document describes differences between the 5.23.2 release and the 5.23.3 |
| 10 | release. |
| 11 | |
| 12 | If you are upgrading from an earlier release such as 5.23.1, first read |
| 13 | L<perl5232delta>, which describes differences between 5.23.1 and 5.23.2. |
| 14 | |
| 15 | =head1 Core Enhancements |
| 16 | |
| 17 | =head2 C<qr/(?[ ])/> now works in UTF-8 locales |
| 18 | |
| 19 | L<Extended Bracketed Character Classes|perlrecharclass/Extended Bracketed Character Classes> |
| 20 | now will successfully compile when S<C<use locale>> is in effect. The compiled |
| 21 | pattern will use standard Unicode rules. If the runtime locale is not a |
| 22 | UTF-8 one, a warning is raised and standard Unicode rules are used |
| 23 | anyway. No tainting is done since the outcome does not actually depend |
| 24 | on the locale. |
| 25 | |
| 26 | =head1 Incompatible Changes |
| 27 | |
| 28 | =head2 An off by one issue in C<$Carp::MaxArgNums> has been fixed |
| 29 | |
| 30 | C<$Carp::MaxArgNums> is supposed to be the number of arguments to display. |
| 31 | Prior to this version, it was instead showing C<$Carp::MaxArgNums> + 1 arguments, |
| 32 | contrary to the documentation. |
| 33 | |
| 34 | =head1 Modules and Pragmata |
| 35 | |
| 36 | =head2 Updated Modules and Pragmata |
| 37 | |
| 38 | =over 4 |
| 39 | |
| 40 | =item * |
| 41 | |
| 42 | L<B> has been upgraded from version 1.58 to 1.59. |
| 43 | |
| 44 | =item * |
| 45 | |
| 46 | L<bignum> has been upgraded from version 0.39 to 0.40. |
| 47 | |
| 48 | =item * |
| 49 | |
| 50 | L<Carp> has been upgraded from version 1.36 to 1.37. |
| 51 | |
| 52 | =item * |
| 53 | |
| 54 | L<Compress::Raw::Zlib> has been upgraded from version 2.068 to 2.068_01. |
| 55 | |
| 56 | =item * |
| 57 | |
| 58 | L<DynaLoader> has been upgraded from version 1.33 to 1.34. |
| 59 | |
| 60 | =item * |
| 61 | |
| 62 | L<Encode> has been upgraded from version 2.76 to 2.77. |
| 63 | |
| 64 | =item * |
| 65 | |
| 66 | L<encoding> has been upgraded from version 2.16 to 2.17. |
| 67 | |
| 68 | =item * |
| 69 | |
| 70 | L<English> has been upgraded from version 1.09 to 1.10. |
| 71 | |
| 72 | =item * |
| 73 | |
| 74 | L<Errno> has been upgraded from version 1.23 to 1.24. |
| 75 | |
| 76 | =item * |
| 77 | |
| 78 | L<experimental> has been upgraded from version 0.013 to 0.014. |
| 79 | |
| 80 | =item * |
| 81 | |
| 82 | L<ExtUtils::MakeMaker> has been upgraded from version 7.04_01 to 7.10. |
| 83 | |
| 84 | =item * |
| 85 | |
| 86 | L<ExtUtils::ParseXS> has been upgraded from version 3.29 to 3.30. |
| 87 | |
| 88 | =item * |
| 89 | |
| 90 | L<ExtUtils::Typemaps> has been upgraded from version 3.29 to 3.30. |
| 91 | |
| 92 | =item * |
| 93 | |
| 94 | L<File::Find> has been upgraded from version 1.30 to 1.31. |
| 95 | |
| 96 | =item * |
| 97 | |
| 98 | L<File::Glob> has been upgraded from version 1.24 to 1.25. |
| 99 | |
| 100 | =item * |
| 101 | |
| 102 | L<File::Spec> has been upgraded from version 3.57 to 3.58. |
| 103 | |
| 104 | =item * |
| 105 | |
| 106 | L<Hash::Util::FieldHash> has been upgraded from version 1.15 to 1.17. |
| 107 | |
| 108 | =item * |
| 109 | |
| 110 | L<if> has been upgraded from version 0.0604 to 0.0605. |
| 111 | |
| 112 | =item * |
| 113 | |
| 114 | L<locale> has been upgraded from version 1.06 to 1.07. |
| 115 | |
| 116 | =item * |
| 117 | |
| 118 | L<Locale::Codes> has been upgraded from version 3.35 to 3.36. |
| 119 | |
| 120 | =item * |
| 121 | |
| 122 | L<Module::CoreList> has been upgraded from version 5.20150820 to 5.20150920. |
| 123 | |
| 124 | =item * |
| 125 | |
| 126 | L<mro> has been upgraded from version 1.17 to 1.18. |
| 127 | |
| 128 | =item * |
| 129 | |
| 130 | L<Pod::Perldoc> has been upgraded from version 3.25 to 3.25_01. |
| 131 | |
| 132 | =item * |
| 133 | |
| 134 | L<POSIX> has been upgraded from version 1.56 to 1.57. |
| 135 | |
| 136 | =item * |
| 137 | |
| 138 | L<Socket> has been upgraded from version 2.020 to 2.020_01. |
| 139 | |
| 140 | =item * |
| 141 | |
| 142 | L<Test> has been upgraded from version 1.26 to 1.27. |
| 143 | |
| 144 | =item * |
| 145 | |
| 146 | L<Thread::Queue> has been upgraded from version 3.05 to 3.06. |
| 147 | |
| 148 | =item * |
| 149 | |
| 150 | L<threads> has been upgraded from version 2.02 to 2.03. |
| 151 | |
| 152 | =item * |
| 153 | |
| 154 | L<Time::HiRes> has been upgraded from version 1.9726 to 1.9727_02. |
| 155 | |
| 156 | =item * |
| 157 | |
| 158 | L<Unicode::UCD> has been upgraded from version 0.62 to 0.63. |
| 159 | |
| 160 | =item * |
| 161 | |
| 162 | L<Win32> has been upgraded from version 0.51 to 0.52. |
| 163 | |
| 164 | =back |
| 165 | |
| 166 | =head2 New Modules and Pragmata |
| 167 | |
| 168 | =over 4 |
| 169 | |
| 170 | =item * |
| 171 | |
| 172 | L<Amiga::ARexx> has been added, as version 0.02 |
| 173 | |
| 174 | =item * |
| 175 | |
| 176 | L<Amiga::Exec> has been added, as version 0.01 |
| 177 | |
| 178 | =back |
| 179 | |
| 180 | =head1 Documentation |
| 181 | |
| 182 | =head2 Changes to Existing Documentation |
| 183 | |
| 184 | =head3 L<perlcall> |
| 185 | |
| 186 | =over 4 |
| 187 | |
| 188 | =item * |
| 189 | |
| 190 | A number of cleanups have been made to perlcall, including: |
| 191 | |
| 192 | =over 4 |
| 193 | |
| 194 | =item * |
| 195 | |
| 196 | use EXTEND(SP, n) and PUSHs() instead of XPUSHs() where applicable |
| 197 | and update prose to match |
| 198 | |
| 199 | =item * |
| 200 | |
| 201 | add POPu, POPul and POPpbytex to the "complete list of POP macros" |
| 202 | and clarify the documentation for some of the existing entries, and |
| 203 | a note about side-effects |
| 204 | |
| 205 | =item * |
| 206 | |
| 207 | add API documentation for POPu and POPul |
| 208 | |
| 209 | =item * |
| 210 | |
| 211 | use ERRSV more efficiently |
| 212 | |
| 213 | =item * |
| 214 | |
| 215 | approaches to thread-safety storage of SVs. |
| 216 | |
| 217 | =back |
| 218 | |
| 219 | =back |
| 220 | |
| 221 | =head3 L<perlunicode> |
| 222 | |
| 223 | =over 4 |
| 224 | |
| 225 | =item * |
| 226 | |
| 227 | Discourage use of 'In' prefix for Unicode Block property. |
| 228 | |
| 229 | =back |
| 230 | |
| 231 | =head1 Diagnostics |
| 232 | |
| 233 | The following additions or changes have been made to diagnostic output, |
| 234 | including warnings and fatal error messages. For the complete list of |
| 235 | diagnostic messages, see L<perldiag>. |
| 236 | |
| 237 | =head2 New Diagnostics |
| 238 | |
| 239 | =head3 New Errors |
| 240 | |
| 241 | =over 4 |
| 242 | |
| 243 | =item * |
| 244 | |
| 245 | L<%s must not be a named sequence in transliteration operator|perldiag/"%s must not be a named sequence in transliteration operator"> |
| 246 | |
| 247 | (F) Transliteration (C<tr///> and C<y///>) transliterates individual |
| 248 | characters. But a named sequence by definition is more than an |
| 249 | individual charater, and hence doing this operation on it doesn't make |
| 250 | sense. |
| 251 | |
| 252 | =back |
| 253 | |
| 254 | =head1 Testing |
| 255 | |
| 256 | =over 4 |
| 257 | |
| 258 | =item * |
| 259 | |
| 260 | Parallel building has been added to the dmake C<makefile.mk> makefile. All |
| 261 | Win32 compilers are supported. |
| 262 | |
| 263 | =back |
| 264 | |
| 265 | =head1 Platform Support |
| 266 | |
| 267 | =head2 Platform-Specific Notes |
| 268 | |
| 269 | =over 4 |
| 270 | |
| 271 | =item EBCDIC C<cmp()> and C<sort()> fixed for UTF-EBCDIC strings |
| 272 | |
| 273 | Comparing two strings that were both encoded in UTF-8 (or more |
| 274 | precisely, UTF-EBCDIC) did not work properly until now. Since C<sort()> |
| 275 | uses C<cmp()>, this fixes that as well. |
| 276 | |
| 277 | =item EBCDIC C<tr///> and C<yr///> fixed for C<\N{}>, and C<S<use utf8>> ranges |
| 278 | |
| 279 | Perl v5.22 introduced the concept of portable ranges to regular |
| 280 | expression patterns. A portable range matches the same set of |
| 281 | characters no matter what platform is being run on. This concept is now |
| 282 | extended to C<tr///>. See |
| 283 | C<L<trE<sol>E<sol>E<sol>|perlop/trE<sol>SEARCHLISTE<sol>REPLACEMENTLISTE<sol>cdsr>>. |
| 284 | |
| 285 | There were also some problems with these operations under S<C<use |
| 286 | utf8>>, which are now fixed |
| 287 | |
| 288 | =item Win32 |
| 289 | |
| 290 | =over |
| 291 | |
| 292 | =item * |
| 293 | |
| 294 | Parallel building has been added to the dmake C<makefile.mk> makefile. All |
| 295 | Win32 compilers are supported. |
| 296 | |
| 297 | =back |
| 298 | |
| 299 | =item AmigaOS |
| 300 | |
| 301 | The AmigaOS port has been reintegrated into the main tree, based off of |
| 302 | Perl 5.22.1. |
| 303 | |
| 304 | =item clang++ |
| 305 | |
| 306 | Don't add -shared when the compiler is clang++ |
| 307 | |
| 308 | =back |
| 309 | |
| 310 | =head1 Selected Bug Fixes |
| 311 | |
| 312 | =over 4 |
| 313 | |
| 314 | =item * |
| 315 | |
| 316 | C<qr/(?[ () ])/> no longer segfaults, giving a syntax error message instead. |
| 317 | [perl #125805] |
| 318 | |
| 319 | =item * |
| 320 | |
| 321 | Regular expression possessive quantifier v5.20 regression now fixed. |
| 322 | C<qr/>I<PAT>C<{>I<min>,I<max>C<}+>C</> is supposed to behave identically |
| 323 | to C<qr/(?E<gt>>I<PAT>C<{>I<min>,I<max>C<})/>. Since v5.20, this didn't |
| 324 | work if I<min> and I<max> were equal. [perl #125825] |
| 325 | |
| 326 | =item * |
| 327 | |
| 328 | C<< BEGIN <> >> no longer segfaults and properly produces an error |
| 329 | message. [perl #125341] |
| 330 | |
| 331 | =item * |
| 332 | |
| 333 | In C<tr///> an illegal backwards range like C<tr/\x{101}-\x{100}//> was |
| 334 | not always detected, giving incorrect results. This is now fixed. |
| 335 | |
| 336 | =back |
| 337 | |
| 338 | =head1 Acknowledgements |
| 339 | |
| 340 | Perl 5.23.3 represents approximately 4 weeks of development since Perl 5.23.2 |
| 341 | and contains approximately 150,000 lines of changes across 550 files from 30 |
| 342 | authors. |
| 343 | |
| 344 | Excluding auto-generated files, documentation and release tools, there were |
| 345 | approximately 120,000 lines of changes to 410 .pm, .t, .c and .h files. |
| 346 | |
| 347 | Perl continues to flourish into its third decade thanks to a vibrant community |
| 348 | of users and developers. The following people are known to have contributed the |
| 349 | improvements that became Perl 5.23.3: |
| 350 | |
| 351 | Aaron Crane, Alexander D'Archangel, Andy Broad, Chris 'BinGOs' Williams, Craig |
| 352 | A. Berry, Dan Collins, Daniel Dragan, David Mitchell, Father Chrysostomos, |
| 353 | James E Keenan, Jan Dubois, Jarkko Hietaniemi, Jerry D. Hedden, John SJ |
| 354 | Anderson, Karen Etheridge, Karl Williamson, Lukas Mai, Matthew Horsfall, |
| 355 | Nicolas R., Peter John Acklam, Peter Martini, Ricardo Signes, Shlomi Fish, |
| 356 | Steffen Müller, Steve Hay, Sullivan Beck, Thomas Sibley, Todd Rinaldo, Tony |
| 357 | Cook, Zachary Storer. |
| 358 | |
| 359 | The list above is almost certainly incomplete as it is automatically generated |
| 360 | from version control history. In particular, it does not include the names of |
| 361 | the (very much appreciated) contributors who reported issues to the Perl bug |
| 362 | tracker. |
| 363 | |
| 364 | Many of the changes included in this version originated in the CPAN modules |
| 365 | included in Perl's core. We're grateful to the entire CPAN community for |
| 366 | helping Perl to flourish. |
| 367 | |
| 368 | For a more complete list of all of Perl's historical contributors, please see |
| 369 | the F<AUTHORS> file in the Perl source distribution. |
| 370 | |
| 371 | =head1 Reporting Bugs |
| 372 | |
| 373 | If you find what you think is a bug, you might check the articles recently |
| 374 | posted to the comp.lang.perl.misc newsgroup and the perl bug database at |
| 375 | L<https://rt.perl.org/> . There may also be information at |
| 376 | L<http://www.perl.org/> , the Perl Home Page. |
| 377 | |
| 378 | If you believe you have an unreported bug, please run the L<perlbug> program |
| 379 | included with your release. Be sure to trim your bug down to a tiny but |
| 380 | sufficient test case. Your bug report, along with the output of C<perl -V>, |
| 381 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. |
| 382 | |
| 383 | If the bug you are reporting has security implications, which make it |
| 384 | inappropriate to send to a publicly archived mailing list, then please send it |
| 385 | to perl5-security-report@perl.org. This points to a closed subscription |
| 386 | unarchived mailing list, which includes all the core committers, who will be |
| 387 | able to help assess the impact of issues, figure out a resolution, and help |
| 388 | co-ordinate the release of patches to mitigate or fix the problem across all |
| 389 | platforms on which Perl is supported. Please only use this address for |
| 390 | security issues in the Perl core, not for modules independently distributed on |
| 391 | CPAN. |
| 392 | |
| 393 | =head1 SEE ALSO |
| 394 | |
| 395 | The F<Changes> file for an explanation of how to view exhaustive details on |
| 396 | what changed. |
| 397 | |
| 398 | The F<INSTALL> file for how to build Perl. |
| 399 | |
| 400 | The F<README> file for general stuff. |
| 401 | |
| 402 | The F<Artistic> and F<Copying> files for copyright information. |
| 403 | |
| 404 | =cut |