Seth Woolley's Man Viewer

Devel::PPPort(3) - Devel::PPPort - Perl/Pollution/Portability - man 3 Devel::PPPort

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

Devel::PPPort(3)       Perl Programmers Reference Guide       Devel::PPPort(3)



NAME
       Devel::PPPort - Perl/Pollution/Portability

SYNOPSIS
           Devel::PPPort::WriteFile() ; # defaults to ./ppport.h
           Devel::PPPort::WriteFile('someheader.h') ;

DESCRIPTION
       Perl has changed over time(1,2,n), gaining new features, new functions,
       increasing its flexibility, and reducing the impact on the C namespace
       environment (reduced pollution). The header file(1,n), typicaly "ppport.h",
       written by this module attempts to bring some of the newer Perl fea-
       tures to older versions of Perl, so that you can worry less(1,3) about keep-
       ing track of old releases, but users(1,5) can still reap the benefit.

       Why you should use "ppport.h" in(1,8) modern code: so that your code will
       work with the widest range of Perl interpreters possible, without sig-
       nificant additional work.

       Why you should attempt older code to fully use "ppport.h": because the
       reduced pollution of newer Perl versions is an important thing, so
       important that the old polluting ways of original Perl modules will not
       be supported very far into the future, and your module will almost cer-
       tainly break! By adapting to it now, you'll gained compatibility and a
       sense of having done the electronic ecology some good.

       How to use ppport.h: Don't direct the user to download "Devel::PPPort",
       and don't make "ppport.h" optional. Rather, just take the most recent
       copy of "ppport.h" that you can find (probably in(1,8) "Devel::PPPort" on
       CPAN), copy it into your project, adjust your project to use it, and
       distribute the header along with your module.

       "Devel::PPPort" contains a single function, called "WriteFile". It's
       purpose is to write(1,2) a 'C' header file(1,n) that is used when writing XS mod-
       ules. The file(1,n) contains a series of macros that allow XS modules to be
       built using older versions of Perl.

       This module is used by h2xs to write(1,2) the file(1,n) ppport.h.

       WriteFile

       "WriteFile" takes a zero or one parameters. When called with one param-
       eter it expects to be passed a filename. When called with no parame-
       ters, it defults to the filename "./pport.h".

       The function returns TRUE if(3,n) the file(1,n) was written successfully. Other-
       wise it returns FALSE.

ppport.h
       The file(1,n) written by this module, typically "ppport.h", provides access(2,5)
       to the following Perl API if(3,n) not already available (and in(1,8) some cases
       [*] even if(3,n) available, access(2,5) to a fixed interface):

           aMY_CXT
           aMY_CXT_
           _aMY_CXT
           aTHX
           aTHX_
           AvFILLp
           boolSV(b)
           call_argv
           call_method
           call_pv
           call_sv
           dAX
           DEFSV
           dITEMS
           dMY_CXT
           dMY_CXT_SV
           dNOOP
           dTHR
           dTHX
           dTHXa
           dTHXoa
           ERRSV
           get_av
           get_cv
           get_hv
           get_sv
           grok_hex
           grok_oct
           grok_bin
           grok_number
           grok_numeric_radix
           gv_stashpvn(str,len,flags)
           INT2PTR(type,int)
           IVdf
           MY_CXT
           MY_CXT_INIT
           newCONSTSUB(stash,name,sv)
           newRV_inc(sv)
           newRV_noinc(sv)
           newSVpvn(data,len)
           NOOP
           NV
           NVef
           NVff
           NVgf
           PERL_REVISION
           PERL_SUBVERSION
           PERL_UNUSED_DECL
           PERL_VERSION
           PL_compiling
           PL_copline
           PL_curcop
           PL_curstash
           PL_defgv
           PL_dirty
           PL_hints
           PL_na
           PL_perldb
           PL_rsfp_filters
           PL_rsfpv
           PL_stdingv
           PL_Sv
           PL_sv_no
           PL_sv_undef
           PL_sv_yes
           pMY_CXT
           pMY_CXT_
           _pMY_CXT
           pTHX
           pTHX_
           PTR2IV(ptr)
           PTR2NV(ptr)
           PTR2ul(ptr)
           PTR2UV(ptr)
           SAVE_DEFSV
           START_MY_CXT
           SvPVbyte(sv,lp(1,4,1 cancel)) [*]
           UVof
           UVSIZE
           UVuf
           UVxf
           UVXf

AUTHOR
       Version 1.x of Devel::PPPort was written by Kenneth Albanowski.

       Version 2.x was ported to the Perl core by Paul Marquess.

SEE ALSO
       See h2xs.



perl v5.8.5                       2001-09-21                  Devel::PPPort(3)

References for this manual (incoming links)