Manual Pages for UNIX Darwin command on man Devel::PPPort
MyWebUniversity

Manual Pages for UNIX Darwin command on man Devel::PPPort

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

NAME

Devel::PPPort - Perl/Pollution/Portability

SYNOPSIS

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

Devel::PPPort::WriteFile('someheader.h');

DESCRIPTION

Perl's API has changed over time, gaining new features, new functions, increasing its flexibility, and reducing the impact on the C namespace

environment (reduced pollution). The header file written by this mod-

ule, typically ppport.h, attempts to bring some of the newer Perl API features to older versions of Perl, so that you can worry less about keeping track of old releases, but users can still reap the benefit.

"Devel::PPPort" contains a single function, called "WriteFile". Its

only purpose is to write the ppport.h C header file. This file contains a series of macros and, if explicitly requested, functions that allow XS modules to be built using older versions of Perl. Currently, Perl versions from 5.003 to 5.9.3 are supported. This module is used by "h2xs" to write the file ppport.h. WWhhyy uussee ppppppoorrtt..hh?? You should use ppport.h in modern code so that your code will work with the widest range of Perl interpreters possible, without significant additional work. You should attempt older code to fully use ppport.h, because the reduced pollution of newer Perl versions is an important thing. It's 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 gain compatibility and a sense of having done the electronic ecology some good. HHooww ttoo uussee ppppppoorrtt..hh

Don't direct the users of your module to download "Devel::PPPort".

They are most probably no XS writers. Also, don't make ppport.h optional. Rather, 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 with your module. RRuunnnniinngg ppppppoorrtt..hh But ppport.h is more than just a C header. It's also a Perl script that can check your source code. It will suggest hints and portability notes, and can even make suggestions on how to change your code. You can run it like any other Perl program: perl ppport.h [options] [files] It also has embedded documentation, so you can use perldoc ppport.h to find out more about how to use it. FFUUNNCCTTIIOONNSS WWrriitteeFFiillee "WriteFile" takes one optional argument. When called with one argument, it expects to be passed a filename. When called with no arguments, it defaults to the filename ppport.h. The function returns a true value if the file was written successfully. Otherwise it returns a false value. CCOOMMPPAATTIIBBIILLIITTYY ppport.h supports Perl versions from 5.003 to 5.9.3 in threaded and

non-threaded configurations.

PPrroovviiddeedd PPeerrll ccoommppaattiibbiilliittyy AAPPII The header file written by this module, typically ppport.h, provides access to the following elements of the Perl API that is not available in older Perl releases: aMYCXT pMYCXT aMYCXT aMYCXT aTHX aTHX AvFILLp boolSV callargv callmethod callpv callsv CopFILE CopFILEset CopFILEAV CopFILEGV CopFILEGVset CopFILESV CopSTASH CopSTASHeq CopSTASHset CopSTASHPV CopSTASHPVset CopyD dAX DEFSV dITEMS dMYCXT dMYCXTSV dNOOP dTHR dTHX dTHXa dTHXoa dUNDERBAR dXCPT dXSTARG ENDEXTERNC ERRSV evalpv evalsv EXTERNC getav getcv gethv getsv grokbin grokhex groknumber GROKNUMERICRADIX groknumericradix grokoct gvstashpvn INLOCALE INLOCALECOMPILETIME INLOCALERUNTIME INPERLCOMPILETIME INT2PTR ISNUMBERGREATERTHANUVMAX ISNUMBERINUV ISNUMBERINFINITY ISNUMBERNAN ISNUMBERNEG ISNUMBERNOTINT IVdf IVSIZE IVTYPE memEQ memNE MoveD mPUSHi mPUSHn mPUSHp mPUSHu mXPUSHi mXPUSHn mXPUSHp mXPUSHu MYCXT MYCXTCLONE MYCXTINIT newCONSTSUB newRVinc newRVnoinc newSVpvn newSVuv NOOP NUM2PTR NVef NVff NVgf NVTYPE PERLBCDVERSION PERLGCCBRACEGROUPSFORBIDDEN PERLINTMAX PERLINTMIN PERLLONGMAX PERLLONGMIN PERLMAGICarylen PERLMAGICbackref PERLMAGICbm PERLMAGICcollxfrm PERLMAGICdbfile PERLMAGICdbline PERLMAGICdefelem PERLMAGICenv PERLMAGICenvelem PERLMAGICext PERLMAGICfm PERLMAGICglob PERLMAGICisa PERLMAGICisaelem PERLMAGICmutex PERLMAGICnkeys PERLMAGICoverload PERLMAGICoverloadelem PERLMAGICoverloadtable PERLMAGICpos PERLMAGICqr PERLMAGICregdata PERLMAGICregdatum PERLMAGICregexglobal PERLMAGICshared PERLMAGICsharedscalar PERLMAGICsig PERLMAGICsigelem PERLMAGICsubstr PERLMAGICsv PERLMAGICtaint PERLMAGICtied PERLMAGICtiedelem PERLMAGICtiedscalar PERLMAGICutf8 PERLMAGICuvar PERLMAGICuvarelem PERLMAGICvec PERLMAGICvstring PERLQUADMAX PERLQUADMIN PERLREVISION PERLSCANALLOWUNDERSCORES PERLSCANDISALLOWPREFIX PERLSCANGREATERTHANUVMAX PERLSCANSILENTILLDIGIT PERLSHORTMAX PERLSHORTMIN PERLSUBVERSION PERLUCHARMAX PERLUCHARMIN PERLUINTMAX PERLUINTMIN PERLULONGMAX PERLULONGMIN PERLUNUSEDDECL PERLUQUADMAX PERLUQUADMIN PERLUSHORTMAX PERLUSHORTMIN PERLVERSION PLcompiling PLcopline PLcurcop PLcurstash PLDBsingle PLDBsub PLdebstash PLdefgv PLdiehook PLdirty PLdowarn PLerrgv PLhexdigit PLhints PLna PLnomodify PLperldestructlevel PLperldb PLppaddr PLrsfp PLrsfpfilters PLstackbase PLstacksp PLstdingv PLSv PLsvarenaroot PLsvno PLsvundef PLsvyes PLtainted PLtainting pMYCXT pMYCXT Poison pTHX pTHX PTR2IV PTR2NV PTR2ul PTR2UV PTRV PUSHmortal PUSHu SAVEDEFSV STARTEXTERNC STARTMYCXT STMTEND STMTSTART sv2pvnolen sv2pvbyte sv2uv svcatpvmg svcatpvfmg svcatpvfmgnocontext svcatpvnmg svcatpvnnomg svcatsvmg svcatsvnomg svpvn svpvnforce svpvnnomg svsetivmg svsetnvmg svsetpvmg svsetpvfmg svsetpvfmgnocontext svsetpvnmg svsetsvmg svsetsvnomg svsetuv svsetuvmg svusepvnmg svuv svvcatpvf svvcatpvfmg svvsetpvf svvsetpvfmg SvGETMAGIC SvIVnomg SvPVforcenomg SvPVnolen SvPVnomg SvPVbyte SvUV SvUVnomg SvUVX SvUVx SvUVXx UNDERBAR UVof UVSIZE UVTYPE UVuf UVXf UVxf vnewSVpvf XCPTCATCH XCPTRETHROW XCPTTRYEND XCPTTRYSTART XPUSHmortal XPUSHu XSRETURNUV XSTmUV ZeroD PPeerrll AAPPII nnoott ssuuppppoorrtteedd bbyy ppppppoorrtt..hh There is still a big part of the API not supported by ppport.h. Either

because it doesn't make sense to back-port that part of the API, or

simply because it hasn't been implemented yet. Patches welcome! Here's a list of the currently unsupported API, and also the version of Perl below which it is unsupported: perl 5.9.3 SvMAGICset SvRVset SvSTASHset SvUVset avarylenp dAXMARK hveiterp hveiterset hvnameset hvplaceholdersget hvplaceholdersp hvplaceholdersset hvriterp hvriterset isutf8stringloclen newSVhek newWHILEOP stashpvhvnamematch perl 5.9.2 SvPVbyteforce findrundefsvoffset gvfetchpvnflags gvfetchsv oprefcntlock oprefcntunlock savesvpv vnormal perl 5.9.1 hvassert hvclearplaceholders hvscalar scanversion sv2ivflags sv2uvflags perl 5.9.0 newversion savesetsvflags upgversion vcmp vnumify vstringify perl 5.8.3 SvIsCOW SvIsCOWsharedhash perl 5.8.1 SvVOK doingtaint isutf8stringloc packlist savebool savestackgrowcnt scanvstring svcatdecode svcompile2op svsetpviv svsetpvivmg unpackstring perl 5.8.0 hviternextflags hvstoreflags isutf8idcont nothreadhook perl 5.7.3 PerlIOclearerr PerlIOclose PerlIOeof PerlIOerror PerlIOfileno PerlIOfill PerlIOflush PerlIOgetbase PerlIOgetbufsiz PerlIOgetcnt PerlIOgetptr PerlIOread PerlIOseek PerlIOsetcnt PerlIOsetptrcnt PerlIOsetlinebuf PerlIOstderr PerlIOstdin PerlIOstdout PerlIOtell PerlIOunread PerlIOwrite SvLOCK SvSHARE SvUNLOCK atforklock atforkunlock customopdesc customopname deb debstack debstackptrs gvfetchmethautoload ibcmputf8 myfork mysocketpair packcat perldestruct pvunidisplay regclassswash savesharedpvref savesharedpv sortsv svcopypv svmagicext svnolocking svnosharing svnounlocking svrecodetoutf8 svunidisplay tounifold tounilower tounititle touniupper toutf8case toutf8fold toutf8lower toutf8title toutf8upper unpackstr uvchrtoutf8flags uvunitoutf8flags vdeb perl 5.7.2 calloc getcwdsv inittm malloc mfree minimktime myatof2 mystrftime opnull realloc sv2pvflags svcatpvnflags svcatsvflags svpvnforceflags svsetsvflags svutf8upgradeflags swashfetch perl 5.7.1 POPpbytex SvUOK bytesfromutf8 csighandler despatchsignals doopenn gvhandler islvaluesub mypopenlist newSVpvnshare savemortalizesv savepadsv scannum svforcenormalflags svsetrefuv svunrefflags svutf8upgrade utf8length utf8touvchr utf8touvuni utf8ntouvchr utf8ntouvuni uvchrtoutf8 uvunitoutf8 perl 5.6.1 applyattrsstring bytestoutf8 gvefullname4 gvfullname4 isutf8string savegenericpvref utf16toutf8 utf16toutf8reversed utf8tobytes perl 5.6.0 SvIOKUV SvIOKnotUV SvIOKonlyUV SvPOKonlyUTF8 SvPVbytenolen SvPVbytex SvPVbytexforce SvPVutf8 SvPVutf8force SvPVutf8nolen SvPVutf8x SvPVutf8xforce SvUTF8 SvUTF8off SvUTF8on avdelete avexists callatexit casti32 castiv castulong castuv dogvdump dogvgvdump dohvdump domagicdump doopdump doopen9 dopmopdump dosvdump dumpall dumpeval dumpform dumpindent dumppacksubs dumpsub dumpvindent getcontext getppaddr gvdump initi18nl10n initi18nl14n isunialnum isunialnumlc isunialnumc isunialnumclc isunialpha isunialphalc isuniascii isuniasciilc isunicntrl isunicntrllc isunidigit isunidigitlc isunigraph isunigraphlc isuniidfirst isuniidfirstlc isunilower isunilowerlc isuniprint isuniprintlc isunipunct isunipunctlc isunispace isunispacelc isuniupper isuniupperlc isunixdigit isunixdigitlc isutf8alnum isutf8alnumc isutf8alpha isutf8ascii isutf8char isutf8cntrl isutf8digit isutf8graph isutf8idfirst isutf8lower isutf8mark isutf8print isutf8punct isutf8space isutf8upper isutf8xdigit loadmodule magicdump mess myatof myfflushall newANONATTRSUB newATTRSUB newMYSUB newPADOP newXS newXSproto newcollate newctype newnumeric opdump perlparse pmopdump pvdisplay reintuitstart reintuitstring reginitcolors requirepv safesyscalloc safesysfree safesysmalloc safesysrealloc saveI8 savealloc savedestructor savedestructorx saverecontext savevptr scanbin setcontext setnumericlocal setnumericradix setnumericstandard strtoversion sv2pvutf8 sv2pvutf8nolen svforcenormal svlenutf8 svposb2u svposu2b svpv svpvbyte svpvbyten svpvbytenforce svpvutf8 svpvutf8n svpvutf8nforce svrvweaken svutf8decode svutf8downgrade svutf8encode swashinit tmpsgrow tounilowerlc tounititlelc touniupperlc utf8distance utf8hop vcroak vform vloadmodule vmess vwarn vwarner warner perl 5.00503 POPpx getvtbl savegenericsvref perl 5.005 PLmodglobal cxdump debop debprofdump fbmcompile fbminstr getopdescs getopnames initstacks mglength mgsize newHVhv newstackinfo regdump regexecflags regnext runopsdebug runopsstandard savehints saveiv savethreadsv screaminstr sviv svnv svpeek svtrue perl 5.00405 dobinmode saveaelem savehelem perl 5.004 GIMMEV GVOID HEfSVKEY HeHASH HeKEY HeKLEN HePV HeSVKEY HeSVKEYforce HeSVKEYset HeVAL SvSetMagicSV SvSetMagicSVnosteal SvSetSVnosteal SvTAINTED SvTAINTEDoff SvTAINTEDon blockgimme calllist cvconstsv delimcpy doopen form gvautoload4 gvefullname3 gvfetchmethodautoload gvfullname3 hvdelayfreeent hvdeleteent hvexistsent hvfetchent hvfreeent hviterkeysv hvksplit hvstoreent ibcmplocale myfailureexit mymemcmp mypclose mypopen newSVpvf rsignal rsignalstate saveI16 savegp startsubparse svcatpvf svcatpvfmg svcmplocale svderivedfrom svgets svsetpvf svsetpvfmg svtaint svtainted svuntaint svvcatpvf svvcatpvfmg svvcatpvfn svvsetpvf svvsetpvfmg svvsetpvfn unsharepvn vnewSVpvf

BUGS

If you find any bugs, "Devel::PPPort" doesn't seem to build on your

system or any of its tests fail, please use the CPAN Request Tracker at to create a ticket for the module. AUTHORS

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

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

+o Version 3.x was ported back to CPAN by Marcus Holland-Moritz.

COPYRIGHT

Version 3.x, Copyright (C) 2004-2005, Marcus Holland-Moritz.

Version 2.x, Copyright (C) 2001, Paul Marquess. Version 1.x, Copyright (C) 1999, Kenneth Albanowski. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

See h2xs, ppport.h.

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




Contact us      |      About us      |      Term of use      |       Copyright © 2000-2019 MyWebUniversity.com ™