| 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 | |
| 30 | L<[perl #133547]|https://rt.perl.org/Ticket/Display.html?id=133547> |
| 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 | |
| 78 | L<[perl #126706]|https://rt.perl.org/Ticket/Display.html?id=126706> |
| 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 | |
| 102 | L<[perl #133659]|https://rt.perl.org/Ticket/Display.html?id=133659> |
| 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 | |
| 117 | L<[perl #132655]|https://rt.perl.org/Ticket/Display.html?id=132655> |
| 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 | |
| 125 | L<[perl #132158]|https://rt.perl.org/Ticket/Display.html?id=132158> |
| 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 |