Re: minimum perl version
On Wed, Sep 14, 2022 at 10:46 AM Tom Lane wrote: > > John Naylor writes: > > On Wed, Sep 14, 2022 at 6:47 AM Tom Lane wrote: > >> I've just switched longfin to use built-from-source perl 5.14.0. > > > In that case, here is a quick update with commit message. Not yet any > > change for MSVC, but I can put together something later. > > Looks reasonable just by eyeball, did not test. > > > Since we're much less willing to support older Windows and Visual > > Studio versions, maybe it's low-enough risk defer the check to the > > Meson conversion? I understand our MSVC process will then go away much > > more quickly than autoconf... > > Agreed --- the MSVC scripts are on a pretty short leash now. > Not clear it's worth fixing them for this point. If we've > failed to get rid of them by the time v16 release approaches, > maybe it'd be worth doing something then. Okay, pushed with no further MSVC changes, after doing a round on CI. -- John Naylor EDB: http://www.enterprisedb.com
Re: minimum perl version
John Naylor writes: > On Wed, Sep 14, 2022 at 6:47 AM Tom Lane wrote: >> I've just switched longfin to use built-from-source perl 5.14.0. > In that case, here is a quick update with commit message. Not yet any > change for MSVC, but I can put together something later. Looks reasonable just by eyeball, did not test. > Since we're much less willing to support older Windows and Visual > Studio versions, maybe it's low-enough risk defer the check to the > Meson conversion? I understand our MSVC process will then go away much > more quickly than autoconf... Agreed --- the MSVC scripts are on a pretty short leash now. Not clear it's worth fixing them for this point. If we've failed to get rid of them by the time v16 release approaches, maybe it'd be worth doing something then. regards, tom lane
Re: minimum perl version
On Wed, Sep 14, 2022 at 6:47 AM Tom Lane wrote: > > I've just switched longfin to use built-from-source perl 5.14.0. In that case, here is a quick update with commit message. Not yet any change for MSVC, but I can put together something later. Since we're much less willing to support older Windows and Visual Studio versions, maybe it's low-enough risk defer the check to the Meson conversion? I understand our MSVC process will then go away much more quickly than autoconf... -- John Naylor EDB: http://www.enterprisedb.com From d8e241968395c552d667c1eb393cbaea12f0df6c Mon Sep 17 00:00:00 2001 From: John Naylor Date: Wed, 14 Sep 2022 09:58:13 +0700 Subject: [PATCH v2] Bump minimum Perl version to 5.14 The oldest vendor-shipped Perl in the buildfarm is 5.14.2, which is the last version that Debian Wheezy shipped. That OS is EOL, but we keep it running because there is no other convenient way to test certain non-mainstream 32-bit platforms. There is no bugfix in the .2 release that is required, and yet it's also not the latest minor release -- that would be 5.14.4. To clarify the situation, we also have arranged the buildfarm to test 5.14.0. That allows configure scripts and documentation to state 5.14 without fine print. Discussion: https://www.postgresql.org/message-id/20220902181553.ev4pgzhubhdkg...@awork3.anarazel.de --- config/perl.m4 | 4 ++-- configure| 6 +++--- doc/src/sgml/install-windows.sgml| 2 +- doc/src/sgml/installation.sgml | 4 ++-- src/pl/plperl/plc_perlboot.pl| 1 - src/test/perl/PostgreSQL/Test/Cluster.pm | 2 +- src/test/perl/README | 10 +++--- src/tools/msvc/gendef.pl | 1 - src/tools/pgindent/pgindent | 1 - 9 files changed, 12 insertions(+), 19 deletions(-) diff --git a/config/perl.m4 b/config/perl.m4 index c9fd91397c..8126e79f67 100644 --- a/config/perl.m4 +++ b/config/perl.m4 @@ -11,11 +11,11 @@ if test "$PERL"; then pgac_perl_version=`$PERL -v 2>/dev/null | sed -n ['s/This is perl.*v[a-z ]*\([0-9]\.[0-9][0-9.]*\).*$/\1/p']` AC_MSG_NOTICE([using perl $pgac_perl_version]) if echo "$pgac_perl_version" | sed ['s/[.a-z_]/ /g'] | \ -$AWK '{ if ([$]1 == 5 && ([$]2 > 8 || ($[2] == 8 && [$]3 >= 3))) exit 1; else exit 0;}' +$AWK '{ if ([$]1 == 5 && ([$]2 >= 14)) exit 1; else exit 0;}' then AC_MSG_WARN([ *** The installed version of Perl, $PERL, is too old to use with PostgreSQL. -*** Perl version 5.8.3 or later is required, but this is $pgac_perl_version.]) +*** Perl version 5.14 or later is required, but this is $pgac_perl_version.]) PERL="" fi fi diff --git a/configure b/configure index fd2a782454..f325bd85b8 100755 --- a/configure +++ b/configure @@ -10491,14 +10491,14 @@ if test "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: using perl $pgac_perl_version" >&5 $as_echo "$as_me: using perl $pgac_perl_version" >&6;} if echo "$pgac_perl_version" | sed 's/[.a-z_]/ /g' | \ -$AWK '{ if ($1 == 5 && ($2 > 8 || ($2 == 8 && $3 >= 3))) exit 1; else exit 0;}' +$AWK '{ if ($1 == 5 && ($2 >= 14)) exit 1; else exit 0;}' then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** The installed version of Perl, $PERL, is too old to use with PostgreSQL. -*** Perl version 5.8.3 or later is required, but this is $pgac_perl_version." >&5 +*** Perl version 5.14 or later is required, but this is $pgac_perl_version." >&5 $as_echo "$as_me: WARNING: *** The installed version of Perl, $PERL, is too old to use with PostgreSQL. -*** Perl version 5.8.3 or later is required, but this is $pgac_perl_version." >&2;} +*** Perl version 5.14 or later is required, but this is $pgac_perl_version." >&2;} PERL="" fi fi diff --git a/doc/src/sgml/install-windows.sgml b/doc/src/sgml/install-windows.sgml index c00ab2b4b2..29d3294dc8 100644 --- a/doc/src/sgml/install-windows.sgml +++ b/doc/src/sgml/install-windows.sgml @@ -190,7 +190,7 @@ $ENV{MSBFLAGS}="/m"; or Cygwin Perl will not work. It must also be present in the PATH. Binaries can be downloaded from https://www.activestate.com;> - (Note: version 5.8.3 or later is required, + (Note: version 5.14 or later is required, the free Standard Distribution is sufficient). diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index 7c79608e55..319c7e6966 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -165,7 +165,7 @@ su - postgres PL/Perl you need a full Perl installation, including the libperl library and the header files. - The minimum required version is Perl 5.8.3. + The minimu
Re: minimum perl version
John Naylor writes: > On Sat, Sep 3, 2022 at 2:11 AM Tom Lane wrote: >> Yeah, that seems like a reasonable new minimum for Perl. I might >> see about setting up an animal running 5.14.0, just so we can say >> "5.14" in the docs without fine print. > Until such time as that happens, here is a draft to require 5.14.2. I've just switched longfin to use built-from-source perl 5.14.0. regards, tom lane
Re: minimum perl version
On Tue, Sep 13, 2022 at 5:53 PM John Naylor wrote: > > Until such time as that happens, here is a draft to require 5.14.2. As soon as I hit send, it occurred to me that we don't check the perl version on Windows, since (I seem to recall) 5.8.3 was too old to be an option on that platform. We'll have to add a new check somewhere. -- John Naylor EDB: http://www.enterprisedb.com
Re: minimum perl version
On Sat, Sep 3, 2022 at 2:11 AM Tom Lane wrote: > > Andres Freund writes: > > 5.14 would be a trivial lift as far as the buildfarm is concerned. > > Yeah, that seems like a reasonable new minimum for Perl. I might > see about setting up an animal running 5.14.0, just so we can say > "5.14" in the docs without fine print. Until such time as that happens, here is a draft to require 5.14.2. -- John Naylor EDB: http://www.enterprisedb.com config/perl.m4 | 4 ++-- configure| 6 +++--- doc/src/sgml/install-windows.sgml| 2 +- doc/src/sgml/installation.sgml | 4 ++-- src/pl/plperl/plc_perlboot.pl| 1 - src/test/perl/PostgreSQL/Test/Cluster.pm | 2 +- src/test/perl/README | 10 +++--- src/tools/msvc/gendef.pl | 1 - src/tools/pgindent/pgindent | 1 - 9 files changed, 12 insertions(+), 19 deletions(-) diff --git a/config/perl.m4 b/config/perl.m4 index c9fd91397c..29f54bbb79 100644 --- a/config/perl.m4 +++ b/config/perl.m4 @@ -11,11 +11,11 @@ if test "$PERL"; then pgac_perl_version=`$PERL -v 2>/dev/null | sed -n ['s/This is perl.*v[a-z ]*\([0-9]\.[0-9][0-9.]*\).*$/\1/p']` AC_MSG_NOTICE([using perl $pgac_perl_version]) if echo "$pgac_perl_version" | sed ['s/[.a-z_]/ /g'] | \ -$AWK '{ if ([$]1 == 5 && ([$]2 > 8 || ($[2] == 8 && [$]3 >= 3))) exit 1; else exit 0;}' +$AWK '{ if ([$]1 == 5 && ([$]2 > 14 || ($[2] == 14 && [$]3 >= 2))) exit 1; else exit 0;}' then AC_MSG_WARN([ *** The installed version of Perl, $PERL, is too old to use with PostgreSQL. -*** Perl version 5.8.3 or later is required, but this is $pgac_perl_version.]) +*** Perl version 5.14.2 or later is required, but this is $pgac_perl_version.]) PERL="" fi fi diff --git a/configure b/configure index fd2a782454..160c181441 100755 --- a/configure +++ b/configure @@ -10491,14 +10491,14 @@ if test "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: using perl $pgac_perl_version" >&5 $as_echo "$as_me: using perl $pgac_perl_version" >&6;} if echo "$pgac_perl_version" | sed 's/[.a-z_]/ /g' | \ -$AWK '{ if ($1 == 5 && ($2 > 8 || ($2 == 8 && $3 >= 3))) exit 1; else exit 0;}' +$AWK '{ if ($1 == 5 && ($2 > 14 || ($2 == 14 && $3 >= 2))) exit 1; else exit 0;}' then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** The installed version of Perl, $PERL, is too old to use with PostgreSQL. -*** Perl version 5.8.3 or later is required, but this is $pgac_perl_version." >&5 +*** Perl version 5.14.2 or later is required, but this is $pgac_perl_version." >&5 $as_echo "$as_me: WARNING: *** The installed version of Perl, $PERL, is too old to use with PostgreSQL. -*** Perl version 5.8.3 or later is required, but this is $pgac_perl_version." >&2;} +*** Perl version 5.14.2 or later is required, but this is $pgac_perl_version." >&2;} PERL="" fi fi diff --git a/doc/src/sgml/install-windows.sgml b/doc/src/sgml/install-windows.sgml index c00ab2b4b2..2e41d75db0 100644 --- a/doc/src/sgml/install-windows.sgml +++ b/doc/src/sgml/install-windows.sgml @@ -190,7 +190,7 @@ $ENV{MSBFLAGS}="/m"; or Cygwin Perl will not work. It must also be present in the PATH. Binaries can be downloaded from https://www.activestate.com;> - (Note: version 5.8.3 or later is required, + (Note: version 5.14.2 or later is required, the free Standard Distribution is sufficient). diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index 7c79608e55..5d7c573729 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -165,7 +165,7 @@ su - postgres PL/Perl you need a full Perl installation, including the libperl library and the header files. - The minimum required version is Perl 5.8.3. + The minimum required version is Perl 5.14.2. Since PL/Perl will be a shared library, the libperl libperl library must be a shared library @@ -325,7 +325,7 @@ su - postgres perl - Perl 5.8.3 or later is needed to build from a Git checkout, + Perl 5.14.2 or later is needed to build from a Git checkout, or if you changed the input files for any of the build steps that use Perl scripts. If building on Windows you will need Perl in any case. Perl is diff --git a/src/pl/plperl/plc_perlboot.pl b/src/pl/plperl/plc_perlboot.pl index 8fd7f998bc..72cb53f6e3 100644 --- a/src/pl/plperl/plc_perlboot.pl +++ b/src/pl/plperl/plc_perlboot.pl @@ -6,7 +6,6 @@ use strict; use warnings; -use 5.008001; use vars qw(%_SHARED $_TD); PostgreSQL::InServer::Util::bootstrap(); diff --git a/src/test/perl/PostgreSQL/Test/Cluster.pm b/src/test/perl/PostgreSQL/Test/Cluster.pm index 27fa607da4..d678f65d88 100644 --- a/src/test/perl/PostgreSQL/Test/Cluster.pm +++ b/src/test/perl/PostgreSQL/Test/Cluster.pm @@ -2780,7 +2780,7 @@ all
Re: minimum perl version
> On 2 Sep 2022, at 21:11, Tom Lane wrote: > > Andres Freund writes: >> 5.14 would be a trivial lift as far as the buildfarm is concerned. > > Yeah, that seems like a reasonable new minimum for Perl. I might > see about setting up an animal running 5.14.0, just so we can say > "5.14" in the docs without fine print. Maybe perlbrew can be used, as per the instructions in src/test/perl/README? -- Daniel Gustafsson https://vmware.com/
Re: minimum perl version
Andres Freund writes: > 5.14 would be a trivial lift as far as the buildfarm is concerned. Yeah, that seems like a reasonable new minimum for Perl. I might see about setting up an animal running 5.14.0, just so we can say "5.14" in the docs without fine print. regards, tom lane
Re: minimum perl version
Hi, On 2022-09-02 14:31:57 -0400, Tom Lane wrote: > Andres Freund writes: > > I started a query on the buildfarm machine to collect the perl versions, but > > it's just awfully slow... > > This is from March, but it's probably still accurate enough. Thanks. Mine did just finish. Over the last month there were the following perl version on HEAD: perl_version | last_report | array_agg --+-+- {5,8,3} | 2022-08-04 09:38:04 | {prairiedog} {5,14,2} | 2022-09-02 16:40:12 | {skate,lapwing,snapper,frogfish} {5,16,3} | 2022-09-02 16:52:17 | {prion,dhole,buri,parula,mantid,chub,clam,snakefly,rhinoceros,quokka} {5,18,2} | 2022-09-02 06:42:13 | {shelduck} {5,20,2} | 2022-09-02 16:15:34 | {curculio,chipmunk,topminnow} {5,22,1} | 2022-09-02 16:02:11 | {spurfowl,cuon,batfish} {5,24,1} | 2022-09-02 17:00:17 | {urocryon,grison,mussurana,butterflyfish,ayu,chimaera,tadarida} {5,24,3} | 2022-09-02 09:04:12 | {fairywren} {5,26,1} | 2022-09-02 18:40:18 | {elasmobranch,avocet,bichir,blossomcrown,trilobite,cavefish,cotinga,demoiselle,perch,hippopotamus,jay} {5,26,2} | 2022-09-02 09:02:03 | {vulpes,wobbegong} {5,26,3} | 2022-09-02 12:04:01 | {jacana} {5,28,0} | 2022-09-02 17:00:17 | {myna} {5,28,1} | 2022-09-02 16:02:01 | {sungazer,hornet,hoverfly,ibisbill,kittiwake,mandrill,tern} {5,28,2} | 2022-09-01 23:39:33 | {bonito} {5,30,0} | 2022-09-02 14:16:16 | {branta,moonjelly,urutau,seawasp} {5,30,1} | 2022-09-02 02:59:06 | {wrasse} {5,30,2} | 2022-09-02 16:05:24 | {massasauga} {5,30,3} | 2022-09-02 17:00:06 | {longfin,sifaka,gombessa} {5,32,0} | 2022-09-02 16:00:05 | {margay} {5,32,1} | 2022-09-02 17:49:36 | {lorikeet,alabio,guaibasaurus,eelpout,tayra,peripatus,plover,gull,mereswine,warbler,morepork,mule,loach,boomslang,florican,copperhead,conchuela} {5,34,0} | 2022-09-02 16:30:04 | {culicidae,komodoensis,grassquit,mamba,francolin,mylodon,olingo,flaviventris,petalura,phycodurus,piculet,pogona,dragonet,devario,desmoxytes,rorqual,serinus,kestrel,crake,skink,chickadee,cardinalfish,tamandua,xenodermus,thorntail,calliphoridae,idiacanthus} {5,34,1} | 2022-09-02 16:05:33 | {sidewinder,malleefowl,pollock} {5,36,0} | 2022-09-02 03:01:08 | {dangomushi,caiman} (23 rows) 5.14 would be a trivial lift as far as the buildfarm is concerned. The Debian 7 animals couldn't trivially be updated to a newer perl. It's from 2013-05-04, so I wouldn't feel bad about dropping support for it - but probably wouldn't personally bother just for this. Greetings, Andres Freund
Re: minimum perl version
Andres Freund writes: > I started a query on the buildfarm machine to collect the perl versions, but > it's just awfully slow... This is from March, but it's probably still accurate enough. regards, tom lane sysname| snapshot | l ---+-+-- alabio| 2022-03-24 20:00:07 | configure: using perl 5.28.1 anole | 2022-03-24 10:40:08 | configure: using perl 5.8.8 avocet| 2022-03-25 01:15:48 | configure: using perl 5.26.1 ayu | 2022-03-24 22:40:55 | configure: using perl 5.24.1 barbastella | 2022-03-25 00:26:48 | configure: using perl 5.26.1 barbthroat| 2022-03-24 12:24:39 | configure: using perl 5.26.1 batfish | 2022-03-24 19:45:25 | configure: using perl 5.22.1 bichir| 2022-03-07 15:30:09 | configure: using perl 5.26.1 bonito| 2022-03-24 23:29:26 | configure: using perl 5.28.2 boomslang | 2022-03-24 09:14:08 | configure: using perl 5.32.1 bufflehead| 2022-02-16 19:45:26 | configure: using perl 5.18.2 buri | 2022-03-25 00:34:13 | configure: using perl 5.16.3 butterflyfish | 2022-03-25 01:00:16 | configure: using perl 5.24.1 caiman| 2022-03-24 23:24:08 | configure: using perl 5.34.1 calliphoridae | 2022-03-25 00:55:17 | configure: using perl 5.34.0 cardinalfish | 2022-03-24 02:10:06 | configure: using perl 5.34.0 cavefish | 2022-03-24 04:29:49 | configure: using perl 5.26.1 chimaera | 2022-03-24 02:14:19 | configure: using perl 5.24.1 chipmunk | 2022-03-20 21:57:01 | configure: using perl 5.20.2 chub | 2022-03-24 16:10:02 | configure: using perl 5.16.3 ciconia | 2022-02-03 11:45:11 | configure: using perl 5.26.3 clam | 2022-03-24 22:27:35 | configure: using perl 5.16.3 conchuela | 2022-03-24 23:35:43 | configure: using perl 5.32.1 copperhead| 2022-03-23 20:49:03 | configure: using perl 5.32.1 crake | 2022-03-25 00:32:20 | Mar 24 20:32:22 configure: using perl 5.34.0 culicidae | 2022-03-25 00:55:39 | configure: using perl 5.34.0 cuon | 2022-03-24 07:41:28 | configure: using perl 5.22.1 curculio | 2022-03-25 01:15:30 | configure: using perl 5.20.2 dangomushi| 2022-03-24 19:43:23 | configure: using perl 5.34.0 demoiselle| 2022-03-24 15:13:03 | configure: using perl 5.26.1 desmoxytes| 2022-03-25 00:56:03 | configure: using perl 5.34.0 devario | 2022-03-24 13:47:09 | configure: using perl 5.34.0 dhole | 2022-03-24 05:57:52 | configure: using perl 5.16.3 dragonet | 2022-03-24 19:34:05 | configure: using perl 5.34.0 eelpout | 2022-03-25 00:22:33 | configure: using perl 5.32.1 elasmobranch | 2022-03-24 03:10:07 | configure: using perl 5.26.1 elver | 2022-02-01 22:06:10 | configure: using perl 5.32.1 fairywren | 2022-03-22 21:23:18 | configure: using perl 5.24.3 flaviventris | 2022-03-25 01:24:08 | configure: using perl 5.34.0 florican | 2022-03-25 00:29:01 | configure: using perl 5.32.1 francolin | 2022-03-25 00:55:12 | configure: using perl 5.34.0 frogfish | 2022-02-26 17:38:06 | configure: using perl 5.14.2 gadwall | 2022-02-16 11:50:06 | configure: using perl 5.26.1 gaur | 2022-03-19 15:00:54 | configure: using perl 5.8.9 gharial | 2022-03-24 18:32:22 | configure: using perl 5.8.8 gombessa | 2022-03-15 02:58:20 | configure: using perl 5.30.3 grison| 2022-03-24 15:12:14 | configure: using perl 5.24.1 guaibasaurus | 2022-03-25 00:20:05 | configure: using perl 5.28.1 gull | 2022-03-19 08:24:23 | configure: using perl 5.32.1 haddock | 2022-02-16 23:36:11 | configure: using perl 5.22.4 hake | 2022-02-24 02:33:48 | configure: using perl 5.24.3 halibut | 2022-03-15 04:04:28 | configure: using perl 5.30.1 handfish | 2022-03-24 23:46:53 | configure: using perl 5.34.0 hippopotamus | 2022-03-25 00:25:02 | configure: using perl 5.26.1 hornet| 2022-03-21 06:06:32 | configure: using perl 5.28.1 hoverfly | 2022-03-21 22:39:52 | configure: using perl 5.28.1 ibisbill | 2022-03-24 08:15:35 | configure: using perl 5.28.1 idiacanthus | 2022-03-25 00:56:04 | configure: using perl 5.34.0 jabiru| 2022-03-25 00:25:27 | configure: using perl 5.32.1 jacana| 2022-03-22 02:53:11 | configure: using perl 5.26.3 jay | 2022-03-24 21:59:03 | configure: using perl 5.26.1 kittiwake | 2022-03-24 17:21:42 | configure: using perl 5.28.1 komodoensis | 2022-03-24 13:08:04 | configure: using perl 5.34.0 lapwing | 2022-03-24 23:34:48 | configure: using perl 5.14.2 loach | 2022-03-24 22:17:28 | configure: using perl 5.32.1 locust| 2022-03-19 22:17:53 | configure: using perl 5.8.8 longfin | 2022-03-25 00:59:30 | configure: using perl 5.30.2 lorikeet |
minimum perl version
Hi, Split off from the meson thread at https://postgr.es/m/990067.1662138678%40sss.pgh.pa.us On 2022-09-02 13:11:18 -0400, Tom Lane wrote: > Andres Freund writes: > > On 2022-09-02 14:17:26 +0700, John Naylor wrote: > >> + # FIXME: -output option is only available in perl 5.9.3 - but that's > >> + # probably a fine minimum requirement? > >> > >> Since we've retired some buildfarm animals recently, it seems the > >> oldest perl there is 5.14? ... which came out in 2011, so it seems > >> later on we could just set that as the minimum. > > > At the moment we document 5.8.3 as our minimum, supposedly based on some > > buildfarm animal - but that's probably outdated. > > Yeah, definitely. prairiedog was the only animal running such an old > version, and it's gone. I don't think we have anything testing ancient > bison or flex anymore, either. I'm a fan of actually testing whatever > we claim as the minimum supported version of any tool, so there's some > work to be done here, on buildfarm config or docs or both. 5.8.3 is from 2004-Jan-14, that's impressive :). I don't see any benefit in setting up a buildfarm animal running that old a version. For the meson stuff it'd suffice to set 5.9.3. as the minimum version for plperl (or I could try to work around it). However, supporting a perl version from 2006-Jan-28 doesn't strike me as particularly useful either. Relevent somewhat recent discussion / work: https://postgr.es/m/87y278s6iq.fsf%40wibble.ilmari.org https://www.postgresql.org/message-id/E1mYY6Z-0006OL-QN%40gemulon.postgresql.org I looked at which buildfarm animals currently use 5.14 (mentioned by John), and it's frogfish, snapper and skate. The latter two do build with plperl. I started a query on the buildfarm machine to collect the perl versions, but it's just awfully slow... Greetings, Andres Freund