{"thread":{"id":"47491","subject":"[RFC/PATCH] perl: bump the required Perl version to 5.10.0 from 5.8.0","startedAt":"2017-12-23T17:44:22Z","lastAt":"2017-12-27T19:21:09Z","messageCount":12,"participants":["Ævar Arnfjörð Bjarmason","Randall S. Becker","brian m. carlson","Jeff King","Eric Wong","Junio C Hamano","Jonathan Nieder"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"335228","messageId":"20171223174400.26668-1-avarab@gmail.com","threadId":"47491","inReplyTo":null,"subject":"[RFC/PATCH] perl: bump the required Perl version to 5.10.0 from 5.8.0","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2017-12-23T17:44:00Z","receivedAt":"2017-12-23T17:44:22Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"In late 2010 I bumped our perl version dependency from 5.6.* to\n5.8.0[1]. Git had been failing for a while on <5.8, and it was\nsuspected that nobody cared enough to keep using it, which turned out\nto be true.\n\nFollow that up with bumping the dependency to 5.10.0. The 5.8.0\nrelease was released in 2002, and the 5.10.0 release just turned 10\nyears old[2].\n\nThis is similar to Jeff King's jk/drop-ancient-curl series in that\nwe're dropping perl releases that are rarely tested anymore, however\nunlike those patches git still works on e.g. 5.8.8 (I couldn't build\nanything older).\n\nThe reason to do this is to be able to use features released with perl\nin the last decade, 5.10 was a major feature release including things\nlike new regex features, state variables, the defined-or operator\netc.[3]\n\nI expect this to be more controversial as since the 5.8 release stayed\nalong for longer in various distributions, e.g. it's the version\nshipped with RHEL 5, replaced by 5.10 in RHEL 6 released in late 2010,\nsimilarly the first Debian release to include 5.10 was 5.0 (Lenny)\nreleased in early 2009. The release history for other distributions\ncan be seen on CPAN's \"Perl Binaries\" page[3].\n\n1. d48b284183 (\"perl: bump the required Perl version to 5.8 from\n   5.6.[21]\", 2010-09-24)\n\n2. \"perldoc perlhist\" (https://metacpan.org/pod/distribution/perl/pod/perlhist.pod)\n\n3. \"perldoc perl5100delta\" (https://metacpan.org/pod/distribution/perl/pod/perl5100delta.pod)\n\n3. http://www.cpan.org/ports/binaries.html\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n\nRFC because this'll need to be adjusted for my cooking Makefile.PL\nchanges, and because the patch is obviously \"correct\", so the question\nis \"do we want to do this\". Discuss.\n\n contrib/diff-highlight/DiffHighlight.pm | 2 +-\n contrib/examples/git-difftool.perl      | 2 +-\n contrib/mw-to-git/Git/Mediawiki.pm      | 2 +-\n git-add--interactive.perl               | 2 +-\n git-archimport.perl                     | 2 +-\n git-cvsexportcommit.perl                | 2 +-\n git-cvsimport.perl                      | 2 +-\n git-cvsserver.perl                      | 2 +-\n git-send-email.perl                     | 2 +-\n git-svn.perl                            | 2 +-\n gitweb/gitweb.perl                      | 2 +-\n perl/Git.pm                             | 2 +-\n perl/Git/I18N.pm                        | 2 +-\n perl/Git/Packet.pm                      | 2 +-\n t/t0021/rot13-filter.pl                 | 2 +-\n t/t0202/test.pl                         | 2 +-\n t/t9000/test.pl                         | 2 +-\n t/t9700/test.pl                         | 2 +-\n t/test-terminal.perl                    | 2 +-\n 19 files changed, 19 insertions(+), 19 deletions(-)\n\ndiff --git a/contrib/diff-highlight/DiffHighlight.pm b/contrib/diff-highlight/DiffHighlight.pm\nindex 663992e530..21fe5d424f 100644\n--- a/contrib/diff-highlight/DiffHighlight.pm\n+++ b/contrib/diff-highlight/DiffHighlight.pm\n@@ -1,6 +1,6 @@\n package DiffHighlight;\n \n-use 5.008;\n+use v5.10.0;\n use warnings FATAL => 'all';\n use strict;\n \ndiff --git a/contrib/examples/git-difftool.perl b/contrib/examples/git-difftool.perl\nindex df59bdfe97..13c44846a8 100755\n--- a/contrib/examples/git-difftool.perl\n+++ b/contrib/examples/git-difftool.perl\n@@ -10,7 +10,7 @@\n #\n # Any arguments that are unknown to this script are forwarded to 'git diff'.\n \n-use 5.008;\n+use v5.10.0;\n use strict;\n use warnings;\n use Error qw(:try);\ndiff --git a/contrib/mw-to-git/Git/Mediawiki.pm b/contrib/mw-to-git/Git/Mediawiki.pm\nindex 917d9e2d32..5b620b8425 100644\n--- a/contrib/mw-to-git/Git/Mediawiki.pm\n+++ b/contrib/mw-to-git/Git/Mediawiki.pm\n@@ -1,6 +1,6 @@\n package Git::Mediawiki;\n \n-use 5.008;\n+use v5.10.0;\n use strict;\n use POSIX;\n use Git;\ndiff --git a/git-add--interactive.perl b/git-add--interactive.perl\nindex 28b325d754..b59c9eaf30 100755\n--- a/git-add--interactive.perl\n+++ b/git-add--interactive.perl\n@@ -1,6 +1,6 @@\n #!/usr/bin/perl\n \n-use 5.008;\n+use v5.10.0;\n use strict;\n use warnings;\n use Git qw(unquote_path);\ndiff --git a/git-archimport.perl b/git-archimport.perl\nindex b7c173c345..7d13f7ef16 100755\n--- a/git-archimport.perl\n+++ b/git-archimport.perl\n@@ -54,7 +54,7 @@ and can contain multiple, unrelated branches.\n \n =cut\n \n-use 5.008;\n+use v5.10.0;\n use strict;\n use warnings;\n use Getopt::Std;\ndiff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl\nindex d13f02da95..c50d981208 100755\n--- a/git-cvsexportcommit.perl\n+++ b/git-cvsexportcommit.perl\n@@ -1,6 +1,6 @@\n #!/usr/bin/perl\n \n-use 5.008;\n+use v5.10.0;\n use strict;\n use warnings;\n use Getopt::Std;\ndiff --git a/git-cvsimport.perl b/git-cvsimport.perl\nindex 36929921ea..7d4dd07d35 100755\n--- a/git-cvsimport.perl\n+++ b/git-cvsimport.perl\n@@ -13,7 +13,7 @@\n # The head revision is on branch \"origin\" by default.\n # You can change that with the '-o' option.\n \n-use 5.008;\n+use v5.10.0;\n use strict;\n use warnings;\n use Getopt::Long;\ndiff --git a/git-cvsserver.perl b/git-cvsserver.perl\nindex ae1044273d..ddb423dbc2 100755\n--- a/git-cvsserver.perl\n+++ b/git-cvsserver.perl\n@@ -15,7 +15,7 @@\n ####\n ####\n \n-use 5.008;\n+use v5.10.0;\n use strict;\n use warnings;\n use bytes;\ndiff --git a/git-send-email.perl b/git-send-email.perl\nindex edcc6d3469..3f162b6bae 100755\n--- a/git-send-email.perl\n+++ b/git-send-email.perl\n@@ -16,7 +16,7 @@\n #    and second line is the subject of the message.\n #\n \n-use 5.008;\n+use v5.10.0;\n use strict;\n use warnings;\n use POSIX qw/strftime/;\ndiff --git a/git-svn.perl b/git-svn.perl\nindex d2404184ba..c50ceab533 100755\n--- a/git-svn.perl\n+++ b/git-svn.perl\n@@ -1,7 +1,7 @@\n #!/usr/bin/perl\n # Copyright (C) 2006, Eric Wong <normalperson@yhbt.net>\n # License: GPL v2 or later\n-use 5.008;\n+use v5.10.0;\n use warnings;\n use strict;\n use vars qw/\t$AUTHOR $VERSION\ndiff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl\nindex 2417057f2b..25178a31f7 100755\n--- a/gitweb/gitweb.perl\n+++ b/gitweb/gitweb.perl\n@@ -7,7 +7,7 @@\n #\n # This program is licensed under the GPLv2\n \n-use 5.008;\n+use v5.10.0;\n use strict;\n use warnings;\n # handle ACL in file access tests\ndiff --git a/perl/Git.pm b/perl/Git.pm\nindex ffa09ace92..768653f2a6 100644\n--- a/perl/Git.pm\n+++ b/perl/Git.pm\n@@ -7,7 +7,7 @@ Git - Perl interface to the Git version control system\n \n package Git;\n \n-use 5.008;\n+use v5.10.0;\n use strict;\n \n \ndiff --git a/perl/Git/I18N.pm b/perl/Git/I18N.pm\nindex 836a5c2382..1d4dce687f 100644\n--- a/perl/Git/I18N.pm\n+++ b/perl/Git/I18N.pm\n@@ -1,5 +1,5 @@\n package Git::I18N;\n-use 5.008;\n+use v5.10.0;\n use strict;\n use warnings;\n BEGIN {\ndiff --git a/perl/Git/Packet.pm b/perl/Git/Packet.pm\nindex b75738bed4..4a1491a1dd 100644\n--- a/perl/Git/Packet.pm\n+++ b/perl/Git/Packet.pm\n@@ -1,5 +1,5 @@\n package Git::Packet;\n-use 5.008;\n+use v5.10.0;\n use strict;\n use warnings;\n BEGIN {\ndiff --git a/t/t0021/rot13-filter.pl b/t/t0021/rot13-filter.pl\nindex f1678851de..be6177f564 100644\n--- a/t/t0021/rot13-filter.pl\n+++ b/t/t0021/rot13-filter.pl\n@@ -30,7 +30,7 @@\n #     to the \"list_available_blobs\" response.\n #\n \n-use 5.008;\n+use v5.10.0;\n use lib (split(/:/, $ENV{GITPERLLIB}));\n use strict;\n use warnings;\ndiff --git a/t/t0202/test.pl b/t/t0202/test.pl\nindex 2cbf7b9590..3c122ccec0 100755\n--- a/t/t0202/test.pl\n+++ b/t/t0202/test.pl\n@@ -1,5 +1,5 @@\n #!/usr/bin/perl\n-use 5.008;\n+use v5.10.0;\n use lib (split(/:/, $ENV{GITPERLLIB}));\n use strict;\n use warnings;\ndiff --git a/t/t9000/test.pl b/t/t9000/test.pl\nindex dfeaa9c655..1ac3566c1f 100755\n--- a/t/t9000/test.pl\n+++ b/t/t9000/test.pl\n@@ -1,7 +1,7 @@\n #!/usr/bin/perl\n use lib (split(/:/, $ENV{GITPERLLIB}));\n \n-use 5.008;\n+use v5.10.0;\n use warnings;\n use strict;\n \ndiff --git a/t/t9700/test.pl b/t/t9700/test.pl\nindex 34cd01366f..f1d46465b5 100755\n--- a/t/t9700/test.pl\n+++ b/t/t9700/test.pl\n@@ -1,7 +1,7 @@\n #!/usr/bin/perl\n use lib (split(/:/, $ENV{GITPERLLIB}));\n \n-use 5.008;\n+use v5.10.0;\n use warnings;\n use strict;\n \ndiff --git a/t/test-terminal.perl b/t/test-terminal.perl\nindex 46bf618479..fab093a957 100755\n--- a/t/test-terminal.perl\n+++ b/t/test-terminal.perl\n@@ -1,5 +1,5 @@\n #!/usr/bin/perl\n-use 5.008;\n+use v5.10.0;\n use strict;\n use warnings;\n use IO::Pty;\n-- \n2.15.1.424.g9478a66081\n\n"},{"id":"335230","messageId":"000601d37c17$68423da0$38c6b8e0$@nexbridge.com","threadId":"47491","inReplyTo":"20171223174400.26668-1-avarab@gmail.com","subject":"RE: [RFC/PATCH] perl: bump the required Perl version to 5.10.0 from 5.8.0","fromName":"Randall S. Becker","fromEmail":"rsbecker@nexbridge.com","sentAt":"2017-12-23T17:56:44Z","receivedAt":"2017-12-23T17:56:55Z","isPatch":true,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On December 23, 2017 12:44 PM,  Ævar Arnfjörð Bjarmason wrote:\n> \n> In late 2010 I bumped our perl version dependency from 5.6.* to 5.8.0[1]. Git\n> had been failing for a while on <5.8, and it was suspected that nobody cared\n> enough to keep using it, which turned out to be true.\n> \n> Follow that up with bumping the dependency to 5.10.0. The 5.8.0 release\n> was released in 2002, and the 5.10.0 release just turned 10 years old[2].\n\nThe git HPE NonStop NSE/NSX ports that I maintain has Perl 5.22 generally available, so no objections here. Ours is just a CPAN dependency concern as previously discussed. 😊\n\nCheers,\nRandall\n\n-- Brief whoami: NonStop&UNIX developer since approximately UNIX(421664400)/NonStop(211288444200000000)\n-- In my real life, I talk too much.\n\n\n\n"},{"id":"335246","messageId":"20171223231742.GF6217@genre.crustytoothpaste.net","threadId":"47491","inReplyTo":"20171223174400.26668-1-avarab@gmail.com","subject":"Re: [RFC/PATCH] perl: bump the required Perl version to 5.10.0 from 5.8.0","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2017-12-23T23:17:42Z","receivedAt":"2017-12-23T23:17:53Z","isPatch":true,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"On Sat, Dec 23, 2017 at 05:44:00PM +0000, Ævar Arnfjörð Bjarmason wrote:\n> The reason to do this is to be able to use features released with perl\n> in the last decade, 5.10 was a major feature release including things\n> like new regex features, state variables, the defined-or operator\n> etc.[3]\n> \n> I expect this to be more controversial as since the 5.8 release stayed\n> along for longer in various distributions, e.g. it's the version\n> shipped with RHEL 5, replaced by 5.10 in RHEL 6 released in late 2010,\n> similarly the first Debian release to include 5.10 was 5.0 (Lenny)\n> released in early 2009. The release history for other distributions\n> can be seen on CPAN's \"Perl Binaries\" page[3].\n\nThis is fine by me.  As far as I know, 5.10.1 is the oldest version of\nPerl still security-supported by a major Linux vendor.\n\nFeature-wise, the release I'd much rather see is 5.14, since it provides\nthe r modifier to s/// and tr/// and undef-transparent length, but that\nsimply won't be possible until RHEL 6 and CentOS 6 go EOL.  Upgrading to\n5.10 is better than nothing, and it does get us defined-or, which is one\nof the only 5.10 features I ever see used.\n\nI'm curious, though, is there some reason you went with the \"v5.10.0\"\nsyntax other than \"5.010\"?  I believe the latter provides a better error\nmessage on older Perls, although I agree the former is more readable.\n-- \nbrian m. carlson / brian with sandals: Houston, Texas, US\nhttps://www.crustytoothpaste.net/~bmc | My opinion only\nOpenPGP: https://keybase.io/bk2204\n"},{"id":"335254","messageId":"873740s5io.fsf@evledraar.gmail.com","threadId":"47491","inReplyTo":"20171223231742.GF6217@genre.crustytoothpaste.net","subject":"Re: [RFC/PATCH] perl: bump the required Perl version to 5.10.0 from 5.8.0","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2017-12-24T11:57:03Z","receivedAt":"2017-12-24T11:57:11Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Sat, Dec 23 2017, brian m. carlson jotted:\n\n> On Sat, Dec 23, 2017 at 05:44:00PM +0000, Ævar Arnfjörð Bjarmason wrote:\n>> The reason to do this is to be able to use features released with perl\n>> in the last decade, 5.10 was a major feature release including things\n>> like new regex features, state variables, the defined-or operator\n>> etc.[3]\n>>\n>> I expect this to be more controversial as since the 5.8 release stayed\n>> along for longer in various distributions, e.g. it's the version\n>> shipped with RHEL 5, replaced by 5.10 in RHEL 6 released in late 2010,\n>> similarly the first Debian release to include 5.10 was 5.0 (Lenny)\n>> released in early 2009. The release history for other distributions\n>> can be seen on CPAN's \"Perl Binaries\" page[3].\n>\n> This is fine by me.  As far as I know, 5.10.1 is the oldest version of\n> Perl still security-supported by a major Linux vendor.\n>\n> Feature-wise, the release I'd much rather see is 5.14, since it provides\n> the r modifier to s/// and tr/// and undef-transparent length, but that\n> simply won't be possible until RHEL 6 and CentOS 6 go EOL.  Upgrading to\n> 5.10 is better than nothing, and it does get us defined-or, which is one\n> of the only 5.10 features I ever see used.\n\nIndeed, but as you point out it's not going to happen for some time\ngiven the burden we can reasonably place on downstream packagers.\n\n> I'm curious, though, is there some reason you went with the \"v5.10.0\"\n> syntax other than \"5.010\"?  I believe the latter provides a better error\n> message on older Perls, although I agree the former is more readable.\n\nIt would only provide confusing errors on 5.6 and older, which as noted\nwe haven't supported at all since before 2010, so people are unlikely to\nbe running it.\n\nI'll note why I did that in a non-RFC commit message, FWIW this wording\nwas also confusing in perl's own documentation, which I fixed the other\nday: https://github.com/Perl/perl5/commit/f1546a83e7\n"},{"id":"335259","messageId":"20171224143831.GD23648@sigill.intra.peff.net","threadId":"47491","inReplyTo":"20171223174400.26668-1-avarab@gmail.com","subject":"Re: [RFC/PATCH] perl: bump the required Perl version to 5.10.0 from 5.8.0","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2017-12-24T14:38:32Z","receivedAt":"2017-12-24T14:38:38Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Sat, Dec 23, 2017 at 05:44:00PM +0000, Ævar Arnfjörð Bjarmason wrote:\n\n> This is similar to Jeff King's jk/drop-ancient-curl series in that\n> we're dropping perl releases that are rarely tested anymore, however\n> unlike those patches git still works on e.g. 5.8.8 (I couldn't build\n> anything older).\n\nHeh, I'm not sure if those are the best prior art to justify this, since\nI stopped posting them after getting complaints (though I'll admit I was\nconsidering re-posting them since AFAICT nobody has stepped up to fix\nthe breakage after many months).\n\nThis may be more like the recent C99 weather-balloon patches, in that\nwe're not using the new features yet, but want to see if anybody screams\nat this first change.\n\n> The reason to do this is to be able to use features released with perl\n> in the last decade, 5.10 was a major feature release including things\n> like new regex features, state variables, the defined-or operator\n> etc.[3]\n> \n> I expect this to be more controversial as since the 5.8 release stayed\n> along for longer in various distributions, e.g. it's the version\n> shipped with RHEL 5, replaced by 5.10 in RHEL 6 released in late 2010,\n> similarly the first Debian release to include 5.10 was 5.0 (Lenny)\n> released in early 2009. The release history for other distributions\n> can be seen on CPAN's \"Perl Binaries\" page[3].\n\nAs far as this actual perl change goes, I don't have a strong opinion. I\nagree it would be nice to eventually move forward, and your reasoning\nabout what constitutes \"old\" seems sane. But we also don't write much\nperl in this project these days, and I don't see a lack of modern perl\nfeatures causing a lot of headaches.\n\n-Peff\n"},{"id":"335262","messageId":"871sjkrtrm.fsf@evledraar.gmail.com","threadId":"47491","inReplyTo":"20171224143831.GD23648@sigill.intra.peff.net","subject":"Re: [RFC/PATCH] perl: bump the required Perl version to 5.10.0 from 5.8.0","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2017-12-24T16:10:53Z","receivedAt":"2017-12-24T16:11:03Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Sun, Dec 24 2017, Jeff King jotted:\n\n> On Sat, Dec 23, 2017 at 05:44:00PM +0000, Ævar Arnfjörð Bjarmason wrote:\n>\n>> This is similar to Jeff King's jk/drop-ancient-curl series in that\n>> we're dropping perl releases that are rarely tested anymore, however\n>> unlike those patches git still works on e.g. 5.8.8 (I couldn't build\n>> anything older).\n>\n> Heh, I'm not sure if those are the best prior art to justify this, since\n> I stopped posting them after getting complaints (though I'll admit I was\n> considering re-posting them since AFAICT nobody has stepped up to fix\n> the breakage after many months).\n\nLess of a justification, more of a \"this is going to be a similar sort\nof dumpster fire\" :)\n\n> This may be more like the recent C99 weather-balloon patches, in that\n> we're not using the new features yet, but want to see if anybody screams\n> at this first change.\n>\n>> The reason to do this is to be able to use features released with perl\n>> in the last decade, 5.10 was a major feature release including things\n>> like new regex features, state variables, the defined-or operator\n>> etc.[3]\n>>\n>> I expect this to be more controversial as since the 5.8 release stayed\n>> along for longer in various distributions, e.g. it's the version\n>> shipped with RHEL 5, replaced by 5.10 in RHEL 6 released in late 2010,\n>> similarly the first Debian release to include 5.10 was 5.0 (Lenny)\n>> released in early 2009. The release history for other distributions\n>> can be seen on CPAN's \"Perl Binaries\" page[3].\n>\n> As far as this actual perl change goes, I don't have a strong opinion. I\n> agree it would be nice to eventually move forward, and your reasoning\n> about what constitutes \"old\" seems sane. But we also don't write much\n> perl in this project these days, and I don't see a lack of modern perl\n> features causing a lot of headaches.\n\nYes, unlike with the curl patches it's not a big PITA to maintain\ncompatibility with 5.8, it would just be easier to write new code &\nmaintain old code and not have to be on guard about not using features\none takes for grantend, and maintain compatibility with 5.8 versions of\ncore modules.\n"},{"id":"335265","messageId":"20171224230839.f6r66u37wj4ai3sj@untitled","threadId":"47491","inReplyTo":"871sjkrtrm.fsf@evledraar.gmail.com","subject":"Re: [RFC/PATCH] perl: bump the required Perl version to 5.10.0 from 5.8.0","fromName":"Eric Wong","fromEmail":"e@80x24.org","sentAt":"2017-12-24T23:08:39Z","receivedAt":"2017-12-24T23:14:24Z","isPatch":true,"sender":{"key":"e@80x24.org","avatar":null},"body":"Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:\n> On Sun, Dec 24 2017, Jeff King jotted:\n> > As far as this actual perl change goes, I don't have a strong opinion. I\n> > agree it would be nice to eventually move forward, and your reasoning\n> > about what constitutes \"old\" seems sane. But we also don't write much\n> > perl in this project these days, and I don't see a lack of modern perl\n> > features causing a lot of headaches.\n\nAgreed.\n\n> Yes, unlike with the curl patches it's not a big PITA to maintain\n> compatibility with 5.8, it would just be easier to write new code &\n> maintain old code and not have to be on guard about not using features\n> one takes for grantend, and maintain compatibility with 5.8 versions of\n> core modules.\n\nAs one of the more frequent Perl users here (even outside of\ngit.git), I never considered using 5.10+ features at all until\nnow.  Maybe 5.8 compatibility is just too ingrained into me and\nmuch of the stuff I work on is old and ancient(*).\n\nThat said, reading perl5100delta does reveal features such as\ndefined-or and given/when that I might find useful; but I'm also\nnot going to replace existing code to use new features unless\nthere is a clear improvement.\n\nIf there's new code people are developing using 5.10; I would\nnot object at all.  Otherwise, I don't see compatibility with\n5.8 hurts more than it helps.\n\nMaybe we change our docs to say we welcome 5.10 features for new\ncode, but I'm against changing things for the sake of change.\n\n\n(*) Like this 32-bit laptop from 2005.  Only problem I have with\n    it is the noisy fan.\n"},{"id":"335266","messageId":"87y3lrr78q.fsf@evledraar.gmail.com","threadId":"47491","inReplyTo":"20171224230839.f6r66u37wj4ai3sj@untitled","subject":"Re: [RFC/PATCH] perl: bump the required Perl version to 5.10.0 from 5.8.0","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2017-12-25T00:17:25Z","receivedAt":"2017-12-25T00:17:36Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Sun, Dec 24 2017, Eric Wong jotted:\n\n[Removed Petr Baudis <pasky@suse.cz> from CC, his suse.cz E-Mail address\nis bouncing]\n\n> Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:\n>> On Sun, Dec 24 2017, Jeff King jotted:\n>> > As far as this actual perl change goes, I don't have a strong opinion. I\n>> > agree it would be nice to eventually move forward, and your reasoning\n>> > about what constitutes \"old\" seems sane. But we also don't write much\n>> > perl in this project these days, and I don't see a lack of modern perl\n>> > features causing a lot of headaches.\n>\n> Agreed.\n>\n>> Yes, unlike with the curl patches it's not a big PITA to maintain\n>> compatibility with 5.8, it would just be easier to write new code &\n>> maintain old code and not have to be on guard about not using features\n>> one takes for grantend, and maintain compatibility with 5.8 versions of\n>> core modules.\n>\n> As one of the more frequent Perl users here (even outside of\n> git.git), I never considered using 5.10+ features at all until\n> now.  Maybe 5.8 compatibility is just too ingrained into me and\n> much of the stuff I work on is old and ancient(*).\n>\n> That said, reading perl5100delta does reveal features such as\n> defined-or and given/when that I might find useful; but I'm also\n> not going to replace existing code to use new features unless\n> there is a clear improvement.\n>\n> If there's new code people are developing using 5.10; I would\n> not object at all.  Otherwise, I don't see compatibility with\n> 5.8 hurts more than it helps.\n\nAside from whatever we do here, I don't think this would be a good idea\n& would introduce a lot of confusion for packagers, e.g. requiring one\nversion of OpenSSL for hashing, but another one for \"imap-send\", or one\nversion of curl for \"push\", and another for \"imap-send\".\n\nI think for any given external dependency of git.git it makes sense to\njust pick a version, not say that this script requires perl so-and-so,\nthis one python so-and-so, or curl/openssl so-and-so etc.\n\n> Maybe we change our docs to say we welcome 5.10 features for new\n> code, but I'm against changing things for the sake of change.\n\nI should have mentioned this in the commit message, but for me it's\nmainly that whenever I patch the Git perl code there's no easy way to\ntest if it works on a currently supported release, 5.8.* doesn't even\nbuild anymore on a modern compiler without monkeypatching with\nDevel::PatchPerl (and then only some subreleases).\n\nI think it's reasonable for us, in general, to at some point pass the\nbuck in maintaining dependencies to people who want to still build on\nancient versions. And not just for perl, but e.g. curl too, which is\nsomething I commented on at some length in <874ltg2tvo.fsf@gmail.com>\n(https://public-inbox.org/git/874ltg2tvo.fsf@gmail.com/). I.e. if you\nneed to really build the latest git on RHEL 5 with all bells & whistles\nyou also build perl.\n\nIt's not just change for the sake of change, there's a high cognitive\noverhead in trying to write code against the last 15 years of some\nsoftware as opposed to \"just\" 10 years (which is already bad enough).\n\nOf course any one change isn't going to be what makes it or breaks it,\nso it's hard to make the argument in terms of \"I must use this new\nfeature here\". But if that was the standard we were applying we'd still\nbe supporting perl 5.6[1].\n\n1. If it hadn't turned out that it was broken for years because of using\n  a new feature, see d48b284183 (\"perl: bump the required Perl version\n  to 5.8 from 5.6.[21]\", 2010-09-24)\n"},{"id":"335275","messageId":"20171225015744.o47ackbwi2wbtkbv@untitled","threadId":"47491","inReplyTo":"87y3lrr78q.fsf@evledraar.gmail.com","subject":"Re: [RFC/PATCH] perl: bump the required Perl version to 5.10.0 from 5.8.0","fromName":"Eric Wong","fromEmail":"e@80x24.org","sentAt":"2017-12-25T01:57:44Z","receivedAt":"2017-12-25T02:01:20Z","isPatch":true,"sender":{"key":"e@80x24.org","avatar":null},"body":"Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:\n> I think for any given external dependency of git.git it makes sense to\n> just pick a version, not say that this script requires perl so-and-so,\n> this one python so-and-so, or curl/openssl so-and-so etc.\n\nAgreed.  Any version support changes should be tree-wide.\n\n> On Sun, Dec 24 2017, Eric Wong jotted:\n> > Maybe we change our docs to say we welcome 5.10 features for new\n> > code, but I'm against changing things for the sake of change.\n> \n> I should have mentioned this in the commit message, but for me it's\n> mainly that whenever I patch the Git perl code there's no easy way to\n> test if it works on a currently supported release, 5.8.* doesn't even\n> build anymore on a modern compiler without monkeypatching with\n> Devel::PatchPerl (and then only some subreleases).\n\nFair enough, I haven't run 5.8 in a while, either.  One concern\nI have is it makes reviewing more difficult as the language gets\nbigger and (even more) unfamiliar constructs pop up.  This is\nprobably more important for git as most of us are not dedicated\nPerl hackers.\n\nWhat mostly bugs me about this is going from:\n\n\t\"we'll accept patches to keep your old system working\"\n\n to:\n\n\t\"your software is too old, upgrade or go away\"\n\n> I think it's reasonable for us, in general, to at some point pass the\n> buck in maintaining dependencies to people who want to still build on\n> ancient versions. And not just for perl, but e.g. curl too, which is\n> something I commented on at some length in <874ltg2tvo.fsf@gmail.com>\n> (https://public-inbox.org/git/874ltg2tvo.fsf@gmail.com/). I.e. if you\n> need to really build the latest git on RHEL 5 with all bells & whistles\n> you also build perl.\n\nI don't disagree; but curl is different animal in that it was a\nmaintenance burden for us.\n\n> It's not just change for the sake of change, there's a high cognitive\n> overhead in trying to write code against the last 15 years of some\n> software as opposed to \"just\" 10 years (which is already bad enough).\n\nHeh, I was making the same point for staying with older versions\nsince it's less cognitive overhead for me (and presumably others)\nto use a smaller featureset.\n\n> Of course any one change isn't going to be what makes it or breaks it,\n> so it's hard to make the argument in terms of \"I must use this new\n> feature here\". But if that was the standard we were applying we'd still\n> be supporting perl 5.6[1].\n\nRight, if there's a compelling case to depend on 5.10 then I'm\nall for it.  I don't think we've hit a breaking point like\nwe did with 5.8, yet.\n\n> 1. If it hadn't turned out that it was broken for years because of using\n>   a new feature, see d48b284183 (\"perl: bump the required Perl version\n>   to 5.8 from 5.6.[21]\", 2010-09-24)\n"},{"id":"335380","messageId":"xmqqzi64m2cc.fsf@gitster.mtv.corp.google.com","threadId":"47491","inReplyTo":"20171225015744.o47ackbwi2wbtkbv@untitled","subject":"Re: [RFC/PATCH] perl: bump the required Perl version to 5.10.0 from 5.8.0","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-12-27T18:51:15Z","receivedAt":"2017-12-27T18:51:22Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Eric Wong <e@80x24.org> writes:\n\n> Fair enough, I haven't run 5.8 in a while, either.  One concern\n> I have is it makes reviewing more difficult as the language gets\n> bigger and (even more) unfamiliar constructs pop up.  This is\n> probably more important for git as most of us are not dedicated\n> Perl hackers.\n\nYes, but that cuts both ways.  When we do get a less amateur Perl\nfolks who contribute and review, they are more and more likely to be\nfluent in modern versions of Perl than the ancient ones some of us\nwho learned the tongue long time ago are familiar with.  Telling\nthem to limit themselves to what is also available in ancient\nversions is a burden that is backwards.\n\nSo\n\n> What mostly bugs me about this is going from:\n>\n> \t\"we'll accept patches to keep your old system working\"\n>\n>  to:\n>\n> \t\"your software is too old, upgrade or go away\"\n\nis something we need to be able to say at some point.\n"},{"id":"335387","messageId":"20171227191636.GF149622@aiede.mtv.corp.google.com","threadId":"47491","inReplyTo":"20171223174400.26668-1-avarab@gmail.com","subject":"Re: [RFC/PATCH] perl: bump the required Perl version to 5.10.0 from 5.8.0","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2017-12-27T19:16:36Z","receivedAt":"2017-12-27T19:16:44Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hi,\n\nÆvar Arnfjörð Bjarmason wrote:\n\n> This is similar to Jeff King's jk/drop-ancient-curl series in that\n> we're dropping perl releases that are rarely tested anymore, however\n> unlike those patches git still works on e.g. 5.8.8 (I couldn't build\n> anything older).\n\nFWIW I think this is a good change.  If someone is affected and offers\nhelp with keeping git working well with older perl (e.g. setting up CI\nfor us) then we can keep supporting it, but it seems more likely to me\nthat there will just not be anyone affected.\n\nAnd being able to assume a newer baseline perl version seems\nbeneficial both from a security point of view and from a developer\nexperience pov.\n\nSome minor nits:\n\n[...]\n>  contrib/diff-highlight/DiffHighlight.pm | 2 +-\n>  contrib/examples/git-difftool.perl      | 2 +-\n>  contrib/mw-to-git/Git/Mediawiki.pm      | 2 +-\n\nI'm less opinionated about these.  They're already using the same perl\nbaseline as the rest of git, so I suppose it's good to keep them\nconsistent, but if any of them gives you trouble then I think you can\njust ignore it and let the relevant contrib maintainer take care of\nit. :)\n\n[...]\n> --- a/git-add--interactive.perl\n> +++ b/git-add--interactive.perl\n> @@ -1,6 +1,6 @@\n>  #!/usr/bin/perl\n>  \n> -use 5.008;\n> +use v5.10.0;\n\nAs brian carlson mentioned, 'use 5.010' would produce a clearer error\nmessage on ancient perl, which could result in happier users on\nancient platforms or clearer bug reports.\n\nThat said, I don't have a strong opinion there.\n\nReviewed-by: Jonathan Nieder <jrnieder@gmail.com>\n"},{"id":"335388","messageId":"20171227192102.GG149622@aiede.mtv.corp.google.com","threadId":"47491","inReplyTo":"20171227191636.GF149622@aiede.mtv.corp.google.com","subject":"Re: [RFC/PATCH] perl: bump the required Perl version to 5.10.0 from 5.8.0","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2017-12-27T19:21:02Z","receivedAt":"2017-12-27T19:21:09Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Jonathan Nieder wrote:\n> Ævar Arnfjörð Bjarmason wrote:\n\n>> This is similar to Jeff King's jk/drop-ancient-curl series in that\n>> we're dropping perl releases that are rarely tested anymore, however\n>> unlike those patches git still works on e.g. 5.8.8 (I couldn't build\n>> anything older).\n[...]\n> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>\n\nOne caveat I forgot: please also update the INSTALL file:\n\n - Git is reasonably self-sufficient, but does depend on a few external\n   programs and libraries.  Git can be used without most of them by adding\n   the approriate \"NO_<LIBRARY>=YesPlease\" to the make command line or\n   config.mak file.\n[...]\n        - \"Perl\" version 5.8 or later is needed to use some of the\n\nThanks again,\nJonathan\n"}]}