[HACKERS] PL_stashcache, or, what's our minimum Perl version? - Mailing list pgsql-hackers

From Tom Lane
Subject [HACKERS] PL_stashcache, or, what's our minimum Perl version?
Date
Msg-id 20540.1501210115@sss.pgh.pa.us
Whole thread Raw
Responses Re: [HACKERS] PL_stashcache, or, what's our minimum Perl version?
Re: [HACKERS] PL_stashcache, or, what's our minimum Perl version?
List pgsql-hackers
I wanted to do some portability testing on the recently-proposed
plperl changes, so I tried to build against a 5.8.0 Perl that I had
laying about.  It blew up real good:

plperl.c: In function `plperl_trusted_init':
plperl.c:1017: `PL_stashcache' undeclared (first use in this function)
plperl.c:1017: (Each undeclared identifier is reported only once
plperl.c:1017: for each function it appears in.)
make: *** [plperl.o] Error 1

It's complaining about this:
/* invalidate assorted caches */++PL_sub_generation;hv_clear(PL_stashcache);

which was introduced by you in commit 1f474d299 (2010-05-13).  Some
digging suggests that PL_stashcache was added in Perl 5.8.1 circa 2003,
although this is impressively underdocumented in any Perl changelog
that I could find.

So the question is, does anyone care?  I wouldn't except that our
documentation appears to claim that we work with Perl "5.8 or later".
And the lack of field complaints suggests strongly that nobody else
cares.  So I'm inclined to think we just need to be more specific
about the minimum Perl version --- but what exactly?  Alternatively,
can we make this work with 5.8.0?  It looks like PL_stashcache is
a macro, so we could make it compile with an "#ifdef PL_stashcache",
but I'm pretty nervous about whether that would be breaking needed
cleanup behavior.
        regards, tom lane



pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: LP_DEAD hinting and not holding on to a buffer pin on leaf page(Was: [HACKERS] [WIP] Zipfian distribution in pgbench)
Next
From: Tatsuo Ishii
Date:
Subject: Re: [HACKERS] Incorrect comment of XLByteToSeg() andXLByteToPrevSeg()