Feature Proposal: Move to 5.8.8 for various reasons

Motivation

  • Complete lack of testing - in 1.1, we have docco saying we test with 5.8, and 5.6 'might work'
    • Sven's nightly tests run on 5.10 :/
  • Unicode
    • "use utf8" has weird semantics < 5.8.8
  • Security
    • Some data used as hash keys in perls < 5.8.1 cause perl to use excessive CPU
    • Some data used with sort() in perls < 5.8.0 cause perl to use excessive CPU
  • Sven's foswiki 2.0 store refactor intends to use hash locking to make it possible to safely cache loaded topics across sessions.

Description and Documentation

  • Add "use 5.8.8" to Foswiki.pm DONE
  • (and configure?).
  • Document requirement in installation notes.
    • Digest::MD5 and Digest::SHA, Timer::HiRes dependencies are changed
    • point out cxxxpan for people that need to work out how to get old perls limping along.

Impact

WhatDoesItAffect? : %WHATDOESITAFFECT%

Implementation

-- Contributors: CrawfordCurrie , SvenDowideit - 11 Nov 2011

Discussion

I presume the main issue will be if active users run distributions that still use / require

to make it simpler - Perl release history -

  • 5.6.2 Nov 2003
  • 5.8.8 was released in January 2006.
  • 5.10.0 in dec 2007
  • 5.10.1 in Aug 2009
  • 5.12 in May 2010
  • 5.14.0 was in May 2011
  • 5.14.1
  • 5.16.0 May 2012

-- SvenDowideit - 11 Nov 2011

It'll be interesting to see how well 5.8.8 does. I've been fighting double encoding issues in 5.10 that go away by using 5.12 as it is, but I guess that's more likely a module version problem.

-- PaulHarvey - 11 Nov 2011

I'm pretty sure all the major distros come with at least 5.8.8, but can't find a link to back me up.

-- AndrewJones - 11 Nov 2011

It was discovered that Solaris 10 still ships with 5.8.4. 1.1.5 will be security focused, targeted to Q1 2012. Bumping this to 1.2, which will hopefully branch shortly.

I've installed 5.8.4 and 5.8.8 using perlbrew. The FoswikiSuite? , bin/configure and a couple of spot checks with view seem to work fine. When we announce 1.1.5 and the branching for 1.2, we can announce the decision to require 5.8.8.

-- GeorgeClark - 17 Feb 2012

put it into Foswiki.pm for now.

-- SvenDowideit - 19 May 2012

from perl porters:

On Sat, May 19, 2012 at 04:25:23PM -0700, David Oswald wrote:

> The module Digest::MD5 was added to the Perl core distribution in Perl
> 5.8.0.  That means that users committed to pre-5.8.0 versions of Perl
> will have to install Digest::MD5 if they need it.  However, as of
> version 2.51, Digest::MD5 is no longer backward compatible with Perls
> earlier than 5.8.1.  This isn't such a big deal for a user of 5.8.0,
> since it came with an older version of Digest::MD5.  But users of Perl
> versions earlier than 5.8.0 are forced to explicitly install an old
> Digest::MD5 version (2.40 or earlier).
>
> The various CPAN installers (cpan, cpanm, cpanp) default to pulling in
> the most recent version of any module, and in the case of Digest::MD5,
> this means that the default behavior is to pull in a version that
> won't build on Perl's earlier than 5.8.1.
> In the specific case of my user, the user was trying to install
> Math::Prime::FastSieve, which has an Inline::CPP dependency, which has
> an Inline dependency, which has a Digest::MD5 dependency.  The user
> was trying to install on Perl 5.6.1.
>
> I guess my question is "What has to happen next?"  
This is a general problem, to which the general solution is probably the
excellent cpxxxan: http://cpxxxan.barnyard.co.uk/

In this particular case, I suppose http://cp5.6.2an.barnyard.co.uk/ is
the instance you would need.  And looking in the index at
http://cp5.6.2an.barnyard.co.uk/modules/02packages.details.txt you can
see that the version of Digest::MD5 is indeed 2.40.

-- SvenDowideit - 20 May 2012

http://blog.timbunce.org/2011/07/21/upgrading-from-perl-5-8/ is useful

mind you, I do wonder if we cna goto 5.10 or even 5.12.

-- SvenDowideit - 21 May 2012

For use utf8; IMO is not a reason to switch, because use utf8; is only for one purpose: telling perl than in the source code are utf8 characters. Because in FW nowhere exists things like $str =~ /áéí/ or $váríáble = 10 the use utf8 is pointless. It is not needed for processing utf8 datafiles; For the conversions, like: utf8::encode($string) is better to use Encode anyway. see: http://perldoc.perl.org/utf8.html

But, if FW really want go to unicode, soon will need 5.14 (or at least 5.12 with great care). For now internally FW uses horrible octets - so :(. According to http://www.perl.com/pub/2011/06/new-features-of-perl-514-unicode-strings.html the only correct unicode implementation is in 5.14.

All you argue than here is some OSes what default ship 5.8. Yes, this is true for Solaris and AIX. Sure you know much better than me, how much FW installations uses those OSes. But FreeBSD has default 5.12, OS X (Lion) 5.12, Linux (ofc 5.12 and 5.14), Windows (can install 5.14). And for Solaris and AIX here is a possibility build 5.12 using perlbrew.

So, hurry to 5.12.

-- JozefMojzis - 21 May 2012

See also Item11869 for another reason to get to a more recent perl. Anything older than 5.12.4 has trouble with older dates.

-- GeorgeClark - 22 May 2012
Topic revision: 22 May 2012, GeorgeClark
 
The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. see CopyrightStatement. Creative Commons LicenseGet Foswiki at sourceforge.net. Fast, secure and Free Open Source software downloads