Commit | Line | Data |
---|---|---|
6aeb63c3 MM |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | perl5335delta - what is new for perl v5.33.5 | |
6 | ||
7 | =head1 DESCRIPTION | |
8 | ||
9 | This document describes differences between the 5.33.4 release and the 5.33.5 | |
10 | release. | |
11 | ||
12 | If you are upgrading from an earlier release such as 5.33.3, first read | |
13 | L<perl5334delta>, which describes differences between 5.33.3 and 5.33.4. | |
14 | ||
15 | =head1 Core Enhancements | |
16 | ||
17 | =head2 New octal syntax C<0oI<ddddd>> | |
18 | ||
19 | It is now possible to specify octal literals with C<0o> prefixes, | |
20 | as in C<0o123_456>, parallel to the existing construct to specify | |
21 | hexadecimal literal C<0xI<ddddd>> and binary literal C<0bI<ddddd>>. | |
22 | Also, the builtin C<oct()> function now accepts this new syntax. | |
23 | ||
24 | See L<perldata/Scalar value constructors> and L<perlfunc/oct EXPR>. | |
25 | ||
26 | =head1 Modules and Pragmata | |
27 | ||
28 | =head2 Updated Modules and Pragmata | |
29 | ||
30 | =over 4 | |
31 | ||
32 | =item * | |
33 | ||
34 | L<Carp> has been upgraded from version 1.50 to 1.51. | |
35 | ||
36 | =item * | |
37 | ||
38 | L<Config::Perl::V> has been upgraded from version 0.32 to 0.33. | |
39 | ||
40 | =item * | |
41 | ||
42 | L<DynaLoader> has been upgraded from version 1.48 to 1.49. | |
43 | ||
44 | =item * | |
45 | ||
46 | L<Encode> has been upgraded from version 3.07 to 3.08. | |
47 | ||
48 | =item * | |
49 | ||
50 | L<ExtUtils::Install> has been upgraded from version 2.18 to 2.20. | |
51 | ||
52 | =item * | |
53 | ||
54 | L<ExtUtils::ParseXS> has been upgraded from version 3.41 to 3.42. | |
55 | ||
56 | =item * | |
57 | ||
58 | L<File::Copy> has been upgraded from version 2.34 to 2.35. | |
59 | ||
60 | =item * | |
61 | ||
62 | L<File::Find> has been upgraded from version 1.37 to 1.38. | |
63 | ||
64 | =item * | |
65 | ||
66 | L<File::Spec> has been upgraded from version 3.79 to 3.80. | |
67 | ||
68 | =item * | |
69 | ||
70 | The libnet distribution has been upgraded from version 3.11 to 3.12. | |
71 | ||
72 | =item * | |
73 | ||
74 | L<Module::CoreList> has been upgraded from version 5.20201120 to 5.20201220. | |
75 | ||
76 | =item * | |
77 | ||
78 | L<ODBM_File> has been upgraded from version 1.16 to 1.17. | |
79 | ||
80 | =item * | |
81 | ||
82 | L<Opcode> has been upgraded from version 1.48 to 1.49. | |
83 | ||
84 | =item * | |
85 | ||
86 | L<PerlIO::via::QuotedPrint> has been upgraded from version 0.08 to 0.09. | |
87 | ||
88 | =item * | |
89 | ||
90 | L<POSIX> has been upgraded from version 1.95 to 1.96. | |
91 | ||
92 | =item * | |
93 | ||
94 | L<Test::Harness> has been upgraded from version 3.42 to 3.43. | |
95 | ||
96 | =item * | |
97 | ||
98 | L<Text::Balanced> has been upgraded from version 2.03 to 2.04. | |
99 | ||
100 | =item * | |
101 | ||
102 | L<Time::HiRes> has been upgraded from version 1.9765 to 1.9766. | |
103 | ||
104 | =item * | |
105 | ||
106 | L<warnings> has been upgraded from version 1.48 to 1.49. | |
107 | ||
108 | =item * | |
109 | ||
110 | L<XS::APItest> has been upgraded from version 1.13 to 1.14. | |
111 | ||
112 | =back | |
113 | ||
114 | =head1 Documentation | |
115 | ||
116 | =head2 New Documentation | |
117 | ||
118 | =head3 L<perldocstyle> has been added to F<pod/>. | |
119 | ||
120 | This document is a guide for the authorship and maintenance of the | |
121 | documentation that ships with Perl. | |
122 | ||
123 | =head2 Changes to Existing Documentation | |
124 | ||
125 | We have attempted to update the documentation to reflect the changes | |
126 | listed in this document. If you find any we have missed, open an issue | |
127 | at L<https://github.com/Perl/perl5/issues>. | |
128 | ||
129 | Additionally, the following selected changes have been made: | |
130 | ||
131 | =head3 L<perlfunc> | |
132 | ||
133 | =over 4 | |
134 | ||
135 | =item * | |
136 | ||
137 | L<msgsnd()|perlfunc/msgsnd> documented a length field included in the | |
138 | packed C<MSG> parameter to msgsnd(), but there was no such field. | |
139 | C<MSG> contains only the type and the message content. | |
140 | ||
141 | =back | |
142 | ||
143 | =head1 Testing | |
144 | ||
145 | Tests were added and changed to reflect the other additions and | |
146 | changes in this release. Furthermore, these significant changes were | |
147 | made: | |
148 | ||
149 | =over 4 | |
150 | ||
151 | =item * | |
152 | ||
153 | When testing in parallel on many-core platforms, you can now cause the | |
154 | test suite to finish somewhat earlier, but with less logical ordering of | |
155 | the tests, by setting | |
156 | ||
157 | PERL_TEST_HARNESS_ASAP=1 | |
158 | ||
159 | while running the test suite. | |
160 | ||
161 | =back | |
162 | ||
163 | =head2 Platform-Specific Notes | |
164 | ||
165 | =over 4 | |
166 | ||
167 | =item Windows | |
168 | ||
169 | Windows now supports L<symlink()|perlfunc/symlink> and | |
170 | L<readlink()|perlfunc/readlink>, and L<lstat()|perlfunc/lstat> is no | |
171 | longer an alias for L<stat()|perlfunc/stat>. | |
172 | L<[#18005]|https://github.com/Perl/perl5/issues/18005>. | |
173 | ||
174 | Unlike POSIX systems, creating a symbolic link on Windows requires | |
175 | either elevated privileges or Windows 10 1703 or later with Developer | |
176 | Mode enabled. | |
177 | ||
178 | stat(), including C<stat FILEHANDLE>, and lstat() now uses our own | |
179 | implementation that populates the device C<dev> and inode numbers | |
180 | C<ino> returned rather than always returning zero. The number of | |
181 | links C<nlink> field is now always populated. | |
182 | ||
183 | L<< C<${^WIN32_SLOPPY_STAT}> |perlvar/${^WIN32_SLOPPY_STAT} >> previously | |
184 | controlled whether the C<nlink> field was populated requiring a | |
185 | separate Windows API call to fetch, since nlink and the other | |
186 | information required for stat() is now retrieved in a single API call. | |
187 | ||
188 | The C<-r> and C<-w> operators now return true for the C<STDIN>, | |
189 | C<STDOUT> and C<STDERR> handles. Unfortunately it still won't return | |
190 | true for duplicates of those handles. | |
191 | L<[#8502]|https://github.com/Perl/perl5/issues/8502>. | |
192 | ||
193 | The times returned by stat() and lstat() are no longer incorrect | |
194 | across Daylight Savings Time adjustments. | |
195 | L<[#6080]|https://github.com/Perl/perl5/issues/6080>. | |
196 | ||
197 | C<-x> on a filehandle should now match C<-x> on the corresponding | |
198 | filename on Vista or later. | |
199 | L<[#4145]|https://github.com/Perl/perl5/issues/4145>. | |
200 | ||
201 | C<-e '"'> no longer incorrectly returns true. | |
202 | L<[#12431]|https://github.com/Perl/perl5/issues/12431>. | |
203 | ||
204 | =back | |
205 | ||
206 | =head1 Internal Changes | |
207 | ||
208 | =over 4 | |
209 | ||
210 | =item * | |
211 | ||
212 | All C<SvTRUE>-ish functions now evaluate their arguments exactly once. | |
213 | In 5.32, plain L<perlapi/C<SvTRUE>> was changed to do that; now the rest | |
214 | do as well. | |
215 | ||
216 | =item * | |
217 | ||
218 | Unicode is now a first class citizen when considering the pattern /A*B/ where | |
219 | A and B are arbitrary. The pattern matching code tries to make a tight loop | |
220 | to match the span of A's. The logic of this was now really updated with | |
221 | support for UTF-8. | |
222 | ||
223 | =back | |
224 | ||
225 | =head1 Selected Bug Fixes | |
226 | ||
227 | =over 4 | |
228 | ||
229 | =item * | |
230 | ||
231 | L<semctl()|perlfunc/semctl>, L<msgctl()|perlfunc/msgctl>, and | |
232 | L<shmctl()|perlfunc/shmctl> now properly reset the UTF-8 flag on the | |
233 | C<ARG> parameter if it's modified for C<IPC_STAT> or C<GETALL> | |
234 | operations. | |
235 | ||
236 | =item * | |
237 | ||
238 | semctl(), msgctl(), and shmctl() now attempt to downgrade the C<ARG> | |
239 | parameter if it's value is being used as input to C<IPC_SET> or | |
240 | C<SETALL> calls. A failed downgrade will thrown an exception. | |
241 | ||
242 | =item * | |
243 | ||
244 | In cases where semctl(), msgctl() or shmctl() would treat the C<ARG> | |
245 | parameter as a pointer, an undefined value no longer generates a | |
246 | warning. In most such calls the pointer isn't used anyway and this | |
247 | allows you to supply C<undef> for a value not used by the underlying | |
248 | function. | |
249 | ||
250 | =item * | |
251 | ||
252 | L<semop()|perlfunc/semop> now downgrades the C<OPSTRING> parameter, | |
253 | L<msgsnd()|perlfunc/msgsnd> now downgrades the C<MSG> parameter and | |
254 | L<shmwrite|perlfunc/shmwrite> now downgrades the C<STRING> parameter | |
255 | to treat them as bytes. Previously they would be left upgraded, | |
256 | providing a corrupted structure to the underlying function call. | |
257 | ||
258 | =item * | |
259 | ||
260 | L<msgrcv()|perlfunc/msgrcv> now properly resets the UTF-8 flag the | |
261 | C<VAR> parameter when it is modified. Previusly the UTF-8 flag could | |
262 | be left on, resulting in a possibly corrupt result in C<VAR>. | |
263 | ||
264 | =back | |
265 | ||
266 | =head1 Known Problems | |
267 | ||
268 | None | |
269 | ||
270 | =head1 Errata From Previous Releases | |
271 | ||
272 | None | |
273 | ||
274 | =head1 Acknowledgements | |
275 | ||
276 | Perl 5.33.5 represents approximately 4 weeks of development since Perl | |
277 | 5.33.4 and contains approximately 22,000 lines of changes across 370 files | |
278 | from 27 authors. | |
279 | ||
280 | Excluding auto-generated files, documentation and release tools, there were | |
281 | approximately 15,000 lines of changes to 220 .pm, .t, .c and .h files. | |
282 | ||
283 | Perl continues to flourish into its fourth decade thanks to a vibrant | |
284 | community of users and developers. The following people are known to have | |
285 | contributed the improvements that became Perl 5.33.5: | |
286 | ||
287 | Branislav ZahradnĂk, Chris 'BinGOs' Williams, Dan Book, Dan Kogai, David | |
288 | Cantrell, David Mitchell, Graham Knop, H.Merijn Brand, Jae Bradley, James E | |
289 | Keenan, Jason McIntosh, jkahrman, John Karr, Karen Etheridge, Karl | |
290 | Williamson, Leon Timmermans, Max Maischein, Paul Evans, Sawyer X, Sevan | |
291 | Janiyan, Shlomi Fish, Steve Hay, TAKAI Kousuke, Thibault Duponchelle, Tomasz | |
292 | Konojacki, Tom Hukins, Tony Cook. | |
293 | ||
294 | The list above is almost certainly incomplete as it is automatically | |
295 | generated from version control history. In particular, it does not include | |
296 | the names of the (very much appreciated) contributors who reported issues to | |
297 | the Perl bug tracker. | |
298 | ||
299 | Many of the changes included in this version originated in the CPAN modules | |
300 | included in Perl's core. We're grateful to the entire CPAN community for | |
301 | helping Perl to flourish. | |
302 | ||
303 | For a more complete list of all of Perl's historical contributors, please | |
304 | see the F<AUTHORS> file in the Perl source distribution. | |
305 | ||
306 | =head1 Reporting Bugs | |
307 | ||
308 | If you find what you think is a bug, you might check the perl bug database | |
309 | at L<https://github.com/Perl/perl5/issues>. There may also be information at | |
310 | L<http://www.perl.org/>, the Perl Home Page. | |
311 | ||
312 | If you believe you have an unreported bug, please open an issue at | |
313 | L<https://github.com/Perl/perl5/issues>. Be sure to trim your bug down to a | |
314 | tiny but sufficient test case. | |
315 | ||
316 | If the bug you are reporting has security implications which make it | |
317 | inappropriate to send to a public issue tracker, then see | |
318 | L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> | |
319 | for details of how to report the issue. | |
320 | ||
321 | =head1 Give Thanks | |
322 | ||
323 | If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, | |
324 | you can do so by running the C<perlthanks> program: | |
325 | ||
326 | perlthanks | |
327 | ||
328 | This will send an email to the Perl 5 Porters list with your show of thanks. | |
329 | ||
330 | =head1 SEE ALSO | |
331 | ||
332 | The F<Changes> file for an explanation of how to view exhaustive details on | |
333 | what changed. | |
334 | ||
335 | The F<INSTALL> file for how to build Perl. | |
336 | ||
337 | The F<README> file for general stuff. | |
338 | ||
339 | The F<Artistic> and F<Copying> files for copyright information. | |
340 | ||
341 | =cut |