Re: pgsql: Adjust configure to insist on Perl version >= 5.8.3. - Mailing list pgsql-hackers

From Noah Misch
Subject Re: pgsql: Adjust configure to insist on Perl version >= 5.8.3.
Date
Msg-id 20211008042454.GB398563@rfd.leadboat.com
Whole thread Raw
In response to Re: pgsql: Adjust configure to insist on Perl version >= 5.8.3.  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: pgsql: Adjust configure to insist on Perl version >= 5.8.3.  (Daniel Gustafsson <daniel@yesql.se>)
List pgsql-hackers
On Thu, Oct 07, 2021 at 11:39:11PM -0400, Tom Lane wrote:
> Noah Misch <noah@leadboat.com> writes:
> > On Thu, Oct 07, 2021 at 03:44:48PM -0400, Tom Lane wrote:
> >>> (1) I'm distrustful of the idea that perl 5.8.x will compile
> >>> cleanly, or at all, on modern platforms.  Certainly Postgres
> >>> releases of similar vintage won't.
> 
> > perlbrew uses the patchperl system to build old Perl in modern environments.
> > This year, I used it to get 5.8.0.  Building unpatched 5.8.0 does fail.
> 
> Oh, cool.
> 
> >> I propose that what might be more useful than the existing last
> >> section of src/test/perl/README is something along the lines of:
> 
> > -1.  This would replace a useful recipe with, essentially, a restatement of
> > that recipe in English words.  That just leaves the user to rediscover the
> > actual recipe.
> 
> Well, I think the existing text does the reader a disservice
> by stating a specific recipe without any context.  Notably,
> it says nothing about restricting which Perl modules you use.

That's obvious from "cpanm install IPC::Run".  Surely if any other non-core
module were allowed, the recipe would list it in a similar way.  This is a
source tree README; it shouldn't try to hold the reader's hand like the
user-facing docs do.  We've not had commits add usage of other modules, so
there's no evidence of actual doubt on this point.

> What do you think of using my proposed text followed by
> 
>     One way to test against an old Perl version is to use
>     perlbrew.
>     << more or less the existing text here >>
>     Bear in mind that you will still need to install IPC::Run,
>     and what you will get is a current version not the one
>     distributed with Perl 5.8.3.  You will also need to update
>     Test::More because the version distributed with Perl 5.8.3
>     is too old to run our TAP tests.  So this recipe does not create
>     a perfect reproduction of a back-in-the-day Perl installation,
>     but it will probably catch any problems that might surface in
>     the buildfarm.

I don't see an improvement in there.  If there's something to change, it's
improving the actual recipe:

--- a/src/test/perl/README
+++ b/src/test/perl/README
@@ -83,3 +83,4 @@ Just install and
     perlbrew install-cpanm
-    cpanm install IPC::Run
+    cpanm install Test::More@0.87
+    cpanm install IPC::Run@tbd_old_version



pgsql-hackers by date:

Previous
From: Zhihong Yu
Date:
Subject: Re: Add client connection check during the execution of the query
Next
From: Peter Geoghegan
Date:
Subject: GIN pending list cleanup during autoanalyze blocks cleanup by VACUUM