LWN.net Logo

Perl 5.14.0 released

From:  Jesse Vincent <jesse-AT-fsck.com>
To:  perl5-porters-AT-perl.org
Subject:  Perl 5.14.0 is now available
Date:  Sat, 14 May 2011 16:36:45 -0400
Message-ID:  <20110514203645.GA14932@puppy>
Archive-link:  Article, Thread

    At the start of any project, I'm programming primarily to please
    myself. (The two chief virtues in a programmer are laziness and
    impatience.)  After a while somebody looks over my shoulder and says,
    "That's neat. It'd be neater if it did such-and-so."  So the thing
    gets neater. Pretty soon (a year or two) I have an rn, a warp,
    a patch, or a perl. One of these years I'll have a metaconfig.

    I then say to myself, "I don't want my life's work to die when this
    computer is scrapped, so I should let some other people use this.
    If I ask my company to sell this, it'll never see the light of day,
    and nobody would pay much for it anyway. If I sell it myself, I'll
    be in trouble with my company, to whom I signed my life away when I
    was hired. If I give it away, I can pretend it was worthless in the
    first place, so my company won't care. In any event, it's easier
    to ask forgiveness than permission."

    So a freely distributable program is born. 

            -- Larry Wall, January 12, 1988 <992@devvax.JPL.NASA.GOV>  

On behalf of perl5-porters It gives me great pleasure to announce the
release of Perl 5.14.0.

SHA-1 signatures for this release:

    da5e991f9d4a6728eccfc190c5ddbed3c02a94fe  perl-5.14.0.tar.bz2
    7e2aab2101b087f6f2b9405b626a3f064c23693d  perl-5.14.0.tar.gz

You can download this release from your nearest CPAN mirror or from:
    
    http://search.cpan.org/dist/perl-5.14.0/

Some notable changes in this release include:

    * Unicode 6.0 support, along with many, many improvements to our
      Unicode-related features

    * Improved support for IPv6

    * Significantly easier autoconfiguration of the CPAN client

    * A new /r flag which makes s/// substitutions non-destructive
    
    * New regular expression flags to control whether matched
      strings should be treated as ASCII or Unicode 

    * New "package Foo { }" syntax 

    * Uses less memory and CPU than previous releases

Perl 5.14.0 includes numerous other new features, optimizations and
bugfixes. You can find a complete list of these changes on the web at:

  http://search.cpan.org/~jesse/perl-5.14.0/pod/perldelta.pod

Based on extensive testing over the past 3 months, we believe that Perl
5.14.0 is ready for production deployments. However, you should never
blindly trust any software vendor. It is imperative that you test new
software before deploying it in production. If you discover issues
with this release, please use the "perlbug" tool to report them.

We will release Perl 5.14.1 in approximately one month. This
patch release will include corrections for any significant issues
discovered in this release but will not include new features or 
any incompatible changes.

Perl 5.16 will be released in the spring of 2012. If you'd like to help
shape Perl 5's future, please join us on the perl5-porters mailing list.

Perl 5.14.0 represents one year of development since Perl 5.12.0 and
contains nearly 550,000 lines of changes across nearly 3,000 files from
150 authors and committers.

Perl continues to flourish into its third decade thanks to a vibrant
community of users and developers. The following people are known to
have contributed to this release:

Aaron Crane, Abhijit Menon-Sen, Abigail, Ævar Arnfjörð Bjarmason,
Alastair Douglas, Alexander Alekseev, Alexander Hartmaier, Alexandr
Ciornii, Alex Davies, Alex Vandiver, Ali Polatel, Allen Smith, Andreas
König, Andrew Rodland, Andy Armstrong, Andy Dougherty, Aristotle
Pagaltzis, Arkturuz, Arvan, A. Sinan Unur, Ben Morrow, Bo Lindbergh,
Boris Ratner, Brad Gilbert, Bram, brian d foy, Brian Phillips, Casey
West, Charles Bailey, Chas. Owens, Chip Salzenberg, Chris 'BinGOs'
Williams, chromatic, Craig A. Berry, Curtis Jewell, Dagfinn Ilmari
Mannsåker, Dan Dascalescu, Dave Rolsky, David Caldwell, David Cantrell,
David Golden, David Leadbeater, David Mitchell, David Wheeler, Eric
Brine, Father Chrysostomos, Fingle Nark, Florian Ragwitz, Frank Wiegand,
Franz Fasching, Gene Sullivan, George Greer, Gerard Goossen, Gisle Aas,
Goro Fuji, Grant McLean, gregor herrmann, H.Merijn Brand, Hongwen Qiu,
Hugo van der Sanden, Ian Goodacre, James E Keenan, James Mastros, Jan
Dubois, Jay Hannah, Jerry D. Hedden, Jesse Vincent, Jim Cromie, Jirka
Hru?ka, John Peacock, Joshua ben Jore, Joshua Pritikin, Karl Williamson,
Kevin Ryde, kmx, Lars D?????? ???, Larwan Berke, Leon Brocard, Leon
Timmermans, Lubomir Rintel, Lukas Mai, Maik Hentsche, Marty Pauley,
Marvin Humphrey, Matt Johnson, Matt S Trout, Max Maischein, Michael
Breen, Michael Fig, Michael G Schwern, Michael Parker, Michael Stevens,
Michael Witten, Mike Kelly, Moritz Lenz, Nicholas Clark, Nick Cleaton,
Nick Johnston, Nicolas Kaiser, Niko Tyni, Noirin Shirley, Nuno Carvalho,
Paul Evans, Paul Green, Paul Johnson, Paul Marquess, Peter J. Holzer,
Peter John Acklam, Peter Martini, Philippe Bruhat (BooK), Piotr Fusik,
Rafael Garcia-Suarez, Rainer Tammer, Reini Urban, Renee Baecker, Ricardo
Signes, Richard Möhn, Richard Soderberg, Rob Hoelz, Robin Barker, Ruslan
Zakirov, Salvador Fandiño, Salvador Ortiz Garcia, Shlomi Fish, Sinan
Unur, Sisyphus, Slaven Rezic, Steffen Müller, Steve Hay, Steven
Schubiger, Steve Peters, Sullivan Beck, Tatsuhiko Miyagawa, Tim Bunce,
Todd Rinaldo, Tom Christiansen, Tom Hukins, Tony Cook, Tye McQueen,
Vadim Konovalov, Vernon Lyon, Vincent Pit, Walt Mankowski, Wolfram
Humann, Yves Orton, Zefram, and Zsbán Ambrus.

This list is woefully incomplete as it is automatically generated from
version control history. In particular, it doesn't include the names of
the (very much appreciated) contributors who reported issues in previous
releases that helped make Perl 5.14.0 better. For a more complete list
of all of Perl's historical contributors, please see the AUTHORS file
in the release tarball.

Many of the changes included in this version originated in the CPAN
modules included in Perl 5's core. We're grateful to the entire CPAN
community for their contributions.

  Best,
  Jesse Vincent



(Log in to post comments)

Perl 5.14.0 released

Posted May 14, 2011 23:36 UTC (Sat) by obi (guest, #5784) [Link]

Heh - and Debian is only just wrapping up the perl 5.12 transitioned - see http://release.debian.org/transitions/html/perl.html

Perl 5.14.0 released

Posted May 15, 2011 0:04 UTC (Sun) by lindahl (subscriber, #15266) [Link]

Sad to say, the enterprise distros are pretty behind the times on packaging perl. RHEL 6 shipped with perl 5.10.1. Fedora is reasonably caught up.

Perl 5.14.0 released

Posted May 15, 2011 1:33 UTC (Sun) by amacater (subscriber, #790) [Link]

Debian is only just catching up on Perl 5.12 - but that's on twelve or so
architectures and across 25,000 packages, any of which may include or reference Perl. That's an order of magnitude larger than anyone else ...

Perl 5.14.0 released

Posted May 16, 2011 3:32 UTC (Mon) by obi (guest, #5784) [Link]

Oh, I didn't mean to imply I was faulting Debian for this. It's more a matter of somewhat bad timing - they couldn't do it earlier with the Squeeze freeze, and since the release there's been quite a few transitions.

I was just wondering whether they could have instead jumped from 5.10 to 5.14 in one go (maybe ill-advised), or whether they could move quickly to 5.14 while everyone is still going through the motions of the 5.12 transition (probably makes little difference in amount of work).

Perl 5.14.0 released

Posted May 16, 2011 5:26 UTC (Mon) by mbiebl (subscriber, #41876) [Link]

Perl 5.14.0 released

Posted May 15, 2011 2:19 UTC (Sun) by pabs (subscriber, #43278) [Link]

Yeah, we had quite a lot of other transitions waiting after the squeeze freeze ended and the release team likes to prevent them from getting entangled.

Perl 5.14.0 released

Posted May 15, 2011 4:16 UTC (Sun) by mrons (subscriber, #1751) [Link]

I think one of the most notable features, not mentioned in notable changes above, is the "Array and hash container functions accept references".

So now, instead of things like:

push @$arrayref, @stuff
keys %$hashref

You can write:

push $arrayref, @stuff
keys $hashref

This will help clean up a lot of the perl "line noise". I love perl sigils but the dereferencing required to use the common built-in functions just pushed sigils a bit too far.

Perl 5.14.0 released

Posted May 15, 2011 5:54 UTC (Sun) by jzbiciak (✭ supporter ✭, #5246) [Link]

Yes, I saw that, and I quite welcome the change!

Unfortunately, most of the perl I write is at work, where they stubbornly stick to perl 5.8 in too many places, which means I best not get in the habit of using it for a few years.

*grumble* *grumble*

Why yes, that IS a RHEL WS 4 machine under my desk. How did you know?

Perl 5.14.0 released

Posted May 15, 2011 18:51 UTC (Sun) by JoeBuck (subscriber, #2330) [Link]

Yes, RHEL 4 is basically the cross-vendor standard for the EDA (electronic design automation) industry, so a lot of us are stuck with it.

Perl 5.14.0 released

Posted May 15, 2011 20:47 UTC (Sun) by ejr (subscriber, #51652) [Link]

And a good number of parallel clusters outside EDA. ugh.

Perl 5.14.0 released

Posted May 15, 2011 21:06 UTC (Sun) by jzbiciak (✭ supporter ✭, #5246) [Link]

Yeah, that's the environment I'm in at work.

Fortunately, for the vast majority of scripting I have to do, I've been able to get away with having a "local" 5.12.1 build for our team and load up all the CPAN modules I want or need. Unfortunately, I can only use that environment within our site, so if I have to do something that runs cross-site, I likely have to fall back to the corporate standard 5.8 and the set of modules they've chosen to install.

Perl 5.14.0 released

Posted May 26, 2011 8:36 UTC (Thu) by Hausvib6 (guest, #70606) [Link]

I just got a feeling that in 2036, I'll find a VM deep inside a system in a corner of a massive data center still running Perl 5.8 and people running around in circle trying to migrate from 32bit time_t. Woohooo

Perl 5.14.0 released

Posted May 26, 2011 13:44 UTC (Thu) by jzbiciak (✭ supporter ✭, #5246) [Link]

Are you suggesting Perl 5.8 is the COBOL of our era? ;-)

Perl 5.14.0 released

Posted May 15, 2011 18:13 UTC (Sun) by alvieboy (subscriber, #51617) [Link]

I'm not sure I fully agree. I admit I have not follow development lately, but what happens if you do:

my $href = { 'a' => 'b' };
push $href, 'c';

and

my $aref = ['a','b'];
say join (' ',keys $aref);

Does it die just like it did, with classical dereferencing ? With same kind of 'exceptions' ?

I may be a bit picky, but I always like explicit dereferencing (meaning: everyone knows what to expect, no margin for doubts).

Alvie

Perl 5.14.0 released

Posted May 15, 2011 21:05 UTC (Sun) by rpkelly (guest, #74224) [Link]

With the magic of perlbrew, you can install 5.14.0 locally without interfering with your system perl! That said, your first example dies with 'Not an ARRAY reference'. Your second example will print '0 1'.

Perl 5.14.0 released

Posted May 15, 2011 21:17 UTC (Sun) by jzbiciak (✭ supporter ✭, #5246) [Link]

Interesting... I didn't realize 'keys' was now valid on an array. I was a little confused by the output you gave for the second example until I realized what was happening. This appears to be a 5.12 feature I missed. I tried the following on perl 5.10 and 5.12:

my @array = qw(fred barney);
print join(" ", keys @array), "\n";

Perl 5.10 gives what I would expect:

Type of arg 1 to keys must be hash (not private array) at keys.pl line 5, near "@array)"
Execution of keys.pl aborted due to compilation errors.

In contrast, Perl 5.12 gives:

0 1

Yet another feature I didn't know about, but now I can't wait to use, but have to wait to use until 5.8 truly dies at work.

It certainly ought to make it easier to traverse arbitrary nested structures, since you wouldn't have to know whether a given element contains an array or hash reference. For example, you could start developing your structures with arrays, and switch to hashes later if you discover you benefit from sparse or non-numeric keys, and not have to change a lot of code.

Perl 5.14.0 released

Posted May 15, 2011 5:07 UTC (Sun) by b7j0c (subscriber, #27559) [Link]

nice...unicode improvements, nondestructive regex replacement syntax, sigil cleanup for ref types...all that its missing is a download link! everything on perl.org still seems to point at 5.12

also nice to see the end-of-life on 5.10...shame is probably the only way to move some of the distros forward

Perl 5.14.0 released

Posted May 15, 2011 13:09 UTC (Sun) by rafl (subscriber, #52558) [Link]

The download link is right there in the announcement: http://search.cpan.org/dist/perl-5.14.0/

Perl 5.14.0 released

Posted May 20, 2011 23:53 UTC (Fri) by jschrod (subscriber, #1646) [Link]

You joke, surely? Most of our customers are still on 5.8, 5.10 would be real innovation for them, end-of-life or not.
( :-) :-) for the sarcasm-impaired.)

Copyright © 2011, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds