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

Commit 1ddd4eb

Browse files
committed
Release cperl-5.28.0c
perlhist: recalc sizes, update STATUS, add 5263c delta
1 parent 47b207c commit 1ddd4eb

File tree

11 files changed

+305
-56
lines changed

11 files changed

+305
-56
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,9 @@ cperl.project
241241
cperl.workspace
242242
cperl.xcodeproj/
243243
cperl.xcworkspace/
244+
/.analysis
245+
.cquery
246+
/.cquery_cached_index
244247

245248
# generated by Porting/sync-with-cpan
246249
/make.log

MANIFEST

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5146,6 +5146,7 @@ pod/perl5261cdelta.pod cperl changes in version 5.26.1c
51465146
pod/perl5261delta.pod Perl changes in version 5.26.1
51475147
pod/perl5262cdelta.pod cperl changes in version 5.26.2c
51485148
pod/perl5262delta.pod Perl changes in version 5.26.2
5149+
pod/perl5263cdelta.pod cperl changes in version 5.26.3c
51495150
pod/perl561delta.pod Perl changes in version 5.6.1
51505151
pod/perl56delta.pod Perl changes in version 5.6
51515152
pod/perl581delta.pod Perl changes in version 5.8.1

META.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@
129129
"vxs.inc"
130130
]
131131
},
132-
"release_status" : "testing",
132+
"release_status" : "stable",
133133
"resources" : {
134134
"bugtracker" : {
135135
"web" : "http://github.com/perl11/cperl/issues"

STATUS.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ stopped, even if it will cause a massive blame game.
1414
Currently it is about 20% faster than perl5 overall, >2x faster then
1515
5.14 and uses the least amount of memory measured since 5.6, i.e. less
1616
than 5.10 and 5.6.2, which were the previous leaders. While perl5.22
17-
uses the most memory yet measured. cperl 5.24 and 5.26 is about 2x
17+
uses the most memory yet measured. cperl 5.24-5.28 are about 2x
1818
faster than 5.22 in bigger real-world applications. Esp. function
1919
calls with signatures are 2x faster, normal functions with a `my(..) =
2020
@_;` prolog are automatically promoted to signatures.
2121

22-
But only a small number of needed features are yet merged. The plan
22+
But only a minor number of needed features are yet merged. The plan
2323
was to support most perl5-compatible perl6 features (*"do not break
2424
CPAN"*), improve performance and memory usage, re-establish compiler
2525
(`B::C`) support, re-establish perl5 core development which
@@ -38,19 +38,19 @@ The BSD's and Solaris are only tested before a release.
3838

3939
The current stable release is
4040

41-
* [5.26.1c](https://github.com/perl11/cperl/releases/tag/cperl-5.26.1) - [perl5261cdelta](perl5261cdelta.html).
41+
* [5.26.3c](https://github.com/perl11/cperl/releases/tag/cperl-5.26.3) - [perl5263cdelta](perl5263cdelta.html).
4242

4343
the latest development release:
4444

45-
* [5.27.2c](https://github.com/perl11/cperl/releases/tag/cperl-5.27.2) - [perl5272cdelta](perl5272cdelta.html).
45+
* [5.28.0c](https://github.com/perl11/cperl/releases/tag/cperl-5.28.0) - [perl5280cdelta](perl5280cdelta.html).
4646

4747
We also have:
4848

4949
* [5.24.3c](https://github.com/perl11/cperl/releases/tag/cperl-5.24.3) - [perl5243cdelta](perl5243cdelta.html),
5050
* [5.22.5c](https://github.com/perl11/cperl/releases/tag/cperl-5.22.5), [perl5225cdelta](perl5225cdelta.html).
5151

5252
All tests pass. CPAN works.
53-
Some fixes in my `rurban/distroprefs` repo for certain CPAN modules are needed.
53+
Some fixes in my [rurban/distroprefs](https://github.com/rurban/distroprefs/) repo for certain CPAN modules are needed.
5454

5555
v5.24.0c, v5.24.1c and v5.24.3c have
5656
[about 24 fixes](perldelta.html#Known-Problems-fixed-elsewhere),
@@ -68,7 +68,7 @@ increase over time.
6868

6969
![Memory usage with unicode s///i](cperl-p1.png)
7070

71-
![Benchmarks](cperl-bench27.png)
71+
![Benchmarks](cperl-bench28.png)
7272
For all versions see [bench-all/](bench-all/index.html)
7373

7474
# In the latest stable releases are the following major features:
@@ -150,6 +150,7 @@ For all versions see [bench-all/](bench-all/index.html)
150150
multi, has, is, does keywords, proper fields, Mu superclass.
151151
* thread-safety on darwin for uselocale
152152
* hash slice consistency, no autovivification as sub args
153+
* no perl4 `'` package seperator, `'` is not expanded to `::`
153154

154155
Most of them only would have a chance to be merged upstream if a p5p
155156
committer would have written it.
@@ -217,14 +218,14 @@ The -d debugger fails on most signatures.
217218

218219
See the github issues: [github.com/perl11/cperl/issues](https://github.com/perl11/cperl/issues?q=is%3Aissue+is%3Aopen+label%3Abug)
219220

220-
The following CPAN modules have no patches for 5.26.1c yet:
221+
The following CPAN modules have no patches for 5.28.0c yet:
221222

222223
* autovivification (mderef rpeep changes)
223224
* TryCatch
224225
* Catalyst::Runtime
225226

226227
Time::Tiny, Date::Tiny, DateTime::Tiny feature DateTime::locale broken
227-
since 5.22. unrelated to cperl, -f force install.
228+
since 5.22. Unrelated to cperl, -f force install.
228229

229230
Many other packages clash with an unneeded mix of Test::More in inc/
230231
or t/. Some other use wrong undocumented Test-Simple calls, which the
@@ -246,10 +247,11 @@ Patches are needed for `Module::Build`, `IO::Socket::SSL` and `Net::SSLeay`.
246247
(*also affects perl5 with the XSConfig module*)
247248
* Readonly use base @ISA
248249
(*since 5.26.0c*)
249-
* Missing . in @INC
250-
(*cperl removed . from @INC 2 years ago already, but ran the cpan tests and
251-
installer with PERL_USE_UNSAFE_INC. This is now a general 5.26 problem.*)
252250
* %hash = map under [use strict](/blog/strict-hashpairs.html) (hashpairs since 5.27.0)
251+
* subroutine names with `'` are now illegal. You can declare them as bareword but
252+
must call them as string.
253+
* Incomplete OO: role composition, native classes, eval, mop, inlining not yet fully
254+
implemented.
253255

254256
Breakage is much less than with a typical major perl5 release, and the
255257
patches for most common CPAN modules are provided in
@@ -466,4 +468,4 @@ They also revert some wrong decisions p5p already made.
466468

467469
--
468470

469-
2018-01-05 rurban
471+
2018-09-08 rurban

dist/Module-CoreList/lib/Module/CoreList.pm

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,7 @@ sub changes_between {
361361
5.027011 => '2018-04-20',
362362
5.028000 => '2018-06-22',
363363
'5.028000c' => '2018-09-10',
364+
'5.026003c' => '2018-09-10',
364365
);
365366

366367
sub version_sort {
@@ -17389,6 +17390,19 @@ for my $version ( sort { version_sort($a, $b) } keys %released ) {
1738917390
removed => {
1739017391
}
1739117392
},
17393+
'5.026003c' => {
17394+
delta_from => '5.026002c',
17395+
changed => {
17396+
'B::Op_private' => '5.026003',
17397+
'Module::CoreList' => '5.20180910c',
17398+
'Module::CoreList::Utils'=> '5.20180910c',
17399+
'PerlIO::via' => '0.17',
17400+
'Term::ReadLine' => '1.17',
17401+
'Unicode::UCD' => '0.69_02',
17402+
},
17403+
removed => {
17404+
}
17405+
},
1739217406
);
1739317407

1739417408
sub is_core

dist/Module-CoreList/lib/Module/CoreList/Utils.pm

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1525,6 +1525,11 @@ our %delta :const = (
15251525
changed => {},
15261526
removed => {}
15271527
},
1528+
'5.026003c' => {
1529+
delta_from => '5.026002c',
1530+
changed => {},
1531+
removed => {}
1532+
},
15281533
);
15291534

15301535
%utilities = Module::CoreList::_undelta(\%delta);

patchlevel.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@ hunk.
133133
# endif
134134
static const char * const local_patches[] = {
135135
NULL
136-
,"RC1"
137136
#ifdef PERL_GIT_UNCOMMITTED_CHANGES
138137
,"uncommitted-changes"
139138
#endif

pod/perl.pod

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

241241
perlcperl Perl notes for cperl (variant)
242242
perlcdelta cperl changes since previous version
243+
perl5263cdelta cperl changes in version 5.26.3c
243244
perl5262cdelta cperl changes in version 5.26.2c
244245
perl5261cdelta cperl changes in version 5.26.1c
245246
perl5260cdelta cperl changes in version 5.26.0c

pod/perl5263cdelta.pod

Lines changed: 217 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,217 @@
1+
=encoding utf8
2+
3+
=head1 NAME
4+
5+
perl5263cdelta - what is new for cperl v5.26.3
6+
7+
=head1 DESCRIPTION
8+
9+
This document describes the differences between the cperl 5.26.2c
10+
and the cperl 5.26.3c releases.
11+
12+
If you are upgrading from an earlier release such as v5.26.1c, first
13+
read the L<perl5262cdelta> documentation, which describes differences
14+
between v5.26.1c and v5.26.2c.
15+
16+
=head1 Security
17+
18+
=head2 [CVE-2018-6797] heap-buffer-overflow (WRITE of size 1) in S_regatom (regcomp.c)
19+
20+
A crafted regular expression could cause a heap buffer write overflow, with
21+
control over the bytes written.
22+
L<[perl #132227]|https://rt.perl.org/Public/Bug/Display.html?id=132227>
23+
24+
=head2 [CVE-2018-6798] Heap-buffer-overflow in Perl__byte_dump_string (utf8.c)
25+
26+
Matching a crafted locale dependent regular expression could cause a heap
27+
buffer read overflow and potentially information disclosure.
28+
L<[perl #132063]|https://rt.perl.org/Public/Bug/Display.html?id=132063>
29+
30+
=head2 [CVE-2018-6913] heap-buffer-overflow in S_pack_rec
31+
32+
C<pack()> could cause a heap buffer write overflow with a large item count.
33+
L<[perl #131844]|https://rt.perl.org/Public/Bug/Display.html?id=131844>
34+
35+
=head2 Assertion failure in Perl__core_swash_init (utf8.c)
36+
37+
Control characters in a supposed Unicode property name could cause perl to
38+
crash. This has been fixed.
39+
L<[perl #132055]|https://rt.perl.org/Public/Bug/Display.html?id=132055>
40+
L<[perl #132553]|https://rt.perl.org/Public/Bug/Display.html?id=132553>
41+
L<[perl #132658]|https://rt.perl.org/Public/Bug/Display.html?id=132658>
42+
43+
=head1 Incompatible Changes
44+
45+
There are no changes intentionally incompatible with 5.26.2c. If any exist,
46+
they are bugs, and we request that you submit a report. See L</Reporting
47+
Bugs> below.
48+
49+
=head1 Modules and Pragmata
50+
51+
=head2 Updated Modules and Pragmata
52+
53+
=over 4
54+
55+
=item *
56+
57+
L<Module::CoreList> has been upgraded from version 5.20170922_26 to 5.20180414_26.
58+
59+
=item *
60+
61+
L<PerlIO::via> has been upgraded from version 0.16 to 0.17.
62+
63+
=item *
64+
65+
L<Term::ReadLine> has been upgraded from version 1.16 to 1.17.
66+
67+
=item *
68+
69+
L<Unicode::UCD> has been upgraded from version 0.68 to 0.69_02.
70+
71+
=back
72+
73+
=head1 Documentation
74+
75+
=head2 Changes to Existing Documentation
76+
77+
=head3 L<perluniprops>
78+
79+
=over 4
80+
81+
=item *
82+
83+
This has been updated to note that C<\p{Word}> now includes code points
84+
matching the C<\p{Join_Control}> property. The change to the property was made
85+
in Perl 5.18, but not documented until now. There are currently only two code
86+
points that match this property: U+200C (ZERO WIDTH NON-JOINER) and U+200D
87+
(ZERO WIDTH JOINER).
88+
89+
=back
90+
91+
=head1 Platform Support
92+
93+
=head2 Platform-Specific Notes
94+
95+
=over 4
96+
97+
=item Windows
98+
99+
Visual C++ compiler version detection has been improved to work on non-English
100+
language systems.
101+
L<[perl #132421]|https://rt.perl.org/Public/Bug/Display.html?id=132421>
102+
103+
We now set C<$Config{libpth}> correctly for 64-bit builds using Visual C++
104+
versions earlier than 14.1.
105+
L<[perl #132484]|https://rt.perl.org/Public/Bug/Display.html?id=132484>
106+
107+
=back
108+
109+
=head1 Selected Bug Fixes
110+
111+
=over 4
112+
113+
=item *
114+
115+
The C<readpipe()> built-in function now checks at compile time that it has only
116+
one parameter expression, and puts it in scalar context, thus ensuring that it
117+
doesn't corrupt the stack at runtime.
118+
L<[perl #4574]|https://rt.perl.org/Public/Bug/Display.html?id=4574>
119+
120+
=item *
121+
122+
Fixed a use after free bug in C<pp_list> introduced in Perl 5.27.1.
123+
L<[perl #131954]|https://rt.perl.org/Public/Bug/Display.html?id=131954>
124+
125+
=item *
126+
127+
Parsing a C<sub> definition could cause a use after free if the C<sub> keyword
128+
was followed by whitespace including newlines (and comments).
129+
L<[perl #131836]|https://rt.perl.org/Public/Bug/Display.html?id=131836>
130+
131+
=item *
132+
133+
The tokenizer now correctly adjusts a parse pointer when skipping whitespace in
134+
an C< ${identifier} > construct.
135+
L<[perl #131949]|https://rt.perl.org/Public/Bug/Display.html?id=131949>
136+
137+
=item *
138+
139+
Accesses to C<${^LAST_FH}> no longer assert after using any of a variety of I/O
140+
operations on a non-glob.
141+
L<[perl #128263]|https://rt.perl.org/Public/Bug/Display.html?id=128263>
142+
143+
=item *
144+
145+
C<sort> now performs correct reference counting when aliasing C<$a> and C<$b>,
146+
thus avoiding premature destruction and leakage of scalars if they are
147+
re-aliased during execution of the sort comparator.
148+
L<[perl #92264]|https://rt.perl.org/Public/Bug/Display.html?id=92264>
149+
150+
=item *
151+
152+
Some convoluted kinds of regexp no longer cause an arithmetic overflow when
153+
compiled.
154+
L<[perl #131893]|https://rt.perl.org/Public/Bug/Display.html?id=131893>
155+
156+
=item *
157+
158+
Fixed a duplicate symbol failure with B<-flto -mieee-fp> builds. F<pp.c>
159+
defined C<_LIB_VERSION> which B<-lieee> already defines.
160+
L<[perl #131786]|https://rt.perl.org/Public/Bug/Display.html?id=131786>
161+
162+
=item *
163+
164+
A NULL pointer dereference in the C<S_regmatch()> function has been fixed.
165+
L<[perl #132017]|https://rt.perl.org/Public/Bug/Display.html?id=132017>
166+
167+
=item *
168+
169+
Failures while compiling code within other constructs, such as with string
170+
interpolation and the right part of C<s///e> now cause compilation to abort
171+
earlier.
172+
173+
Previously compilation could continue in order to report other errors, but the
174+
failed sub-parse could leave partly parsed constructs on the parser
175+
shift-reduce stack, confusing the parser, leading to perl crashes.
176+
L<[perl #125351]|https://rt.perl.org/Public/Bug/Display.html?id=125351>
177+
178+
=back
179+
180+
=head1 Acknowledgements
181+
182+
Generated with:
183+
184+
cperl Porting/acknowledgements.pl cperl-5.26.2..HEAD
185+
186+
=head1 Reporting Bugs
187+
188+
If you find what you think is a bug, you might check the articles recently
189+
posted to the comp.lang.perl.misc newsgroup and the perl bug database at
190+
L<https://rt.perl.org/> . There may also be information at
191+
L<http://www.perl.org/> , the Perl Home Page.
192+
193+
If you believe you have an unreported bug, please run the L<cperlbug> program
194+
included with your release. Be sure to trim your bug down to a tiny but
195+
sufficient test case. Your bug report, along with the output of C<perl -V>,
196+
will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
197+
198+
If you think it's a cperl specific bug or trust the cperl developers more
199+
please file an issue at L<https://github.com/perl11/cperl/issues>.
200+
201+
If the bug you are reporting has security implications which make it
202+
inappropriate to send to a publicly archived mailing list, then see
203+
L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
204+
For details of how to report the issue.
205+
206+
=head1 SEE ALSO
207+
208+
The F<Changes> file for an explanation of how to view exhaustive details on
209+
what changed.
210+
211+
The F<INSTALL> file for how to build Perl.
212+
213+
The F<README> file for general stuff.
214+
215+
The F<Artistic> and F<Copying> files for copyright information.
216+
217+
=cut

0 commit comments

Comments
 (0)