Re: PL_stashcache, or, what's our minimum Perl version?

Peter Eisentraut <peter.eisentraut@2ndquadrant.com>

From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Noah Misch <noah@leadboat.com>, Andrew Dunstan <andrew@dunslane.net>, pgsql-hackers@postgresql.org
Date: 2017-07-31T19:37:25Z
Lists: pgsql-hackers
On 7/31/17 15:17, Peter Eisentraut wrote:
> On 7/31/17 14:55, Tom Lane wrote:
>>> We use the "PATH" variants when we need a fully qualified name.  For
>>> example, at some point or another, we needed to substitute a fully
>>> qualified perl binary name into the headers of scripts.
>>
>>> If there is no such requirement, then we should use the non-PATH variants.
>>
>> Why?  That risks failures of various sorts, and you have not stated
>> any actual benefit of it.
> 
> What I wrote is merely a description of the current practice.  That
> practice was in turn developed out of ancient Autoconf standard
> practices.  There are arguments to be made for doing it differently.
> 
> One major PITA with the AC_PATH_* checks is that you can only override
> them with environment variables that are full paths; otherwise the
> environment variables are ignored.  For example, currently, running
> 
> ./configure PYTHON=python3
> 
> will result in the PYTHON setting being ignored.  Currently, this only
> affects a small number of variables, but if we expanded that, it would
> be a pretty significant usability change.

Plus certain special macros such as AC_PROG_CC don't have a PATH
variant, so you're always going to have some inconsistencies.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Commits

  1. Adjust configure to insist on Perl version >= 5.8.3.

  2. Further improve consistency of configure's program searching.

  3. Doc: specify that the minimum supported version of Perl is 5.8.3.

  4. Record full paths of programs sought by "configure".

  5. Abandon the use of Perl's Safe.pm to enforce restrictions in plperl, as it is