On Sat, Sep 3, 2022 at 2:11 AM Tom Lane <t...@sss.pgh.pa.us> wrote:
>
> Andres Freund <and...@anarazel.de> 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
       <ulink url="https://www.activestate.com";></ulink>
-      (Note: version 5.8.3 or later is required,
+      (Note: version 5.14.2 or later is required,
       the free Standard Distribution is sufficient).
      </para></listitem>
     </varlistentry>
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
       <application>PL/Perl</application> you need a full
       <productname>Perl</productname> installation, including the
       <filename>libperl</filename> library and the header files.
-      The minimum required version is <productname>Perl</productname> 5.8.3.
+      The minimum required version is <productname>Perl</productname> 5.14.2.
       Since <application>PL/Perl</application> will be a shared
       library, the <indexterm><primary>libperl</primary></indexterm>
       <filename>libperl</filename> library must be a shared library
@@ -325,7 +325,7 @@ su - postgres
        <primary>perl</primary>
       </indexterm>
 
-      <application>Perl</application> 5.8.3 or later is needed to build from a Git checkout,
+      <application>Perl</application> 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
       <application>Perl</application> in any case.  <application>Perl</application> 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 values '' if not found. Does not differentiate between null and empty string
 for fields, no field is ever undef.
 
 The restart_lsn and confirmed_flush_lsn fields are returned verbatim, and also
-as a 2-list of [highword, lowword] integer. Since we rely on Perl 5.8.8 we can't
+as a 2-list of [highword, lowword] integer. Since we rely on Perl 5.14.2 we can't
 "use bigint", it's from 5.20, and we can't assume we have Math::Bigint from CPAN
 either.
 
diff --git a/src/test/perl/README b/src/test/perl/README
index 4b160cce36..26e4b41221 100644
--- a/src/test/perl/README
+++ b/src/test/perl/README
@@ -78,10 +78,6 @@ Each test script should end with:
 
 	done_testing();
 
-Test::More::like entails use of the qr// operator.  Avoid Perl 5.8.8 bug
-#39185 by not using the "$" regular expression metacharacter in qr// when also
-using the "/m" modifier.  Instead of "$", use "\n" or "(?=\n|\z)".
-
 Test::Builder::Level controls how far up in the call stack a test will look
 at when reporting a failure.  This should be incremented by any subroutine
 which directly or indirectly calls test routines from Test::More, such as
@@ -103,7 +99,7 @@ Portability
 -----------
 
 Avoid using any bleeding-edge Perl features.  We have buildfarm animals
-running Perl versions as old as 5.8.3, so your tests will be expected
+running Perl versions as old as 5.14.2, so your tests will be expected
 to pass on that.
 
 Also, do not use any non-core Perl modules except IPC::Run.  Or, if you
@@ -116,8 +112,8 @@ One way to test for compatibility with old Perl versions is to use
 perlbrew; see http://perlbrew.pl .  After installing that, do
 
     export PERLBREW_CONFIGURE_FLAGS='-de -Duseshrplib'
-    perlbrew --force install 5.8.3
-    perlbrew use 5.8.3
+    perlbrew --force install 5.14.2
+    perlbrew use 5.14.2
     perlbrew install-cpanm
     cpanm install Test::Simple@0.98
     cpanm install IPC::Run@0.79
diff --git a/src/tools/msvc/gendef.pl b/src/tools/msvc/gendef.pl
index b8c514a831..b4af3dea81 100644
--- a/src/tools/msvc/gendef.pl
+++ b/src/tools/msvc/gendef.pl
@@ -3,7 +3,6 @@
 
 use strict;
 use warnings;
-use 5.8.0;
 use List::Util qw(max);
 
 my @def;
diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent
index 2ef07bb9fd..47d2790ef6 100755
--- a/src/tools/pgindent/pgindent
+++ b/src/tools/pgindent/pgindent
@@ -4,7 +4,6 @@
 
 use strict;
 use warnings;
-use 5.008001;
 
 use Cwd qw(abs_path getcwd);
 use File::Find;

Reply via email to