Perl 5.24.0 Released |
Written by Nikos Vaggalis |
Tuesday, 17 May 2016 |
While stepping down as Perl 5 Pumpking, in charge of the Perl release cycles, Ricardo Signes still managed to deliver Perl's latest stable release, 5.24, together with the development release, 5.25, that will evolve into 5.26.0 over the course of the next year. Make sure you catch GeekUni's interview with Ricardo for more details on the Pumpking's activities. Version 5.24.0 had approximately 360,000 lines of changes since last version 5.22 (excluding the changes in 5.22.1 and 5.22.2 maintenance versions), with Perl 5.22 containing approximately 590,000 lines of changes from its predecessor, all of that in a 23-month period. So a lot of work over the past two years has gone into this milestone release. According to perlhist Perl's first release was on December 18, 1987 making next year, 2017, a landmark year for Perl with its 30th anniversary. Perl is of the few projects that enjoy such strong foundations which not only kept it alive and going for that many years, but at the same time let it evolve and rejuvenate, not only keeping up to date with the latest industry developments but also setting the pace, still driving innovation forward. An example of that spearheading is the early adoption of Unicode 8.0, just released last June. Perl 5.24 also heralds more features that are focused on working with text such as the introduction of the new class \b{lb} that matches Unicode linebreaks, a feature till now plugged into through a module but now finding its way into the Core. The new version includes notable deprecations and removals:
my ($x, my($y)); our (my $x);
These changes might not cause a fuss but bear in mind that the autoderef feature with which you could write, for example, keys($ref) instead of keys(%$ref), useful for calling functions push, pop, shift and so on on a scalar argument, might had found more use, therefore its deprecation might have some ripple effects. But that removal is probably related to the fact that postfix dereferencing is no longer considered experimental and has found its way into the Core, something that makes autoderef irrelevant. Some implementations of Perl's guts have been reworked, but care has been taken not to affect their public interface, while many core modules have also been upgraded to their newest version, for example the Win32 one from version 0.51 to 0.52, Win32API::File from 0.1202 to 0.1203, utf8 from version 1.17 to 1.19 and Socket from version 2.018 to 2.020_03. Some Common Vulnerabilities and Exposures (CVE), such as "out of boundary access in Win32 path handling", CVE-2015-8608, and "loss of taint in canonpath", CVE-2015-8607, have been fixed. Other changes are to documentation and in platform specific configurations. Performance has attracted a lot of attention in the past couple of years, with RPerl, a trimmed down version of Perl, making huge improvements, but unfortunately RPerl is not affiliated with official Perl. Nonetheless, official Perl has also seen performance improvements by speeding up some constructs; for example in platforms supporting the libc memchr() implementation which makes good use of underlying hardware support. Patterns which include fixed substrings will now often be much faster. Arithmetic operations like addition, subtraction and multiplication have also become faster, while the core itself when benchmarked, resulted in a +20% over Python in this particular experiment. More InformationInterview - Perl’s Pumpking Ricardo Signes Related ArticlesTo be informed about new articles on I Programmer, sign up for our weekly newsletter,subscribe to the RSS feed and follow us on, Twitter, Facebook, Google+ or Linkedin.
Comments
or email your comment to: comments@i-programmer.info
|
Last Updated ( Thursday, 28 June 2018 ) |