| 1 | =encoding utf8 |
| 2 | |
| 3 | =head1 NAME |
| 4 | |
| 5 | perl5181delta - what is new for perl v5.18.1 |
| 6 | |
| 7 | =head1 DESCRIPTION |
| 8 | |
| 9 | This document describes differences between the 5.18.0 release and the 5.18.1 |
| 10 | release. |
| 11 | |
| 12 | If you are upgrading from an earlier release such as 5.16.0, first read |
| 13 | L<perl5180delta>, which describes differences between 5.16.0 and 5.18.0. |
| 14 | |
| 15 | =head1 Incompatible Changes |
| 16 | |
| 17 | There are no changes intentionally incompatible with 5.18.0 |
| 18 | If any exist, they are bugs, and we request that you submit a |
| 19 | report. See L</Reporting Bugs> below. |
| 20 | |
| 21 | =head1 Modules and Pragmata |
| 22 | |
| 23 | =head2 Updated Modules and Pragmata |
| 24 | |
| 25 | =over 4 |
| 26 | |
| 27 | =item * |
| 28 | |
| 29 | B has been upgraded from 1.42 to 1.42_01, fixing bugs related to lexical |
| 30 | subroutines. |
| 31 | |
| 32 | =item * |
| 33 | |
| 34 | Digest::SHA has been upgraded from 5.84 to 5.84_01, fixing a crashing bug. |
| 35 | [RT #118649] |
| 36 | |
| 37 | =item * |
| 38 | |
| 39 | Module::CoreList has been upgraded from 2.89 to 2.96. |
| 40 | |
| 41 | =back |
| 42 | |
| 43 | =head1 Platform Support |
| 44 | |
| 45 | =head2 Platform-Specific Notes |
| 46 | |
| 47 | =over 4 |
| 48 | |
| 49 | =item AIX |
| 50 | |
| 51 | A rarely-encounted configuration bug in the AIX hints file has been corrected. |
| 52 | |
| 53 | =item MidnightBSD |
| 54 | |
| 55 | After a patch to the relevant hints file, perl should now build correctly on |
| 56 | MidnightBSD 0.4-RELEASE. |
| 57 | |
| 58 | =back |
| 59 | |
| 60 | =head1 Selected Bug Fixes |
| 61 | |
| 62 | =over 4 |
| 63 | |
| 64 | =item * |
| 65 | |
| 66 | Starting in v5.18.0, a construct like C</[#](?{})/x> would have its C<#> |
| 67 | incorrectly interpreted as a comment. The code block would be skipped, |
| 68 | unparsed. This has been corrected. |
| 69 | |
| 70 | =item * |
| 71 | |
| 72 | A number of memory leaks related to the new, experimental regexp bracketed |
| 73 | character class feature have been plugged. |
| 74 | |
| 75 | =item * |
| 76 | |
| 77 | The OP allocation code now returns correctly aligned memory in all cases |
| 78 | for C<struct pmop>. Previously it could return memory only aligned to a |
| 79 | 4-byte boundary, which is not correct for an ithreads build with 64 bit IVs |
| 80 | on some 32 bit platforms. Notably, this caused the build to fail completely |
| 81 | on sparc GNU/Linux. [RT #118055] |
| 82 | |
| 83 | =item * |
| 84 | |
| 85 | The debugger's C<man> command been fixed. It was broken in the v5.18.0 |
| 86 | release. The C<man> command is aliased to the names C<doc> and C<perldoc> - |
| 87 | all now work again. |
| 88 | |
| 89 | =item * |
| 90 | |
| 91 | C<@_> is now correctly visible in the debugger, fixing a regression |
| 92 | introduced in v5.18.0's debugger. [RT #118169] |
| 93 | |
| 94 | =item * |
| 95 | |
| 96 | Fixed a small number of regexp constructions that could either fail to |
| 97 | match or crash perl when the string being matched against was |
| 98 | allocated above the 2GB line on 32-bit systems. [RT #118175] |
| 99 | |
| 100 | =item * |
| 101 | |
| 102 | Perl v5.16 inadvertently introduced a bug whereby calls to XSUBs that were |
| 103 | not visible at compile time were treated as lvalues and could be assigned |
| 104 | to, even when the subroutine was not an lvalue sub. This has been fixed. |
| 105 | [perl #117947] |
| 106 | |
| 107 | =item * |
| 108 | |
| 109 | Perl v5.18 inadvertently introduced a bug whereby dual-vars (i.e. |
| 110 | variables with both string and numeric values, such as C<$!> ) where the |
| 111 | truthness of the variable was determined by the numeric value rather than |
| 112 | the string value. [RT #118159] |
| 113 | |
| 114 | =item * |
| 115 | |
| 116 | Perl v5.18 inadvertently introduced a bug whereby interpolating mixed up- |
| 117 | and down-graded UTF-8 strings in a regex could result in malformed UTF-8 |
| 118 | in the pattern: specifically if a downgraded character in the range |
| 119 | C<\x80..\xff> followed a UTF-8 string, e.g. |
| 120 | |
| 121 | utf8::upgrade( my $u = "\x{e5}"); |
| 122 | utf8::downgrade(my $d = "\x{e5}"); |
| 123 | /$u$d/ |
| 124 | |
| 125 | [perl #118297]. |
| 126 | |
| 127 | =item * |
| 128 | |
| 129 | Lexical constants (C<my sub a() { 42 }>) no longer crash when inlined. |
| 130 | |
| 131 | =item * |
| 132 | |
| 133 | Parameter prototypes attached to lexical subroutines are now respected when |
| 134 | compiling sub calls without parentheses. Previously, the prototypes were |
| 135 | honoured only for calls I<with> parentheses. [RT #116735] |
| 136 | |
| 137 | =item * |
| 138 | |
| 139 | Syntax errors in lexical subroutines in combination with calls to the same |
| 140 | subroutines no longer cause crashes at compile time. |
| 141 | |
| 142 | =item * |
| 143 | |
| 144 | The dtrace sub-entry probe now works with lexical subs, instead of |
| 145 | crashing [perl #118305]. |
| 146 | |
| 147 | =item * |
| 148 | |
| 149 | Undefining an inlinable lexical subroutine (C<my sub foo() { 42 } undef |
| 150 | &foo>) would result in a crash if warnings were turned on. |
| 151 | |
| 152 | =item * |
| 153 | |
| 154 | Deep recursion warnings no longer crash lexical subroutines. [RT #118521] |
| 155 | |
| 156 | =back |
| 157 | |
| 158 | =head1 Acknowledgements |
| 159 | |
| 160 | Perl 5.18.1 represents approximately 2 months of development since Perl 5.18.0 |
| 161 | and contains approximately 8,400 lines of changes across 60 files from 12 |
| 162 | authors. |
| 163 | |
| 164 | Perl continues to flourish into its third decade thanks to a vibrant community |
| 165 | of users and developers. The following people are known to have contributed the |
| 166 | improvements that became Perl 5.18.1: |
| 167 | |
| 168 | Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, David |
| 169 | Mitchell, Father Chrysostomos, Karl Williamson, Lukas Mai, Nicholas Clark, |
| 170 | Peter Martini, Ricardo Signes, Shlomi Fish, Tony Cook. |
| 171 | |
| 172 | The list above is almost certainly incomplete as it is automatically generated |
| 173 | from version control history. In particular, it does not include the names of |
| 174 | the (very much appreciated) contributors who reported issues to the Perl bug |
| 175 | tracker. |
| 176 | |
| 177 | Many of the changes included in this version originated in the CPAN modules |
| 178 | included in Perl's core. We're grateful to the entire CPAN community for |
| 179 | helping Perl to flourish. |
| 180 | |
| 181 | For a more complete list of all of Perl's historical contributors, please see |
| 182 | the F<AUTHORS> file in the Perl source distribution. |
| 183 | |
| 184 | =head1 Reporting Bugs |
| 185 | |
| 186 | If you find what you think is a bug, you might check the articles recently |
| 187 | posted to the comp.lang.perl.misc newsgroup and the perl bug database at |
| 188 | http://rt.perl.org/perlbug/ . There may also be information at |
| 189 | http://www.perl.org/ , the Perl Home Page. |
| 190 | |
| 191 | If you believe you have an unreported bug, please run the L<perlbug> program |
| 192 | included with your release. Be sure to trim your bug down to a tiny but |
| 193 | sufficient test case. Your bug report, along with the output of C<perl -V>, |
| 194 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. |
| 195 | |
| 196 | If the bug you are reporting has security implications, which make it |
| 197 | inappropriate to send to a publicly archived mailing list, then please send it |
| 198 | to perl5-security-report@perl.org. This points to a closed subscription |
| 199 | unarchived mailing list, which includes all the core committers, who will be |
| 200 | able to help assess the impact of issues, figure out a resolution, and help |
| 201 | co-ordinate the release of patches to mitigate or fix the problem across all |
| 202 | platforms on which Perl is supported. Please only use this address for |
| 203 | security issues in the Perl core, not for modules independently distributed on |
| 204 | CPAN. |
| 205 | |
| 206 | =head1 SEE ALSO |
| 207 | |
| 208 | The F<Changes> file for an explanation of how to view exhaustive details on |
| 209 | what changed. |
| 210 | |
| 211 | The F<INSTALL> file for how to build Perl. |
| 212 | |
| 213 | The F<README> file for general stuff. |
| 214 | |
| 215 | The F<Artistic> and F<Copying> files for copyright information. |
| 216 | |
| 217 | =cut |