develooper Front page | perl.perl5.build | Postings from February 2004

Re: {pm,xs}_apiversion

Thread Previous | Thread Next
From:
H.Merijn Brand
Date:
February 17, 2004 06:39
Subject:
Re: {pm,xs}_apiversion
Message ID:
20040217151714.50D0.H.M.BRAND@hccnet.nl
On Tue 17 Feb 2004 15:13, Rafael Garcia-Suarez <rgarciasuarez@free.fr> wrote:
> Configure defines two variables, pm_apiversion and xs_apiversion, that
> are said to be used to include additional directories in @INC (according
> to Porting/Glossary). However, unless I'm missing something, these
> variables appear to be completely unused.
> 
> Should they be removed ?

Configure gets it from metaconfig/U/perl/xs_apiversion.U

If they are to be removed, it has to be removed from:

perl-current/Changes5.6
perl-current/Porting/config.sh
perl-current/Porting/Glossary
perl-current/Porting/config_H
perl-current/config_h.SH		<-- Expl skipped in scanning
perl-current/configure.com
perl-current/epoc/config.sh
perl-current/Cross/config.sh-arm-linux
perl-current/Configure			<-- Expl skipped in scanning
perl-current/lib/Config.pod
perl-current/lib/Config.pm
perl-current/plan9/config.plan9
perl-current/plan9/config_h.sample
perl-current/plan9/config_sh.sample
perl-current/pod/perltoc.pod
perl-current/uconfig.h
perl-current/uconfig.sh
perl-current/win32/config.bc
perl-current/win32/config.gc
perl-current/win32/config.vc
perl-current/win32/config_H.bc
perl-current/win32/config_H.gc
perl-current/win32/config_H.vc
perl-current/win32/config.vc64
perl-current/win32/config_H.vc64
perl-current/NetWare/config_H.wc
perl-current/NetWare/config.wc
perl-current/wince/config_H.ce
perl-current/wince/config.ce
perl-current/Changes5.8
perl-current/U/all/xs_apiversion.U
perl-current/U/perl/xs_apiversion.U
perl-current/config.sh
perl-current/config.h
perl-current/Wanted



The scanned list of files comes from MANIFEST.new, which is
a symlink to MANIFEST, and it includes .c, .h, .y, .l, and .SH

l1:/pro/3gl/CPAN/perl-current 117 > sed 's/[ \t].*//' < MANIFEST | grep -e '\.[chly]$' -e '\.SH$' | xargs grep -l -e pm_apiversion -e xs_apiversion
config_h.SH
uconfig.h
l1:/pro/3gl/CPAN/perl-current 118 >

the first is skipped, so the second should be the troublemaker:


After this change:

l1:/pro/3gl/CPAN/perl-current 122 > diff -pu /{a5,l1}$pc/uconfig.h
--- /a5/pro/3gl/CPAN/perl-current/uconfig.h     2003-08-12 15:08:08.000000000 +0200
+++ /l1/pro/3gl/CPAN/perl-current/uconfig.h     2004-02-17 15:34:41.000000000 +0100
@@ -3357,41 +3357,6 @@
 /*#define      USE_SOCKS               / **/
 #endif

-/* PERL_XS_APIVERSION:
- *     This variable contains the version of the oldest perl binary
- *     compatible with the present perl.  perl.c:incpush() and
- *     lib/lib.pm will automatically search in  for older
- *     directories across major versions back to xs_apiversion.
- *     This is only useful if you have a perl library directory tree
- *     structured like the default one.
- *     See INSTALL for how this works.
- *     The versioned site_perl directory was introduced in 5.005,
- *     so that is the lowest possible value.
- *     Since this can depend on compile time options
- *     it is set by Configure.  Other non-default sources
- *     of potential incompatibility, such as multiplicity, threads,
- *     debugging, 64bits, sfio, etc., are not checked for currently,
- *     though in principle we could go snooping around in old
- *     Config.pm files.
- */
-/* PERL_PM_APIVERSION:
- *     This variable contains the version of the oldest perl
- *     compatible with the present perl.  (That is, pure perl modules
- *     written for pm_apiversion will still work for the current
- *     version).  perl.c:incpush() and lib/lib.pm will automatically
- *     search in  for older directories across major versions
- *     back to pm_apiversion.  This is only useful if you have a perl
- *     library directory tree structured like the default one.  The
- *     versioned site_perl library was introduced in 5.005, so that's
- *     the default setting for this variable.  It's hard to imagine
- *     it changing before Perl6.  It is included here for symmetry
- *     with xs_apiveprsion -- the searching algorithms will
- *     (presumably) be similar.
- *     See the INSTALL file for how this works.
- */
-#define PERL_XS_APIVERSION "5.008"
-#define PERL_PM_APIVERSION "5.005"
-
 /* HAS_DRAND48_PROTO:
  *     This symbol, if defined, indicates that the system provides
  *     a prototype for the drand48() function.  Otherwise, it is up
Exit 1
l1:/pro/3gl/CPAN/perl-current 123 >

I regenerated Configure.

l1:/pro/3gl/CPAN/perl-current 126 > grep _apiversion Configure
Exit 1
l1:/pro/3gl/CPAN/perl-current 127 >

Which proves that removing it there is enough.
Now if noone objects, you should regenerate (I guess that I should) all the
other files, and manually remove the junk left from all the OS specific files
in vms, win32, etc

And remember that everything 5.8.x and below still use Our set

-- 
H.Merijn Brand        Amsterdam Perl Mongers (http://amsterdam.pm.org/)
using perl-5.6.1, 5.8.0, & 5.9.x, and 806 on  HP-UX 10.20 & 11.00, 11i,
   AIX 4.3, SuSE 8.2, and Win2k.           http://www.cmve.net/~merijn/
http://archives.develooper.com/daily-build@perl.org/   perl-qa@perl.org
send smoke reports to: smokers-reports@perl.org, QA: http://qa.perl.org


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