Some recent off-list discussion has suggested that we should keep
plperl's copy of ppport.h in sync on all branches, just as we do with
timezone data files. So when we update it on HEAD we should
simultaneously update the back branches. It's a derived file, produced
by the perl module Devel::PPPort, so there is really no maintenance
effort involved. In general I think this is a good idea. The whole idea
of ppport.h is to aid in backwards compatibility.
Here is some info from (my version of) the Devel::PPPort docs:
Perl’s API has changed over time, gaining new features, new functions, increasing its flexibility, and reducing
theimpact on the C namespace environment (reduced pollution). The header file written by this module, typically
ppport.h,attempts to bring some of the newer Perl API features to older versions of Perl, so that you can worry
lessabout keeping track of old releases, but users can still reap the benefit. [...] Currently, Perl versions from
5.003to 5.10.0 are supported.
(Of course, we don't want to support anything nearly as old as 5.003.
Perl 5.6.0 was released in 2000, so I wouldn't be inclined to look
kindly on complaints about perl releases before that, since it's well
before the release date of the earliest live branch we have. But that
doesn't concern us here.)
That means if we keep this file up to date in all branches, we can be
much less worried about whether backporting a patch, as for example Tom
recently did here:
<http://git.postgresql.org/gitweb?p=postgresql.git;a=commit;h=ef0ec92a57e565a668851f23a894c4b96d60fec8>,
might break a build made with an older version of perl.
As we recently did a significant upgrade of ppport.h on HEAD, I
therefore propose to apply that change to all the live branches.
Another point: as this is a derived file, I think it should be excluded
from pgindent runs.
Comments?
cheers
andrew