Skip to content
This repository was archived by the owner on Jun 1, 2023. It is now read-only.

Commit 9e3e2e7

Browse files
committed
add perl5291cdelta.pod
1 parent 908a169 commit 9e3e2e7

File tree

5 files changed

+350
-1
lines changed

5 files changed

+350
-1
lines changed

MANIFEST

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5982,6 +5982,7 @@ pod/perl5280delta.pod Perl changes in version 5.28.0
59825982
pod/perl5281cdelta.pod cperl changes in version 5.28.1c
59835983
pod/perl5281delta.pod Perl changes in version 5.28.1
59845984
pod/perl5290cdelta.pod cperl changes in version 5.29.0c
5985+
pod/perl5291cdelta.pod cperl changes in version 5.29.1c
59855986
pod/perl561delta.pod Perl changes in version 5.6.1
59865987
pod/perl56delta.pod Perl changes in version 5.6
59875988
pod/perl581delta.pod Perl changes in version 5.8.1

pod/perl.pod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ aux c2ph h2ph h2xs cperlbug pl2pm pod2html pod2man splain xsubpp
242242

243243
perlcperl Perl notes for cperl (variant)
244244
perlcdelta cperl changes in version 5.28.2c
245+
perl5291cdelta cperl changes in version 5.29.1c
245246
perl5290cdelta cperl changes in version 5.29.0c
246247
perl5281cdelta cperl changes in version 5.28.1c
247248
perl5280cdelta cperl changes in version 5.28.0c

pod/perl5291cdelta.pod

Lines changed: 343 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,343 @@
1+
=encoding utf8
2+
3+
=head1 NAME
4+
5+
perl5291cdelta - what is new for cperl v5.29.1
6+
7+
=head1 DESCRIPTION
8+
9+
This document describes differences between the cperl 5.29.1 and the cperl
10+
5.29.0 release.
11+
12+
If you are upgrading from an earlier release such as v5.28.1c, first read
13+
L<perl5290cdelta>, which describes differences between v5.28.1c and v5.29.0c.
14+
15+
=head1 Security
16+
17+
=head2 [CVE-2018-18311] Integer overflow leading to buffer overflow and segmentation fault
18+
19+
Integer arithmetic in C<Perl_my_setenv()> could wrap when the combined length
20+
of the environment variable name and value exceeded around 0x7fffffff. This
21+
could lead to writing beyond the end of an allocated buffer with attacker
22+
supplied data.
23+
24+
L<[perl #133204]|https://rt.perl.org/Ticket/Display.html?id=133204>
25+
26+
=head2 Restrict my_setenv to ARG_MAX
27+
28+
perl5 fixed C<Perl_my_setenv()> by allowing C<%ENV> sizes larger than
29+
C<ARG_MAX> (typically 128Kb), up to 2GB. This is considered a security
30+
risk. It writes onto the kernel stack, even if often caught by MAXEXECARGS
31+
"Argument list too long" kernel errors on the next exec call.
32+
cperl disallows C<%ENV> larger than the sysconf(_SC_ARG_MAX)/MAX_ARG_STRLEN/
33+
ARG_MAX/NCARGS size with a new L<perldiag/"Environment size %d larger than the allowed %d">
34+
error.
35+
36+
=head1 Performance Enhancements
37+
38+
=over 4
39+
40+
=item *
41+
42+
Optimized the static link order of objects for the default case,
43+
when you cannot use lto, pgo, autofdo nor bolt.
44+
Added lto to the default ccflags.
45+
See L<http://perl11.org/blog/bolt.html> and
46+
L<[cperl #381]|https://github.com/perl11/cperl/issues/381>.
47+
cperl-only.
48+
49+
=back
50+
51+
=head1 Modules and Pragmata
52+
53+
The list of new and updated modules is modified automatically as part of
54+
preparing a Perl release, so the only reason to manually add entries here is if
55+
you're summarising the important changes in the module update. (Also, if the
56+
manually-added details don't match the automatically-generated ones, the
57+
release manager will have to investigate the situation carefully.)
58+
59+
=head2 Updated Modules and Pragmata
60+
61+
=over 4
62+
63+
=item L<B::C> 1.55_10
64+
65+
Better mconcat support. Fix some XS memory leaks.
66+
67+
Add missing optimize flags to F<cc_harness>, F<TestBC.pm> and F<perlcc>,
68+
required for C<-flto>.
69+
70+
When testing overly large C files > 50k (with modules), apply cc -O1,
71+
not -O2 or -O3.
72+
73+
Honor and set SKIP_SLOW_TESTS, set with C<-flto>. Applied to all tests
74+
with large C files. t/c*.t now only execute 13 tests under
75+
-flto/SKIP_SLOW_TESTS and CI, because they may not be finished in
76+
under 10min.
77+
78+
Added a C<is_CI()> test detection.
79+
80+
=item L<Cpanel::JSON::XS> 4.09
81+
82+
Silence Gconvert -Wunused-result.
83+
84+
Add unblessed_bool property (PR #118 by Pali)
85+
86+
Add seperate allow_dupkeys property, in relaxed (#122),
87+
Fixed allow_dupkeys for the XS slow path,
88+
Silence 2 -Wunused-value warnings,
89+
Fix ->unblessed_bool to produce modifiable perl structures (PR #121 by Pali).
90+
91+
=item L<ExtUtils::Embed> 1.36
92+
93+
Added optimize to ccopts, required for C<-flto>.
94+
Fixed documentation of ccopts.
95+
Fixed test to use ccopts, include local -I.., indentation,
96+
remove wrong -O hack.
97+
cperl-only.
98+
99+
=item L<ExtUtils::MakeMaker> 8.35_07
100+
101+
Added C<-flto> support for static libs (need the lto plugin) and D for
102+
deterministic builds, using arflags for AR_STATIC_ARGS, not just 'cr'.
103+
cperl-only.
104+
105+
=item L<Win32> 0.52_02
106+
107+
Fix various -Wunused warnings, added () usage croaks.
108+
Fixed a -Warray-bounds buffer overflow in LONGPATH,
109+
and two -Wmaybe-uninitialized.
110+
cperl-only.
111+
112+
=back
113+
114+
=head1 Documentation
115+
116+
=head2 Changes to Existing Documentation
117+
118+
We have attempted to update the documentation to reflect the changes
119+
listed in this document. If you find any we have missed, send email
120+
to L<perlbug@perl.org|mailto:perlbug@perl.org>.
121+
122+
Additionally, the following selected changes have been made:
123+
124+
=head3 L<perlhacktips>
125+
126+
=over 4
127+
128+
=item *
129+
130+
Added a L<perlhacktips/COMPILER OPTIMIZATIONS> section, with LTO, PGO,
131+
AutoFDO, prelink and BOLT tips.
132+
cperl-only.
133+
134+
=back
135+
136+
=head1 Configuration and Compilation
137+
138+
=over 4
139+
140+
=item *
141+
142+
Without C<DEBUGGING> the best C<-flto> Link Time Optimization flag is
143+
now added to the default ccflags.
144+
See L<http://perl11.org/blog/bolt.html> and
145+
L<[cperl #381]|https://github.com/perl11/cperl/issues/381>.
146+
147+
The correct -flto= variant is then used for ldflags and lddlflags also.
148+
cldflags contains now also the optimize settings, needed for -flto.
149+
150+
ar is replaced by llvm-ar-$ver if needed.
151+
All cperl-only.
152+
153+
=item *
154+
155+
C<ccname> is now set to "clang" for clang, not "gcc".
156+
157+
=item *
158+
159+
On linux "icc" is also set for C<ccname>, and C<-O3> is preferred over
160+
C<-O2> in most non-DEBUGGING cases with newer compilers.
161+
cperl-only.
162+
163+
=item *
164+
165+
C<llvmversion> string added, like "6.0.1-9.1 (tags/RELEASE_601/final)",
166+
analog to C<gccversion>. With clang both variables are set.
167+
cperl-only.
168+
169+
=item *
170+
171+
Added C<llvmsuffix> config, for bitcode-enabled ar, ranlib,
172+
llvm-profdata. cperl-only.
173+
174+
=item *
175+
176+
Added C<ar --plugin> path to the gcc F<lto_plugin>, required for
177+
binutils C<ar> with static libs with C<-flto>. Esp. on cygwin.
178+
Ditto for C<ranlib>. cperl-only.
179+
180+
=item *
181+
182+
Added clang and useshrplib support for the two .autofdo targets.
183+
See L<perlhacktips/AutoFDO>. cperl-only.
184+
185+
=item *
186+
187+
Added two .pgo targets, analog to autofdo. See L<perlhacktips/PGO>.
188+
cperl-only.
189+
190+
=item *
191+
192+
Fix forgotten C<ffi_target> XSConfig key. (bug introduced in 5.29.0c)
193+
cperl-only.
194+
195+
=item *
196+
197+
Set C<archname> and the target triple C<myarchname> earlier, right
198+
after osname. cperl-only.
199+
200+
=item *
201+
202+
With C<-Uinstallmandirs> all four variables C<installman1dir>,
203+
C<installman3dir>, C<installsiteman1dir> and C<installsiteman3dir> are set to
204+
none, skipping installing all man pages. cperl-only.
205+
206+
=back
207+
208+
=head1 Testing
209+
210+
Tests were added and changed to reflect the other additions and
211+
changes in this release. Furthermore, these significant changes were
212+
made:
213+
214+
=over 4
215+
216+
=item *
217+
218+
Added C<is_CI> detection function to F<t/TEST>.
219+
cperl-only.
220+
221+
=item *
222+
223+
Honor more B<SKIP_SLOW_TESTS>, esp. with B-C, esp. with C<-flto>.
224+
Document all used ENV vars in F<t/harness>.
225+
cperl-only.
226+
227+
=back
228+
229+
=head1 Platform Support
230+
231+
=head2 Platform-Specific Notes
232+
233+
=over 4
234+
235+
=item cygwin
236+
237+
Fixed C<boot_Win32CORE> prototype to skip dllexport, fatal with C<-flto>.
238+
239+
Fixed ar for F<Win32CORE.a> by using the gcc liblto plugin.
240+
241+
Skip probing for C<-flto> on cygwin. This reliably fails to find a
242+
proper image-base with that many new symbols, the adress space is just
243+
too small:
244+
C<Invalid relocation. Offset 0x.. at address 0x.. doesn't fit into 32 bits>
245+
246+
All cperl-only.
247+
248+
=back
249+
250+
=head1 Internal Changes
251+
252+
=over 4
253+
254+
=item *
255+
256+
Enabled USE_REENTRANT_API with threads by default on all platforms. See F<reentr.c>.
257+
Previously it was only enabled by default on darwin.
258+
cperl-only.
259+
260+
=back
261+
262+
=head1 Testing
263+
264+
=over 4
265+
266+
=item *
267+
268+
Added F<t/run/envsize.t> for L</Restrict my_setenv to ARG_MAX>
269+
270+
=back
271+
272+
=head1 Selected Bug Fixes
273+
274+
=over 4
275+
276+
=item *
277+
278+
Made the C<gmtime_r> and C<localtime_r> fallbacks thread-safe.
279+
280+
=back
281+
282+
=head1 Acknowledgements
283+
284+
cperl 5.29.1 represents approximately 5 months of development since cperl
285+
5.29.0c and contains approximately 15,000 lines of changes across 140 files
286+
from 4 authors.
287+
288+
Excluding auto-generated files, documentation and release tools, there were
289+
approximately 1,200 lines of changes to 52 .pm, .t, .c and .h files.
290+
291+
The following people are known to have contributed the improvements that
292+
became cperl 5.29.1:
293+
294+
Reini Urban, David Mitchell, Dominic Hargreaves, Karl Williamson.
295+
296+
The list above is almost certainly incomplete as it is automatically
297+
generated from version control history including the perl and cperl repos.
298+
In particular, it does not include the names of the (very much appreciated)
299+
contributors who reported issues to the Perl bug tracker and the cperl
300+
github issues.
301+
302+
Many of the changes included in this version originated in the CPAN modules
303+
included in Perl's core. We're grateful to the entire CPAN community for
304+
helping Perl to flourish.
305+
306+
For a more complete list of all of Perl's historical contributors, please
307+
see the F<AUTHORS> file in the Perl source distribution.
308+
309+
Generated with:
310+
311+
cperl Porting/acknowledgements.pl cperl-5.29.0..HEAD -c
312+
313+
=head1 Reporting Bugs
314+
315+
If you find what you think is a bug, you might check the perl bug database
316+
at L<https://rt.perl.org/> . There may also be information at
317+
L<http://www.perl.org/> , the Perl Home Page.
318+
319+
If you believe you have an unreported bug, please run the L<cperlbug> program
320+
included with your release. Be sure to trim your bug down to a tiny but
321+
sufficient test case. Your bug report, along with the output of C<perl -V>,
322+
will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
323+
324+
If you think it's a cperl specific bug or trust the cperl developers more
325+
please file an issue at L<https://github.com/perl11/cperl/issues>.
326+
327+
If the bug you are reporting has security implications which make it
328+
inappropriate to send to a publicly archived mailing list, then see
329+
L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
330+
For details of how to report the issue.
331+
332+
=head1 SEE ALSO
333+
334+
The F<Changes> file for an explanation of how to view exhaustive details on
335+
what changed.
336+
337+
The F<INSTALL> file for how to build Perl.
338+
339+
The F<README> file for general stuff.
340+
341+
The F<Artistic> and F<Copying> files for copyright information.
342+
343+
=cut

t/porting/known_pod_issues.dat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -454,10 +454,10 @@ pod/perl5280cdelta.pod Apparent broken link 8
454454
pod/perl5280cdelta.pod Apparent internal link is missing its forward slash 4
455455
pod/perl5280cdelta.pod Verbatim line length including indents exceeds 79 by 4
456456
pod/perl5280cdelta.pod alternative text. contains non-escaped | or / 1
457-
pod/perl5282cdelta.pod =item has no contents 1
458457
pod/perl5282cdelta.pod Apparent broken link 1
459458
pod/perl5290cdelta.pod Apparent broken link 27
460459
pod/perl5290cdelta.pod Apparent internal link is missing its forward slash 1
460+
pod/perl5291cdelta.pod Apparent broken link 3
461461
pod/perlandroid.pod Verbatim line length including indents exceeds 79 by 3
462462
pod/perlapi.pod ? Should you be using L<...> instead of 1
463463
pod/perlapi.pod Verbatim line length including indents exceeds 79 by 14

0 commit comments

Comments
 (0)