threads / discuss / 18969

Oldest supported Perl version

Subject: Oldest supported Perl version

## tl;dr

18 messages between Apr 20, 2009 and Apr 21, 2009.

replies: 17people: 6as markdown or json

Jay Soffian· Apr 20, 2009, 14:59 UTC · lore
On Sun, Apr 19, 2009 at 9:58 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 9 quoted lines
> Sorry, I should have checked myself.  defined-or "//" is 5.8.1 or later.
>
> Now the real question was if we still support anything older, and if so
> what is the bottom version?
>
> I certainly can go with "5.8.1 or later", but I vaguely recall during the
> gitweb discussion we said anything without the utf-8 support is unusable
> for gitweb, but I think we also said that the rest of the git codebase
> should support running with something older (5.6.1, perhaps).
15 minutes of research:
* 2006-06-25 Junio C Hamano: "Tentatively let's say our cut-off point is
  somewhere around 5.6." --
  http://article.gmane.org/gmane.comp.version-control.git/22607
* 2008-05-30 Lea Wiemann: "Gitweb relies on Unicode support (e.g. "use
  Encode") and will continue to be compatible with 5.8 and 5.10 only" --
  http://article.gmane.org/gmane.comp.version-control.git/83339
* 2008-08-13 Lea Wiemann: "This makes Git.pm dependent on Perl 5.6.1. Some
  tests (like t3701-add-interactive.sh) seem to work with pretty much any Perl
  version out there, and requiring File::Spec changes this" --
  http://article.gmane.org/gmane.comp.version-control.git/92260
* 2008-08-15 Marcus Griep: "Git.pm: Make File::Spec and File::Temp requirement
  lazy" -- c14c8ce
* 2008-08-30 Junio C Hamano: "I agree we should say we rely on 5.6 or newer."
  -- http://article.gmane.org/gmane.comp.version-control.git/94399
* 2008-09-01 Junio C Hamano: "I personally think it is probably Ok to declare
  that we do depend on 5.8" --
  http://article.gmane.org/gmane.comp.version-control.git/94523

So here's my take-away. For the *.perl scripts and gitweb, it's 5.8.0. For the test suite and Git.pm, all Perl versions are theoretically supported, but for practical purposes, it may be 5.6.0.

Whatever is decided this time, perhaps it should be burned into the tops of the *.perl scripts (i.e. "require 5.008;"). It should also be added to CodingGuidelines. You know, so this conversation doesn't keep recurring. :-)

j.
Michael Witten· Apr 20, 2009, 15:40 UTC · re: Jay Soffian · lore

Re: [PATCH RFC3.5 04/12] send-email: Verification for --smtp-server and --smpt-server-port

On Mon, Apr 20, 2009 at 09:59, Jay Soffian <jaysoffian@gmail.com> wrote:
> On Sun, Apr 19, 2009 at 9:58 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> Sorry, I should have checked myself.  defined-or "//" is 5.8.1 or later.
>From what I've read:
	http://perldoc.perl.org/perl581delta.html#Future-Directions

The defined-OR only exists for 5.8.1 in patch form, and it's only directly supported in 5.10.0:

	http://perldoc.perl.org/perldelta.html#Defined-or-operator
:-(
Michael Witten· Apr 20, 2009, 15:43 UTC · re: Jay Soffian · lore
====> Sorry for the repeat; I think I'll go install an MUA now.
On Mon, Apr 20, 2009 at 09:59, Jay Soffian <jaysoffian@gmail.com> wrote:
> On Sun, Apr 19, 2009 at 9:58 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> Sorry, I should have checked myself.  defined-or "//" is 5.8.1 or later.
>From what I've read:
	http://perldoc.perl.org/perl581delta.html#Future-Directions

The defined-OR only exists for 5.8.1 in patch form, and it's only directly supported in 5.10.0:

	http://perldoc.perl.org/perldelta.html#Defined-or-operator
:-(
Jay Soffian· Apr 20, 2009, 15:51 UTC · re: Michael Witten · lore

Re: Oldest supported Perl version

On Mon, Apr 20, 2009 at 11:43 AM, Michael Witten <mfwitten@gmail.com> wrote:
Show 16 quoted lines
> ====> Sorry for the repeat; I think I'll go install an MUA now.
>
> On Mon, Apr 20, 2009 at 09:59, Jay Soffian <jaysoffian@gmail.com> wrote:
>> On Sun, Apr 19, 2009 at 9:58 PM, Junio C Hamano <gitster@pobox.com> wrote:
>>> Sorry, I should have checked myself.  defined-or "//" is 5.8.1 or later.
>
> From what I've read:
>
>        http://perldoc.perl.org/perl581delta.html#Future-Directions
>
> The defined-OR only exists for 5.8.1 in patch form, and it's only directly
> supported in 5.10.0:
>
>        http://perldoc.perl.org/perldelta.html#Defined-or-operator
>
> :-(

I started this new thread to address Junio's question about the oldest supported Perl version, so that tidbit isn't really relevant and I should've trimmed it from the new thread. Nonetheless, thank you for the correction again again, and enjoy your new MUA. :-)

j.
H.Merijn Brand· Apr 20, 2009, 16:18 UTC · re: Jay Soffian · lore

Re: Oldest supported Perl version

On Mon, 20 Apr 2009 10:59:00 -0400, Jay Soffian <jaysoffian@gmail.com> wrote:

> On Sun, Apr 19, 2009 at 9:58 PM, Junio C Hamano <gitster@pobox.com> wrote:
> > Sorry, I should have checked myself.  defined-or "//" is 5.8.1 or later.

Being the maintainer of the defined-or patch for perl 5.8, I can short-circuit this

* defined-or (//) is officially available from perl-5.10.0 and up
  you can be *sure* to have it there. the 'err' keyword that was the
  low-precedence version for // is gone.
* defined-or is available in any version of perl 5.8.x is the binary
  was built with the appropriate patch, which is available on my CPAN
  directory:
  ftp://download.xs4all.nl/pub/mirror/CPAN/authors/id/H/HM/HMBRAND/
  These patches still include the 'err' keyword
* defined-or is definitely NOT available in 5.6.x

All my perl-5.8.x builds include this patch, so all people that use my perl builds on HP-UX, will have it available.

One major distribution also included it in their perl builds, but I do not remember which it is.

My personal preference for the lowest usable and reliable perl version is 5.8.5 (FWIW)

Show 41 quoted lines
> > Now the real question was if we still support anything older, and if so
> > what is the bottom version?
> >
> > I certainly can go with "5.8.1 or later", but I vaguely recall during the
> > gitweb discussion we said anything without the utf-8 support is unusable
> > for gitweb, but I think we also said that the rest of the git codebase
> > should support running with something older (5.6.1, perhaps).
> 
> 15 minutes of research:
> 
> * 2006-06-25 Junio C Hamano: "Tentatively let's say our cut-off point is
>   somewhere around 5.6." --
>   http://article.gmane.org/gmane.comp.version-control.git/22607
> 
> * 2008-05-30 Lea Wiemann: "Gitweb relies on Unicode support (e.g. "use
>   Encode") and will continue to be compatible with 5.8 and 5.10 only" --
>   http://article.gmane.org/gmane.comp.version-control.git/83339
> 
> * 2008-08-13 Lea Wiemann: "This makes Git.pm dependent on Perl 5.6.1. Some
>   tests (like t3701-add-interactive.sh) seem to work with pretty much any Perl
>   version out there, and requiring File::Spec changes this" --
>   http://article.gmane.org/gmane.comp.version-control.git/92260
> 
> * 2008-08-15 Marcus Griep: "Git.pm: Make File::Spec and File::Temp requirement
>   lazy" -- c14c8ce
> 
> * 2008-08-30 Junio C Hamano: "I agree we should say we rely on 5.6 or newer."
>   -- http://article.gmane.org/gmane.comp.version-control.git/94399
> 
> * 2008-09-01 Junio C Hamano: "I personally think it is probably Ok to declare
>   that we do depend on 5.8" --
>   http://article.gmane.org/gmane.comp.version-control.git/94523
> 
> 
> So here's my take-away. For the *.perl scripts and gitweb, it's 5.8.0. For the
> test suite and Git.pm, all Perl versions are theoretically supported, but for
> practical purposes, it may be 5.6.0.
> 
> Whatever is decided this time, perhaps it should be burned into the tops of
> the *.perl scripts (i.e. "require 5.008;"). It should also be added to
> CodingGuidelines. You know, so this conversation doesn't keep recurring. :-)
-- 
H.Merijn Brand  http://tux.nl      Perl Monger  http://amsterdam.pm.org/
using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, OpenSuSE 10.3, 11.0, and 11.1, AIX 5.2 and 5.3.
http://mirrors.develooper.com/hpux/           http://www.test-smoke.org/
http://qa.perl.org      http://www.goldmark.org/jeff/stupid-disclaimers/
Johannes Schindelin· Apr 20, 2009, 17:29 UTC · re: H.Merijn Brand · lore

Re: Oldest supported Perl version

Hi,
On Mon, 20 Apr 2009, H.Merijn Brand wrote:
Show 5 quoted lines
> * defined-or is available in any version of perl 5.8.x is the binary
>   was built with the appropriate patch, which is available on my CPAN
>   directory:
>   ftp://download.xs4all.nl/pub/mirror/CPAN/authors/id/H/HM/HMBRAND/
>   These patches still include the 'err' keyword

Do you realize how much _pain_ you cause here? I just do not have the _time_ to recompile Perl 5.8 for msysGit!

Bah, Dscho "who thinks that a lot of people would not introduce dependencies so lightly if they actually felt the pain they cause"

H.Merijn Brand· Apr 20, 2009, 21:07 UTC · re: Johannes Schindelin · lore

Re: Oldest supported Perl version

On Mon, 20 Apr 2009 19:29:03 +0200 (CEST), Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:

Show 11 quoted lines
> Hi,
> 
> On Mon, 20 Apr 2009, H.Merijn Brand wrote:
> 
> > * defined-or is available in any version of perl 5.8.x is the binary
> >   was built with the appropriate patch, which is available on my CPAN
> >   directory:
> >   ftp://download.xs4all.nl/pub/mirror/CPAN/authors/id/H/HM/HMBRAND/
> >   These patches still include the 'err' keyword
> 
> Do you realize how much _pain_ you cause here?

Me? Why? I just couldn't line *without* defined-or after I first encountered it, so I backported it to 5.8.x (after some patch from someone else) and people thought it would be a good idea to semi-officially allow it to be available for all.

Officially, defined-or is *NOT* available in perl-5.8.x. End of story.
*ALL* my production code expects defined-or to be available.
> I just do not have the _time_ to recompile Perl 5.8 for msysGit!
Sorry, I can't help you there
> Bah,
> Dscho "who thinks that a lot of people would not introduce dependencies 
> so lightly if they actually felt the pain they cause"
-- 
H.Merijn Brand  http://tux.nl      Perl Monger  http://amsterdam.pm.org/
using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, OpenSuSE 10.3, 11.0, and 11.1, AIX 5.2 and 5.3.
http://mirrors.develooper.com/hpux/           http://www.test-smoke.org/
http://qa.perl.org      http://www.goldmark.org/jeff/stupid-disclaimers/
Jakub Narebski· Apr 20, 2009, 17:59 UTC · re: Jay Soffian · lore

Re: Oldest supported Perl version

Jay Soffian <jaysoffian@gmail.com> writes:
Show 9 quoted lines
> On Sun, Apr 19, 2009 at 9:58 PM, Junio C Hamano <gitster@pobox.com> wrote:
> >
> > Now the real question was if we still support anything older, and if so
> > what is the bottom version?
> >
> > I certainly can go with "5.8.1 or later", but I vaguely recall during the
> > gitweb discussion we said anything without the utf-8 support is unusable
> > for gitweb, but I think we also said that the rest of the git codebase
> > should support running with something older (5.6.1, perhaps).
> So here's my take-away. For the *.perl scripts and gitweb, it's
> 5.8.0. For the test suite and Git.pm, all Perl versions are
> theoretically supported, but for practical purposes, it may be
> 5.6.0.

Errr... no. For gitweb we require good Unicode support, which means Perl 5.8.x (IIRC 5.8.1). For all other: commands (and helpers) written in Perl like git-svn, fragments of Perl in test suite (because of incompatibility and corner cases of shell scripting) - with possible exception of testing gitweb, and Git.pm (which some commands in Perl use) I think it is reasonable to expect 5.6.0 at least.

Show 5 quoted lines
> Whatever is decided this time, perhaps it should be burned into the tops of
> the *.perl scripts (i.e. "require 5.008;"). It should also be added to
> CodingGuidelines. You know, so this conversation doesn't keep recurring. :-)
> 
> j.
-- 
Jakub Narebski
Poland
ShadeHawk on #git
Jay Soffian· Apr 20, 2009, 18:27 UTC · re: Jakub Narebski · lore

Re: Oldest supported Perl version

On Mon, Apr 20, 2009 at 1:59 PM, Jakub Narebski <jnareb@gmail.com> wrote:
Show 12 quoted lines
> Jay Soffian <jaysoffian@gmail.com> writes:
>> So here's my take-away. For the *.perl scripts and gitweb, it's
>> 5.8.0. For the test suite and Git.pm, all Perl versions are
>> theoretically supported, but for practical purposes, it may be
>> 5.6.0.
>
> Errr... no.  For gitweb we require good Unicode support, which means
> Perl 5.8.x (IIRC 5.8.1).  For all other: commands (and helpers)
> written in Perl like git-svn, fragments of Perl in test suite (because
> of incompatibility and corner cases of shell scripting) - with possible
> exception of testing gitweb, and Git.pm (which some commands in Perl
> use) I think it is reasonable to expect 5.6.0 at least.

Um, isn't that basically exactly what I said? The only difference is you're clarifying gitweb to be 5.8.1 instead of 5.8.0. Fine. that's why this went to the git list.

j.
Jay Soffian· Apr 20, 2009, 18:32 UTC · re: Jay Soffian · lore

Re: Oldest supported Perl version

On Mon, Apr 20, 2009 at 2:27 PM, Jay Soffian <jaysoffian@gmail.com> wrote:
> Um, isn't that basically exactly what I said? The only difference is
> you're clarifying gitweb to be 5.8.1 instead of 5.8.0. Fine. that's
> why this went to the git list.

Oh sorry, I see we differ on the *.perl scripts. You're saying 5.6 for those. I was suggesting 5.8 for the *.perl scripts based on:

http://article.gmane.org/gmane.comp.version-control.git/94523
Anyway, I see that there are basically a few categories to decide on:
1) gitweb
2) the *.perl scripts
3) Git.pm
4) the parts of the test suite that use perl

I think there is consensus that (1) is 5.8.1 for unicode reasons. (3) and (4), for all practical purposes, are apparently 5.6.0. So that leaves (2), which is either 5.6.0 or 5.8.1 depending upon which gmane thread you consult.

j.
Michael Witten· Apr 20, 2009, 18:40 UTC · re: Jay Soffian · lore

Re: Oldest supported Perl version

On Mon, Apr 20, 2009 at 13:32, Jay Soffian <jaysoffian@gmail.com> wrote:
Show 11 quoted lines
> Anyway, I see that there are basically a few categories to decide on:
>
> 1) gitweb
> 2) the *.perl scripts
> 3) Git.pm
> 4) the parts of the test suite that use perl
>
> I think there is consensus that (1) is 5.8.1 for unicode reasons. (3)
> and (4), for all practical purposes, are apparently 5.6.0. So that
> leaves (2), which is either 5.6.0 or 5.8.1 depending upon which gmane
> thread you consult.
It looks like 5.6.0 was released a DECADE ago. Drop it.
My advice is to take the advice of Perl hacker H.Merijn Brand:
> My personal preference for the lowest usable and reliable perl version
is 5.8.5 (FWIW)
Michael Witten· Apr 20, 2009, 19:58 UTC · re: Johannes Schindelin · lore

Re: Oldest supported Perl version

On Mon, Apr 20, 2009 at 14:11, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:

Show 8 quoted lines
> Hi,
>
> On Mon, 20 Apr 2009, Michael Witten wrote:
>
>> It looks like 5.6.0 was released a DECADE ago. Drop it.
>
> What part of "causing others a lot of pain" did you not understand,
> exactly?
I'd say: Take your own advice.

It's very likely that requiring compatibility with a DECADE old perl is going to cause others a lot of pain.

At some point, backward compatibility is just stupid; it's meant for TRANSITION.
H.Merijn Brand· Apr 20, 2009, 21:10 UTC · re: Jakub Narebski · lore

Re: Oldest supported Perl version

On Mon, 20 Apr 2009 10:59:14 -0700 (PDT), Jakub Narebski <jnareb@gmail.com> wrote:

Show 19 quoted lines
> Jay Soffian <jaysoffian@gmail.com> writes:
> 
> > On Sun, Apr 19, 2009 at 9:58 PM, Junio C Hamano <gitster@pobox.com> wrote:
> > >
> > > Now the real question was if we still support anything older, and if so
> > > what is the bottom version?
> > >
> > > I certainly can go with "5.8.1 or later", but I vaguely recall during the
> > > gitweb discussion we said anything without the utf-8 support is unusable
> > > for gitweb, but I think we also said that the rest of the git codebase
> > > should support running with something older (5.6.1, perhaps).
> 
> > So here's my take-away. For the *.perl scripts and gitweb, it's
> > 5.8.0. For the test suite and Git.pm, all Perl versions are
> > theoretically supported, but for practical purposes, it may be
> > 5.6.0.
> 
> Errr... no.  For gitweb we require good Unicode support, which means
> Perl 5.8.x (IIRC 5.8.1).  For all other: commands (and helpers)

Unicode? 5.8.4 or up. Most desirable 5.8.5 5.8.1 is the worst distribution ever.

ask purl on irc :
 <Tux> purl, perl-5.8.1?
<purl> i guess perl-5.8.1 is made from blood, sweat, tears, coffee and single malt
> written in Perl like git-svn, fragments of Perl in test suite (because
> of incompatibility and corner cases of shell scripting) - with possible
> exception of testing gitweb, and Git.pm (which some commands in Perl
> use) I think it is reasonable to expect 5.6.0 at least.
5.6.1 or 5.8.5
> > Whatever is decided this time, perhaps it should be burned into the tops of
> > the *.perl scripts (i.e. "require 5.008;"). It should also be added to
> > CodingGuidelines. You know, so this conversation doesn't keep recurring. :-)
-- 
H.Merijn Brand  http://tux.nl      Perl Monger  http://amsterdam.pm.org/
using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, OpenSuSE 10.3, 11.0, and 11.1, AIX 5.2 and 5.3.
http://mirrors.develooper.com/hpux/           http://www.test-smoke.org/
http://qa.perl.org      http://www.goldmark.org/jeff/stupid-disclaimers/
Michael Witten· Apr 20, 2009, 22:39 UTC · re: Michael Witten · lore

Re: Oldest supported Perl version

On Mon, Apr 20, 2009 at 17:38, Michael Witten <mfwitten@gmail.com> wrote:
> On Mon, Apr 20, 2009 at 16:10, H.Merijn Brand <h.m.brand@xs4all.nl> wrote:
>> 5.8.1 is the worst distribution ever.
>
> But then you endorse 5.6.1?
That is:
But then you endorse 5.6.1 if 5.8.5 is not chosen.
H.Merijn Brand· Apr 20, 2009, 22:56 UTC · re: Michael Witten · lore

Re: Oldest supported Perl version

On Mon, 20 Apr 2009 17:39:34 -0500, Michael Witten <mfwitten@gmail.com> wrote:

Show 9 quoted lines
> On Mon, Apr 20, 2009 at 17:38, Michael Witten <mfwitten@gmail.com> wrote:
> > On Mon, Apr 20, 2009 at 16:10, H.Merijn Brand <h.m.brand@xs4all.nl> wrote:
> >> 5.8.1 is the worst distribution ever.
> >
> > But then you endorse 5.6.1?
> 
> That is:
> 
> But then you endorse 5.6.1 if 5.8.5 is not chosen.
5.6.1 and 5.6.2 are fine for non-Unicode environments.

When using Unicode (utf-8) and/or 64bit, I'd strongly advise not to go below 5.8.5

-- 
H.Merijn Brand  http://tux.nl      Perl Monger  http://amsterdam.pm.org/
using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, OpenSuSE 10.3, 11.0, and 11.1, AIX 5.2 and 5.3.
http://mirrors.develooper.com/hpux/           http://www.test-smoke.org/
http://qa.perl.org      http://www.goldmark.org/jeff/stupid-disclaimers/
Jeff King· Apr 21, 2009, 03:08 UTC · re: Jay Soffian · lore

Re: Oldest supported Perl version

On Mon, Apr 20, 2009 at 10:59:00AM -0400, Jay Soffian wrote:
> Whatever is decided this time, perhaps it should be burned into the tops of
> the *.perl scripts (i.e. "require 5.008;"). It should also be added to
> CodingGuidelines. You know, so this conversation doesn't keep recurring. :-)

I have no real comment on _which_ version, but yes, I think a 'require' for the right version would be very helpful. The error messages you get when running on a too-old version can be confusing, at best. Saying "you need a newer perl" would be much nicer.

-Peff

← back to recent threads