Commit | Line | Data |
---|---|---|
bea9954d SH |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | perl5282delta - what is new for perl v5.28.2 | |
6 | ||
7 | =head1 DESCRIPTION | |
8 | ||
9 | This document describes differences between the 5.28.1 release and the 5.28.2 | |
10 | release. | |
11 | ||
12 | If you are upgrading from an earlier release such as 5.28.0, first read | |
13 | L<perl5281delta>, which describes differences between 5.28.0 and 5.28.1. | |
14 | ||
15 | =head1 Incompatible Changes | |
16 | ||
17 | =head2 Any set of digits in the Common script are legal in a script run of | |
18 | another script | |
19 | ||
20 | There are several sets of digits in the Common script. C<[0-9]> is the most | |
21 | familiar. But there are also C<[\x{FF10}-\x{FF19}]> (FULLWIDTH DIGIT ZERO - | |
22 | FULLWIDTH DIGIT NINE), and several sets for use in mathematical notation, such | |
23 | as the MATHEMATICAL DOUBLE-STRUCK DIGITs. Any of these sets should be able to | |
24 | appear in script runs of, say, Greek. But the previous design overlooked all | |
25 | but the ASCII digits C<[0-9]>, so the design was flawed. This has been fixed, | |
26 | so is both a bug fix and an incompatibility. | |
27 | ||
28 | All digits in a run still have to come from the same set of ten digits. | |
29 | ||
29c6c804 | 30 | L<[GH #16704]|https://github.com/Perl/perl5/issues/16704> |
bea9954d SH |
31 | |
32 | =head1 Modules and Pragmata | |
33 | ||
34 | =head2 Updated Modules and Pragmata | |
35 | ||
36 | =over 4 | |
37 | ||
38 | =item * | |
39 | ||
40 | L<Module::CoreList> has been upgraded from version 5.20181129_28 to 5.20190419. | |
41 | ||
42 | =item * | |
43 | ||
44 | L<PerlIO::scalar> has been upgraded from version 0.29 to 0.30. | |
45 | ||
46 | =item * | |
47 | ||
48 | L<Storable> has been upgraded from version 3.08 to 3.08_01. | |
49 | ||
50 | =back | |
51 | ||
52 | =head1 Platform Support | |
53 | ||
54 | =head2 Platform-Specific Notes | |
55 | ||
56 | =over 4 | |
57 | ||
58 | =item Windows | |
59 | ||
60 | The Windows Server 2003 SP1 Platform SDK build, with its early x64 compiler and | |
61 | tools, was accidentally broken in Perl 5.27.9. This has now been fixed. | |
62 | ||
63 | =item Mac OS X | |
64 | ||
65 | Perl's build and testing process on Mac OS X for C<-Duseshrplib> builds is now | |
66 | compatible with Mac OS X System Integrity Protection (SIP). | |
67 | ||
68 | SIP prevents binaries in F</bin> (and a few other places) being passed the | |
69 | C<DYLD_LIBRARY_PATH> environment variable. For our purposes this prevents | |
70 | C<DYLD_LIBRARY_PATH> from being passed to the shell, which prevents that | |
71 | variable being passed to the testing or build process, so running C<perl> | |
72 | couldn't find F<libperl.dylib>. | |
73 | ||
74 | To work around that, the initial build of the F<perl> executable expects to | |
75 | find F<libperl.dylib> in the build directory, and the library path is then | |
76 | adjusted during installation to point to the installed library. | |
77 | ||
29c6c804 | 78 | L<[GH #15057]|https://github.com/Perl/perl5/issues/15057> |
bea9954d SH |
79 | |
80 | =back | |
81 | ||
82 | =head1 Selected Bug Fixes | |
83 | ||
84 | =over 4 | |
85 | ||
86 | =item * | |
87 | ||
88 | If an in-place edit is still in progress during global destruction and the | |
89 | process exit code (as stored in C<$?>) is zero, perl will now treat the | |
90 | in-place edit as successful, replacing the input file with any output produced. | |
91 | ||
92 | This allows code like: | |
93 | ||
94 | perl -i -ne 'print "Foo"; last' | |
95 | ||
96 | to replace the input file, while code like: | |
97 | ||
98 | perl -i -ne 'print "Foo"; die' | |
99 | ||
100 | will not. Partly resolves [perl #133659]. | |
101 | ||
29c6c804 | 102 | L<[GH #16748]|https://github.com/Perl/perl5/issues/16748> |
bea9954d SH |
103 | |
104 | =item * | |
105 | ||
106 | A regression in Perl 5.28 caused the following code to fail | |
107 | ||
108 | close(STDIN); open(CHILD, "|wc -l")' | |
109 | ||
110 | because the child's stdin would be closed on exec. This has now been fixed. | |
111 | ||
112 | =item * | |
113 | ||
114 | C<pack "u", "invalid uuencoding"> now properly NUL terminates the zero-length | |
115 | SV produced. | |
116 | ||
29c6c804 | 117 | L<[GH #16343]|https://github.com/Perl/perl5/issues/16343> |
bea9954d SH |
118 | |
119 | =item * | |
120 | ||
121 | Failing to compile a format now aborts compilation. Like other errors in | |
122 | sub-parses this could leave the parser in a strange state, possibly crashing | |
123 | perl if compilation continued. | |
124 | ||
29c6c804 | 125 | L<[GH #16169]|https://github.com/Perl/perl5/issues/16169> |
bea9954d SH |
126 | |
127 | =item * | |
128 | ||
129 | See L</Any set of digits in the Common script are legal in a script run of | |
130 | another script>. | |
131 | ||
132 | =back | |
133 | ||
134 | =head1 Acknowledgements | |
135 | ||
136 | Perl 5.28.2 represents approximately 4 months of development since Perl 5.28.1 | |
137 | and contains approximately 2,500 lines of changes across 75 files from 13 | |
138 | authors. | |
139 | ||
140 | Excluding auto-generated files, documentation and release tools, there were | |
141 | approximately 1,200 lines of changes to 29 .pm, .t, .c and .h files. | |
142 | ||
143 | Perl continues to flourish into its fourth decade thanks to a vibrant community | |
144 | of users and developers. The following people are known to have contributed | |
145 | the improvements that became Perl 5.28.2: | |
146 | ||
147 | Aaron Crane, Abigail, Andy Dougherty, David Mitchell, Karen Etheridge, Karl | |
148 | Williamson, Leon Timmermans, Nicolas R., Sawyer X, Steve Hay, Tina Müller, | |
149 | Tony Cook, Zak B. Elep. | |
150 | ||
151 | The list above is almost certainly incomplete as it is automatically generated | |
152 | from version control history. In particular, it does not include the names of | |
153 | the (very much appreciated) contributors who reported issues to the Perl bug | |
154 | tracker. | |
155 | ||
156 | Many of the changes included in this version originated in the CPAN modules | |
157 | included in Perl's core. We're grateful to the entire CPAN community for | |
158 | helping Perl to flourish. | |
159 | ||
160 | For a more complete list of all of Perl's historical contributors, please see | |
161 | the F<AUTHORS> file in the Perl source distribution. | |
162 | ||
163 | =head1 Reporting Bugs | |
164 | ||
165 | If you find what you think is a bug, you might check the perl bug database | |
166 | at L<https://rt.perl.org/> . There may also be information at | |
167 | L<http://www.perl.org/> , the Perl Home Page. | |
168 | ||
169 | If you believe you have an unreported bug, please run the L<perlbug> program | |
170 | included with your release. Be sure to trim your bug down to a tiny but | |
171 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
172 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
173 | ||
174 | If the bug you are reporting has security implications which make it | |
175 | inappropriate to send to a publicly archived mailing list, then see | |
176 | L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> | |
177 | for details of how to report the issue. | |
178 | ||
179 | =head1 Give Thanks | |
180 | ||
181 | If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, | |
182 | you can do so by running the C<perlthanks> program: | |
183 | ||
184 | perlthanks | |
185 | ||
186 | This will send an email to the Perl 5 Porters list with your show of thanks. | |
187 | ||
188 | =head1 SEE ALSO | |
189 | ||
190 | The F<Changes> file for an explanation of how to view exhaustive details on | |
191 | what changed. | |
192 | ||
193 | The F<INSTALL> file for how to build Perl. | |
194 | ||
195 | The F<README> file for general stuff. | |
196 | ||
197 | The F<Artistic> and F<Copying> files for copyright information. | |
198 | ||
199 | =cut |