develooper Front page | perl.perl5.porters | Postings from November 2003

Re: Expose PERL_PATCHLEVEL [PATCH]

Thread Previous | Thread Next
From:
Stas Bekman
Date:
November 7, 2003 01:19
Subject:
Re: Expose PERL_PATCHLEVEL [PATCH]
Message ID:
3FAB63B4.80304@stason.org
This item seems to be dropped on the floor. I'd like to remind about it now 
that we just had a bad precendent with fake perl-5.8.0 on RedHat Linux.

Remember that some time after 5.8.0 was released Rafael fixed perl to cache 
getppids. Which required a workaround in mod_perl 2, since perl assumes that 
it always does the fork (not the case with mod_perl). The workaround was 
conditioned as:

#if PERL_REVISION == 5 && \
     (PERL_VERSION == 8 && PERL_SUBVERSION >= 1 || PERL_VERSION >= 9) && \
     THREADS_HAVE_PIDS
...
#endif

Next we get a bug report telling us that getppid is broken under 
mp2/perl5.8.0. I'm scratching my head and then seeing that RedHat delivers 
MAINT18379 which dates 27 Dec 2002 (5 months after 5.8.0 was released) as 5.8.0.

Luckily THREADS_HAVE_PIDS didn't exist in 5.8.0, so we are safe. But what if 
it didn't.

I doubt we can do anything about distros making their own releases when they 
feel like it, but what we can do is to expose PERL_PATCHLEVEL so we can safely 
code our workaround. I don't remember when Rafael added that feature but let's 
say it was 18000. I'd then safely code it as:

#if PERL_REVISION == 5 && \
     (PERL_VERSION == 8 && PERL_SUBVERSION = 0 && PERL_PATCHLEVEL > 1800) && \ 

    (PERL_VERSION == 8 && PERL_SUBVERSION >= 1 || PERL_VERSION >= 9) && \
     THREADS_HAVE_PIDS
...
#endif

Thank you for listening and hopefully Gisle's patch will get in the next 
release ;)



Gisle Aas wrote:
> Yitzchak Scott-Thoennes <sthoenna@efn.org> writes:
> 
> 
>>That's no fix.
> 
> 
> How about this patch then.  It exposes PERL_PATCHLEVEL from config.h
> so that XS code can put conditions on it and also make $] and $^V
> include it.  With a bleadperl patched like this I get:
> 
>   $ perl -v
>   
>   This is perl, v5.9.0.21473 built for i686-linux
>   (with 1 registered patch, see perl -V for more detail)
>   
>   Copyright 1987-2003, Larry Wall
>   
>   Perl may be copied only under the terms of either the Artistic License or the
>   GNU General Public License, which may be found in the Perl 5 source kit.
>   
>   Complete documentation for Perl, including FAQ lists, should be found on
>   this system using `man perl' or `perldoc perl'.  If you have access to the
>   Internet, point your browser at http://www.perl.com/, the Perl Home Page.
> 
>   $ perl -le 'print $]'
>   5.00900021473
> 
> Official releases will not have PERL_PATCHLEVEL defined and will have
> $] and $^V as before.  With this we can also stop putting strings like
> "DEVEL21398" as a "Locally applied patches" for blead and snapshots.
> If integrated over to the 5.8.x branch you should also get the
> patch number added to those build in between official releases.
[...]
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About