Commit | Line | Data |
---|---|---|
4234ac96 AC |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | perl5294delta - what is new for perl v5.29.4 | |
6 | ||
7 | =head1 DESCRIPTION | |
8 | ||
9 | This document describes differences between the 5.29.3 release and the 5.29.4 | |
10 | release. | |
11 | ||
12 | If you are upgrading from an earlier release such as 5.29.2, first read | |
13 | L<perl5293delta>, which describes differences between 5.29.2 and 5.29.3. | |
14 | ||
15 | =head1 Core Enhancements | |
16 | ||
17 | =head2 The maximum number of times a pattern can match has been doubled | |
18 | to 65535 | |
19 | ||
20 | This means if you specify C<qr/a+/> that there can be anywhere from 1 | |
21 | through 65535 C<"a">'s in a row, instead of 32267 as previously. | |
22 | ||
23 | =head1 Incompatible Changes | |
24 | ||
25 | =head2 Assigning non-zero to C<$[> is fatal | |
26 | ||
27 | Setting L<< C<$[>|perlvar/$[ >> to a non-zero value has been deprecated since | |
28 | Perl 5.12 and now throws a fatal error. | |
29 | See L<<< perldeprecation/Assigning non-zero to C<< $[ >> is fatal >>>. | |
30 | ||
31 | =head2 Previously deprecated sysread()/syswrite() on :utf8 handles now fatal | |
32 | ||
33 | Calling sysread(), syswrite(), send() or recv() on a C<:utf8> handle, | |
34 | whether applied explicitly or implicitly, is now fatal. This was | |
35 | deprecated in perl 5.24. | |
36 | ||
37 | There were two problems with calling these functions on C<:utf8> | |
38 | handles: | |
39 | ||
40 | =over | |
41 | ||
42 | =item * | |
43 | ||
44 | All four functions only paid attention to the C<:utf8> flag. Other | |
45 | layers were completely ignored, so a handle with | |
46 | C<:encoding(UTF-16LE)> layer would be treated as UTF-8. Other layers, | |
47 | such as compression are completely ignored with or without the | |
48 | C<:utf8> flag. | |
49 | ||
50 | =item * | |
51 | ||
52 | sysread() and recv() would read from the handle, skipping any | |
53 | validation by the layers, and do no validation of their own. This | |
54 | could lead to invalidly encoded perl scalars. | |
55 | ||
56 | =back | |
57 | ||
58 | [perl #125760] | |
59 | ||
60 | =head2 my() in false conditional prohibited | |
61 | ||
62 | Declarations such as C<my $x if 0> are no longer permitted. | |
63 | ||
64 | [perl #133543] | |
65 | ||
66 | =head2 Fatalize $* and $# | |
67 | ||
68 | These special variables, long deprecated, now throw exceptions when used. | |
69 | ||
70 | [perl #133583] | |
71 | ||
72 | =head2 Fatalize unqualified use of dump() | |
73 | ||
74 | The C<dump()> function, long discouraged, may no longer be used unless it is | |
75 | fully qualified, I<i.e.>, C<CORE::dump()>. | |
76 | ||
77 | [perl #133584] | |
78 | ||
79 | =head2 Remove File::Glob::glob() | |
80 | ||
81 | The C<File::Glob::glob()> function, long deprecated, has been removed and now | |
82 | throws an exception which advises use of C<File::Glob::bsd_glob()> instead. | |
83 | ||
84 | [perl #133586] | |
85 | ||
86 | =head1 Modules and Pragmata | |
87 | ||
88 | =head2 Updated Modules and Pragmata | |
89 | ||
90 | =over 4 | |
91 | ||
92 | =item * | |
93 | ||
94 | L<B> has been upgraded from version 1.74 to 1.75. | |
95 | ||
96 | =item * | |
97 | ||
98 | L<B::Concise> has been upgraded from version 1.003 to 1.004. | |
99 | ||
100 | =item * | |
101 | ||
102 | L<B::Deparse> has been upgraded from version 1.48 to 1.49. | |
103 | ||
104 | =item * | |
105 | ||
106 | L<bignum> has been upgraded from version 0.50 to 0.51. | |
107 | ||
108 | =item * | |
109 | ||
110 | L<bytes> has been upgraded from version 1.06 to 1.07. | |
111 | ||
112 | =item * | |
113 | ||
114 | L<CPAN> has been upgraded from version 2.20-TRIAL to 2.21-TRIAL. | |
115 | ||
116 | =item * | |
117 | ||
118 | L<Devel::Peek> has been upgraded from version 1.27 to 1.28. | |
119 | ||
120 | =item * | |
121 | ||
122 | L<feature> has been upgraded from version 1.53 to 1.54. | |
123 | ||
124 | =item * | |
125 | ||
126 | L<File::Copy> has been upgraded from version 2.33 to 2.34. | |
127 | ||
128 | =item * | |
129 | ||
130 | L<File::Glob> has been upgraded from version 1.31 to 1.32. | |
131 | ||
132 | =item * | |
133 | ||
134 | L<Module::CoreList> has been upgraded from version 5.20180920 to 5.20181020. | |
135 | ||
136 | =item * | |
137 | ||
138 | L<sigtrap> has been upgraded from version 1.08 to 1.09. | |
139 | ||
140 | =item * | |
141 | ||
142 | L<Unicode::UCD> has been upgraded from version 0.71 to 0.72. | |
143 | ||
144 | =item * | |
145 | ||
146 | L<vars> has been upgraded from version 1.04 to 1.05. | |
147 | ||
148 | C<vars.pm> no longer disables non-vars strict when checking if strict | |
149 | vars is enabled. [perl #130674] | |
150 | ||
151 | =back | |
152 | ||
153 | =head2 Removed Modules and Pragmata | |
154 | ||
155 | =over 4 | |
156 | ||
157 | =item * | |
158 | ||
159 | B::Debug is no longer distributed with the core distribution. It remains | |
160 | available on CPAN. | |
161 | ||
162 | =back | |
163 | ||
164 | =head1 Internal Changes | |
165 | ||
166 | =over 4 | |
167 | ||
168 | =item * | |
169 | ||
170 | The sizing pass has been eliminated from the regular expression | |
171 | compiler. An extra pass may instead be needed in some cases to count | |
172 | the number of parenthetical capture groups. | |
173 | ||
174 | =back | |
175 | ||
176 | =head1 Selected Bug Fixes | |
177 | ||
178 | =over 4 | |
179 | ||
180 | =item * | |
181 | ||
182 | C<pack "u", "invalid uuencoding"> now properly NUL terminates the | |
183 | zero-length SV produced. [perl #132655] | |
184 | ||
185 | =item * | |
186 | ||
187 | Improve the debugging output for calloc() calls with C<-Dm>. [perl #133439] | |
188 | ||
189 | =item * | |
190 | ||
191 | Regexp script runs were failing to permit ASCII digits in some cases. | |
192 | [perl #133547] | |
193 | ||
194 | =item * | |
195 | ||
196 | On Unix-like systems supporting a platform-specific technique for | |
197 | determining L<< C<$^X>|perlvar/$^X >>, Perl failed to fall back to the | |
198 | generic technique when the platform-specific one fails (for example, a Linux | |
199 | system with /proc not mounted). This was a regression in Perl 5.28.0. | |
200 | [perl #133573] | |
201 | ||
202 | =back | |
203 | ||
204 | =head1 Acknowledgements | |
205 | ||
206 | Perl 5.29.4 represents approximately 4 weeks of development since Perl | |
207 | 5.29.3 and contains approximately 8,400 lines of changes across 180 files | |
208 | from 17 authors. | |
209 | ||
210 | Excluding auto-generated files, documentation and release tools, there were | |
211 | approximately 6,300 lines of changes to 110 .pm, .t, .c and .h files. | |
212 | ||
213 | Perl continues to flourish into its fourth decade thanks to a vibrant | |
214 | community of users and developers. The following people are known to have | |
215 | contributed the improvements that became Perl 5.29.4: | |
216 | ||
217 | Aaron Crane, Alexandr Savca, Andreas König, Chris 'BinGOs' Williams, Craig | |
218 | A. Berry, Dagfinn Ilmari Mannsåker, David Mitchell, Eugen Konkov, James E | |
219 | Keenan, John SJ Anderson, Karl Williamson, Matthias Bethke, Nicolas R., | |
220 | Sisyphus, Slaven Rezic, Tomasz Konojacki, Tony Cook. | |
221 | ||
222 | The list above is almost certainly incomplete as it is automatically | |
223 | generated from version control history. In particular, it does not include | |
224 | the names of the (very much appreciated) contributors who reported issues to | |
225 | the Perl bug tracker. | |
226 | ||
227 | Many of the changes included in this version originated in the CPAN modules | |
228 | included in Perl's core. We're grateful to the entire CPAN community for | |
229 | helping Perl to flourish. | |
230 | ||
231 | For a more complete list of all of Perl's historical contributors, please | |
232 | see the F<AUTHORS> file in the Perl source distribution. | |
233 | ||
234 | =head1 Reporting Bugs | |
235 | ||
236 | If you find what you think is a bug, you might check the perl bug database | |
237 | at L<https://rt.perl.org/> . There may also be information at | |
238 | L<http://www.perl.org/> , the Perl Home Page. | |
239 | ||
240 | If you believe you have an unreported bug, please run the L<perlbug> program | |
241 | included with your release. Be sure to trim your bug down to a tiny but | |
242 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
243 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
244 | ||
245 | If the bug you are reporting has security implications which make it | |
246 | inappropriate to send to a publicly archived mailing list, then see | |
247 | L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> | |
248 | for details of how to report the issue. | |
249 | ||
250 | =head1 Give Thanks | |
251 | ||
252 | If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, | |
253 | you can do so by running the C<perlthanks> program: | |
254 | ||
255 | perlthanks | |
256 | ||
257 | This will send an email to the Perl 5 Porters list with your show of thanks. | |
258 | ||
259 | =head1 SEE ALSO | |
260 | ||
261 | The F<Changes> file for an explanation of how to view exhaustive details on | |
262 | what changed. | |
263 | ||
264 | The F<INSTALL> file for how to build Perl. | |
265 | ||
266 | The F<README> file for general stuff. | |
267 | ||
268 | The F<Artistic> and F<Copying> files for copyright information. | |
269 | ||
270 | =cut |