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:

  • Nested declarations are now disallowed, for example, these are now fatal:

my ($x, my($y));

our (my $x);

  • The /\C/ character class has been removed and sysread(), syswrite(), recv() and send() on :utf8 handles are deprecated.

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 Information

Perl 5.24 delta

Perl programs versus Python 3

Interview - Perl’s Pumpking Ricardo Signes

Related Articles

RPerl running Perl 5 faster

To be informed about new articles on I Programmer, sign up for our weekly newsletter,subscribe to the RSS feed and follow us on, Twitter, FacebookGoogle+ or Linkedin

 

Banner


GitHub Announces Free Copilot
19/12/2024

GitHub has launched GitHub Copilot Free, a free version of Copilot that provides limited access to selected features of Copilot and is automatically integrated into VS Code. The free tier is aimed at  [ ... ]



The PostgreSQL Extension Repo By Pigsty
09/12/2024

A repository containing any PostgreSQL extension you can imagine for Linux distributions is something that might be valuable if you are trying to save some time.


More News

 

espbook

 

Comments




or email your comment to: comments@i-programmer.info

 

Last Updated ( Thursday, 28 June 2018 )