Perldelta: Document changes leading up to 5.29.7.
[perl.git] / pod / perldelta.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 perldelta - what is new for perl v5.29.7
6
7 =head1 DESCRIPTION
8
9 This document describes differences between the 5.29.6 release and the 5.29.7
10 release.
11
12 If you are upgrading from an earlier release such as 5.29.5, first read
13 L<perl5296delta>, which describes differences between 5.29.5 and 5.29.6.
14
15 =head1 Deprecations
16
17 =head2 In XS code, use of various macros dealing with UTF-8.
18
19 This deprecation was scheduled to become fatal in 5.30, but has been
20 delayed to 5.32 due to problems that showed up with some CPAN modules.
21 For details of what's affected, see L<perldeprecation|
22 perldeprecation/In XS code, use of various macros dealing with UTF-8.>.
23
24 =head1 Performance Enhancements
25
26 =over 4
27
28 =item *
29
30 A handful of small optimizations related to character folding
31 and character classes in regular expressions.
32
33 =back
34
35 =head1 Modules and Pragmata
36
37 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
38 go here.  If Module::CoreList is updated, generate an initial draft of the
39 following sections using F<Porting/corelist-perldelta.pl>.  A paragraph summary
40 for important changes should then be added by hand.  In an ideal world,
41 dual-life modules would have a F<Changes> file that could be cribbed.
42
43 The list of new and updated modules is modified automatically as part of
44 preparing a Perl release, so the only reason to manually add entries here is if
45 you're summarising the important changes in the module update. (Also, if the
46 manually-added details don't match the automatically-generated ones, the
47 release manager will have to investigate the situation carefully.)
48
49 [ Within each section, list entries as an =item entry ]
50
51
52 =head2 Updated Modules and Pragmata
53
54 =over 4
55
56 =item *
57
58 L<CPAN> has been upgraded from version 2.21 to 2.22.
59
60 =item *
61
62 L<DB_File> has been upgraded from version 1.842 to 1.843.
63
64 =item *
65
66 L<File::Find> has been upgraded from version 1.35 to 1.36.
67
68 Variables C<< $Is_Win32 >> and C<< $Is_VMS >> are being initialized.
69
70 =item *
71
72 L<lib> has been upgraded from version 0.64 to 0.65.
73
74 =back
75
76 =head1 Documentation
77
78 =head2 Changes to Existing Documentation
79
80 We have attempted to update the documentation to reflect the changes
81 listed in this document.  If you find any we have missed, send email
82 to L<perlbug@perl.org|mailto:perlbug@perl.org>.
83
84 Additionally, the following selected changes have been made:
85
86 =head3 L<perlvar>
87
88 =over 4
89
90 =item *
91
92 More specific documentation of paragraph mode. [perl #133722].
93
94 =back
95
96 =head1 Diagnostics
97
98 The following additions or changes have been made to diagnostic output,
99 including warnings and fatal error messages.  For the complete list of
100 diagnostic messages, see L<perldiag>.
101
102 =head2 Changes to Existing Diagnostics
103
104 =over 4
105
106 =item *
107
108 L<Prototype not terminated|perldiag/"Prototype not terminated">
109
110 The file and line number is now reported for this error.
111 [perl #133524]
112
113 =back
114
115 =head1 Testing
116
117 Tests were added and changed to reflect the other additions and
118 changes in this release.  Furthermore, these significant changes were
119 made:
120
121 =over 4
122
123 =item *
124
125 Fix intermittent tests which failed due to race conditions which
126 surface during parallel testing. [perl #133740].
127
128 =item *
129
130 Thoroughly test paragraph mode, using a new test file,
131 F<t/io/paragraph_mode.t>. [perl #133722].
132
133 =back
134
135 =head1 Selected Bug Fixes
136
137 =over 4
138
139 =item *
140
141 Fixed a failure to match properly.
142
143 An EXACTFish regnode has a finite length it can hold for the string
144 being matched.  If that length is exceeded, a 2nd node is used for
145 the next segment of the string, for as many regnodes as are needed.
146 Care has to be taken where to break the string, in order to deal
147 multi-character folds in Unicode correctly. If we want to break a
148 string at a place which could potentially be in the middle of a
149 multi-character fold, we back off one (or more) characters, leaving
150 a shorter EXACTFish regnode. This backing off mechanism contained
151 an off-by-one error. [perl #133756].
152
153 =item *
154
155 A bare C<eof> call with no previous file handle now returns true.
156 [perl #133721]
157
158 =item *
159
160 Failing to compile a format now aborts compilation.  Like other errors
161 in sub-parses this could leave the parser in a strange state, possibly
162 crashing perl if compilation continued.  [perl #132158]
163
164 =back
165
166 =head1 Acknowledgements
167
168 XXX Generate this with:
169
170   perl Porting/acknowledgements.pl v5.29.6..HEAD
171
172 =head1 Reporting Bugs
173
174 If you find what you think is a bug, you might check the perl bug database
175 at L<https://rt.perl.org/>.  There may also be information at
176 L<http://www.perl.org/>, the Perl Home Page.
177
178 If you believe you have an unreported bug, please run the L<perlbug> program
179 included with your release.  Be sure to trim your bug down to a tiny but
180 sufficient test case.  Your bug report, along with the output of C<perl -V>,
181 will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
182
183 If the bug you are reporting has security implications which make it
184 inappropriate to send to a publicly archived mailing list, then see
185 L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
186 for details of how to report the issue.
187
188 =head1 Give Thanks
189
190 If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
191 you can do so by running the C<perlthanks> program:
192
193     perlthanks
194
195 This will send an email to the Perl 5 Porters list with your show of thanks.
196
197 =head1 SEE ALSO
198
199 The F<Changes> file for an explanation of how to view exhaustive details on
200 what changed.
201
202 The F<INSTALL> file for how to build Perl.
203
204 The F<README> file for general stuff.
205
206 The F<Artistic> and F<Copying> files for copyright information.
207
208 =cut