Commit | Line | Data |
---|---|---|
f4e35152 FC |
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 |