cperl-5.22.1 released
https://github.com/perl11/cperl/releases/tag/cperl-5.22.1
The name cperl stands for a perl with classes, types, compiler support, or just a company-friendly perl, but currently it's only a better 5.22 based variant without classes.
Currently it is about 1.5x faster than perl5.22 overall, >2x faster then 5.14 and uses the least amount of memory measured since 5.6, i.e. less than 5.10 and 5.6.2, which were the previous leaders. While perl5.22 uses the most memory yet measured.
See http://perl11.org/cperl/STATUS.html and http://perl11.org/cperl/ for an
overview, changes and docs.
Detailed changes are at https://github.com/perl11/cperl/blob/master/Changes
./Configure -sder -Dusecperl && make -s -j4 test && sudo make install
Looks very interesting. how do you plan on versioning? e.g. if it's based on perl-5.22.1, and you release cperl-5.22.1, but then need to make fixes etc, would it be cperl-5.22.1.1? Also is it stable/production ready?
I've not had a chance to test it yet, but I've always liked the idea of optional types in perl, as I guess have a fair few people, otherwise they wouldn't be there in perl6.
There's a downside though, stuff written for cperl won't work the same in normal perl, but I guess that's just how it goes. Not sure how that would work with the cpan
Versioning is close to perl5 proper.
Since I added so many optimizations on top of 5.23.0 I went for 5.22.1c. There are no API breakages. The next stable releases will be 5.22.2c (with windows support and we will see what else) and 5.24.0c.
Stability/Production ready? It fixes some perl5 issues, but is not as much tested as perl5. I would wait one or two months. We don't use it in production yet. It's an early development stage, though master is stable for quite some time.
> stuff written for cperl won't work the same in normal perl,
Yes, that's why I went with "use cperl;" and the 'c' version suffix to mark incompatible extensions. This will work on CPAN, but fail for all non-cperl users. So nobody will be happy if you upload that. Same as the use v6 modules there.
I bothered them for years to at least accept the syntax I proposed (and which was planned for >10 years) to no avail. Discussions were not possible and are not productive on p5p for decades. So you have the mess now. But someone had to step up. Their current strategy is vilification and they are quite successful with that. Let's see if something else changes.
So I have to maintain my private improved sets of modules, as I do with my distroprefs (i.e. CPAN fixes nobody applies). If you want perl5 features, bother them. But be prepared to hear incredible argumentation. Treat them as kids and be nice, they need that.
Good stuff. What would be required to have cperl versions available via perlbrew?
perlbrew needs to remove some strings and regexes concerning the dist tarball name in order to support differently named Perl variants, as of now the string "perl" is hardcoded all over. Run
perlbrew download https://github.com/perl11/cperl/archive/cperl-5.22.1.tar.gz
and start debugging from there.