Thread: plperl's ppport.h out of date?

plperl's ppport.h out of date?

From
Tom Lane
Date:
ppport.h is throwing warnings when compiling on Fedora Core 5
(with perl-5.8.8-4).  I gather from the comments in the head
of that file that we ought to look for a newer version.
        regards, tom lane


Re: plperl's ppport.h out of date?

From
Andrew Dunstan
Date:
Tom Lane wrote:
> ppport.h is throwing warnings when compiling on Fedora Core 5
> (with perl-5.8.8-4).  I gather from the comments in the head
> of that file that we ought to look for a newer version.
>   

I don't currently have an FC5 box to test with. Here's what to try: move 
the ppport.h aside, and in the plperl directory run this command to 
generate a replacement:
 perl -MDevel::PPPort -e 'Devel::PPPort::WriteFile();'

and then recompile.

The last substantial change to ppport.h was when I mangled the old one a 
bit to get it to work with perl 5.05 - which we no longer support (see 
recent discussion). It does have some fairly horrible stuff (e.g. 
function bodies).

cheers

andrew




Re: plperl's ppport.h out of date?

From
Tom Lane
Date:
Andrew Dunstan <andrew@dunslane.net> writes:
> I don't currently have an FC5 box to test with. Here's what to try: move 
> the ppport.h aside, and in the plperl directory run this command to 
> generate a replacement:

>   perl -MDevel::PPPort -e 'Devel::PPPort::WriteFile();'

> and then recompile.

Hm.  It compiles without warnings, but the new ppport.h is about 100K
larger than the old one :-(.  The change we seem to actually need is
just to put "#ifndef PERL_UNUSED_DECL" around the attempted declaration
of that macro, so I'm inclined to just commit that rather than buy into
everything else that seems to have been done to PPPort lately.
Thoughts?
        regards, tom lane


Re: plperl's ppport.h out of date?

From
Tom Lane
Date:
Andrew Dunstan <andrew@dunslane.net> writes:
> Tom Lane wrote:
>> Hm.  It compiles without warnings, but the new ppport.h is about 100K
>> larger than the old one :-(.  The change we seem to actually need is
>> just to put "#ifndef PERL_UNUSED_DECL" around the attempted declaration
>> of that macro, so I'm inclined to just commit that rather than buy into
>> everything else that seems to have been done to PPPort lately.

> Well, if we start to use newer APIs at some stage, or if older APIs get 
> replaced and moved into ppport.h, we will probably have to upgrade. That 
> doesn't seem to be the case for now, so the minimal change seems 
> reasonable - in fact Devrim asked me about this a week or so ago and in 
> effect that's what I suggested to him, although I never heard back from him.

A more radical solution is to remove ppport.h from our distribution
entirely, and have the Makefile generate it at build time, using that
same little bit of script you showed.  Or is Devel::PPPort not part of
the standard Perl distribution?
        regards, tom lane


Re: plperl's ppport.h out of date?

From
Andrew Dunstan
Date:
Tom Lane wrote:
> A more radical solution is to remove ppport.h from our distribution
> entirely, and have the Makefile generate it at build time, using that
> same little bit of script you showed.  Or is Devel::PPPort not part of
> the standard Perl distribution?
>
>     
>   

It is, but this misses the point. You want to use the latest ppport.h 
even when building with earlier perls.

The man page says:
      just take the most recent copy of ppport.h that you      can find (e.g. by generating it with the latest
"Devel::PPPort"
 
release      from CPAN), copy it into your project, adjust your project to use it,      and distribute the header along
withyour module.
 

We are using ppport.h correctly - we're just a bit out of date, that's all.

cheers

andrew



Re: plperl's ppport.h out of date?

From
Tom Lane
Date:
Andrew Dunstan <andrew@dunslane.net> writes:
> It is, but this misses the point. You want to use the latest ppport.h 
> even when building with earlier perls.

Doh, of course.  Well, for the moment I'll just put in the #ifndef.

FWIW, it looks like a large part of the bloat in the newer file is
in-line documentation, which we hardly need to include in our
distribution.  I'll leave it to someone more familiar with Perl to
determine whether we want to try to use a slimmed-down copy of the
up-to-date output.
        regards, tom lane


Re: plperl's ppport.h out of date?

From
Martijn van Oosterhout
Date:
On Tue, May 30, 2006 at 11:35:12AM -0400, Tom Lane wrote:
> FWIW, it looks like a large part of the bloat in the newer file is
> in-line documentation, which we hardly need to include in our
> distribution.  I'll leave it to someone more familiar with Perl to
> determine whether we want to try to use a slimmed-down copy of the
> up-to-date output.

Not sure whether it's worth it, but this sed line strips the POD docs:

sed -e '/^=/,/^=cut/d' < ppport.h

Have a nice day,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> From each according to his ability. To each according to his ability to litigate.

Re: plperl's ppport.h out of date?

From
Devrim GUNDUZ
Date:
Hi,

On Tue, 2006-05-30 at 08:29 -0400, Tom Lane wrote:
> ppport.h is throwing warnings when compiling on Fedora Core 5
> (with perl-5.8.8-4).  I gather from the comments in the head
> of that file that we ought to look for a newer version.

I've informed Andrew about this, he sent me a patch a few days before,
but I could not have time to test it.

Let me test it soon.
-- 
The PostgreSQL Company - Command Prompt, Inc. 1.503.667.4564
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
Managed Services, Shared and Dedicated Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/




Re: plperl's ppport.h out of date?

From
Andrew Dunstan
Date:
Martijn van Oosterhout wrote:
> On Tue, May 30, 2006 at 11:35:12AM -0400, Tom Lane wrote:
>   
>> FWIW, it looks like a large part of the bloat in the newer file is
>> in-line documentation, which we hardly need to include in our
>> distribution.  I'll leave it to someone more familiar with Perl to
>> determine whether we want to try to use a slimmed-down copy of the
>> up-to-date output.
>>     
>
> Not sure whether it's worth it, but this sed line strips the POD docs:
>
> sed -e '/^=/,/^=cut/d' < ppport.h
>
> Have a nice day,
>   

The changes are a lot more substantive than this, from my quick look.

We'll have to upgrade some day, but for now we are OK. This module is 
regularly updated, but we should only update our copy as needed. I think 
we are good to go with Tom's patch.

cheers

andrew