File Coverage

blib/lib/Devel/PPPort.pm
Criterion Covered Total %
statement 25 25 100.0
branch 3 4 75.0
condition 3 4 75.0
subroutine 5 5 100.0
pod 2 2 100.0
total 38 40 95.0


line stmt bran cond sub pod time code
1             ################################################################################
2             #
3             # !!!!! Do NOT edit this file directly! -- Edit PPPort_pm.PL instead. !!!!!
4             #
5             # This file was automatically generated from the definition files in the
6             # parts/inc/ subdirectory by PPPort_pm.PL. To learn more about how all this
7             # works, please read the F file that came with this distribution.
8             #
9             ################################################################################
10             #
11             # Perl/Pollution/Portability
12             #
13             ################################################################################
14             #
15             # Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
16             # Copyright (C) 2018, The perl5 porters
17             # Version 2.x, Copyright (C) 2001, Paul Marquess.
18             # Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
19             #
20             # This program is free software; you can redistribute it and/or
21             # modify it under the same terms as Perl itself.
22             #
23             ################################################################################
24              
25             =head1 NAME
26              
27             Devel::PPPort - Perl/Pollution/Portability
28              
29             =head1 SYNOPSIS
30              
31             Devel::PPPort::WriteFile(); # defaults to ./ppport.h
32             Devel::PPPort::WriteFile('someheader.h');
33              
34             # Same as above but retrieve contents rather than write file
35             my $contents = Devel::PPPort::GetFileContents();
36             my $contents = Devel::PPPort::GetFileContents('someheader.h');
37              
38             =head1 Start using Devel::PPPort for XS projects
39              
40             $ cpan Devel::PPPort
41             $ perl -MDevel::PPPort -e'Devel::PPPort::WriteFile'
42             $ perl ppport.h --compat-version=5.6.1 --patch=diff.patch *.xs
43             $ patch -p0 < diff.patch
44             $ echo ppport.h >>MANIFEST
45              
46             =head1 DESCRIPTION
47              
48             Perl's API has changed over time, gaining new features, new functions,
49             increasing its flexibility, and reducing the impact on the C namespace
50             environment (reduced pollution). The header file written by this module,
51             typically F, attempts to bring some of the newer Perl API
52             features to older versions of Perl, so that you can worry less about
53             keeping track of old releases, but users can still reap the benefit.
54              
55             C contains two functions, C and C.
56             C's only purpose is to write the F C header file.
57             This file contains a series of macros and, if explicitly requested, functions
58             that allow XS modules to be built using older versions of Perl. Currently,
59             Perl versions from 5.003 to 5.30 are supported.
60              
61             C can be used to retrieve the file contents rather than
62             writing it out.
63              
64             This module is used by C to write the file F.
65              
66             =head2 Why use ppport.h?
67              
68             You should use F in modern code so that your code will work
69             with the widest range of Perl interpreters possible, without significant
70             additional work.
71              
72             You should attempt older code to fully use F, because the
73             reduced pollution of newer Perl versions is an important thing. It's so
74             important that the old polluting ways of original Perl modules will not be
75             supported very far into the future, and your module will almost certainly
76             break! By adapting to it now, you'll gain compatibility and a sense of
77             having done the electronic ecology some good.
78              
79             =head2 How to use ppport.h
80              
81             Don't direct the users of your module to download C.
82             They are most probably no XS writers. Also, don't make F
83             optional. Rather, just take the most recent copy of F that
84             you can find (e.g. by generating it with the latest C
85             release from CPAN), copy it into your project, adjust your project to
86             use it, and distribute the header along with your module.
87              
88             =head2 Running ppport.h
89              
90             But F is more than just a C header. It's also a Perl script
91             that can check your source code. It will suggest hints and portability
92             notes, and can even make suggestions on how to change your code. You
93             can run it like any other Perl program:
94              
95             perl ppport.h [options] [files]
96              
97             It also has embedded documentation, so you can use
98              
99             perldoc ppport.h
100              
101             to find out more about how to use it.
102              
103             =head1 FUNCTIONS
104              
105             =head2 WriteFile
106              
107             C takes one optional argument. When called with one
108             argument, it expects to be passed a filename. When called with
109             no arguments, it defaults to the filename F.
110              
111             The function returns a true value if the file was written successfully.
112             Otherwise it returns a false value.
113              
114             =head2 GetFileContents
115              
116             C behaves like C above, but returns the contents
117             of the would-be file rather than writing it out.
118              
119             =head1 COMPATIBILITY
120              
121             F supports Perl versions from 5.003 to 5.30
122             in threaded and non-threaded configurations.
123              
124             =head2 Provided Perl compatibility API
125              
126             The header file written by this module, typically F, provides
127             access to the following elements of the Perl API that is not available
128             in older Perl releases:
129              
130             __ASSERT_
131             _aMY_CXT
132             _pMY_CXT
133             aMY_CXT
134             aMY_CXT_
135             aTHX
136             aTHX_
137             aTHXR
138             aTHXR_
139             av_tindex
140             av_top_index
141             AvFILLp
142             boolSV
143             C_ARRAY_END
144             C_ARRAY_LENGTH
145             call_argv
146             call_method
147             call_pv
148             call_sv
149             caller_cx
150             cBOOL
151             ckWARN
152             CopFILE
153             CopFILE_set
154             CopFILEAV
155             CopFILEGV
156             CopFILEGV_set
157             CopFILESV
158             CopSTASH
159             CopSTASH_eq
160             CopSTASH_set
161             CopSTASHPV
162             CopSTASHPV_set
163             CopyD
164             CPERLscope
165             croak_memory_wrap
166             croak_no_modify
167             croak_no_modify_sv
168             croak_nocontext
169             croak_sv
170             croak_xs_usage
171             dAX
172             dAXMARK
173             DEFSV
174             DEFSV_set
175             die_sv
176             dITEMS
177             dMY_CXT
178             dMY_CXT_SV
179             dNOOP
180             dTHR
181             dTHX
182             dTHXa
183             dTHXoa
184             dTHXR
185             dUNDERBAR
186             dVAR
187             dXCPT
188             dXSTARG
189             END_EXTERN_C
190             ERRSV
191             eval_pv
192             eval_sv
193             EXTERN_C
194             G_METHOD
195             get_av
196             get_cv
197             get_cvn_flags
198             get_cvs
199             get_hv
200             get_sv
201             grok_bin
202             grok_hex
203             grok_number
204             GROK_NUMERIC_RADIX
205             grok_numeric_radix
206             grok_oct
207             gv_fetchmethod_flags
208             gv_fetchpvn
209             gv_fetchpvn_flags
210             gv_fetchpvs
211             gv_fetchsv
212             gv_init_pv
213             gv_init_pvn
214             gv_init_sv
215             GV_NOADD_MASK
216             gv_stashpvn
217             gv_stashpvs
218             GvSVn
219             HEf_SVKEY
220             HeUTF8
221             hv_fetchs
222             hv_stores
223             HvENAME
224             HvENAMELEN
225             HvENAMEUTF8
226             HvNAME_get
227             HvNAMELEN
228             HvNAMELEN_get
229             HvNAMEUTF8
230             IN_LOCALE
231             IN_LOCALE_COMPILETIME
232             IN_LOCALE_RUNTIME
233             IN_PERL_COMPILETIME
234             INT2PTR
235             IS_NUMBER_GREATER_THAN_UV_MAX
236             IS_NUMBER_IN_UV
237             IS_NUMBER_INFINITY
238             IS_NUMBER_NAN
239             IS_NUMBER_NEG
240             IS_NUMBER_NOT_INT
241             isALNUM
242             isALNUM_A
243             isALNUMC
244             isALNUMC_A
245             isALPHA
246             isALPHA_A
247             isALPHANUMERIC
248             isALPHANUMERIC_A
249             isASCII
250             isASCII_A
251             isBLANK
252             isBLANK_A
253             isCNTRL
254             isCNTRL_A
255             isDIGIT
256             isDIGIT_A
257             isGRAPH
258             isGRAPH_A
259             isGV_with_GP
260             isIDCONT
261             isIDCONT_A
262             isIDFIRST
263             isIDFIRST_A
264             isLOWER
265             isLOWER_A
266             isOCTAL
267             isOCTAL_A
268             isPRINT
269             isPRINT_A
270             isPSXSPC
271             isPSXSPC_A
272             isPUNCT
273             isPUNCT_A
274             isSPACE
275             isSPACE_A
276             isUPPER
277             isUPPER_A
278             isWORDCHAR
279             isWORDCHAR_A
280             isXDIGIT
281             isXDIGIT_A
282             IVdf
283             IVSIZE
284             IVTYPE
285             LIKELY
286             load_module
287             memEQ
288             memEQs
289             memNE
290             memNEs
291             mess
292             mess_nocontext
293             mess_sv
294             mg_findext
295             MoveD
296             mPUSHi
297             mPUSHn
298             mPUSHp
299             mPUSHs
300             mPUSHu
301             MUTABLE_PTR
302             MUTABLE_SV
303             mXPUSHi
304             mXPUSHn
305             mXPUSHp
306             mXPUSHs
307             mXPUSHu
308             MY_CXT
309             MY_CXT_CLONE
310             MY_CXT_INIT
311             my_snprintf
312             my_sprintf
313             my_strlcat
314             my_strlcpy
315             my_strnlen
316             newCONSTSUB
317             newRV_inc
318             newRV_noinc
319             newSV_type
320             newSVpvn
321             newSVpvn_flags
322             newSVpvn_share
323             newSVpvn_utf8
324             newSVpvs
325             newSVpvs_flags
326             newSVpvs_share
327             newSVuv
328             Newx
329             Newxc
330             Newxz
331             NOOP
332             NUM2PTR
333             NVef
334             NVff
335             NVgf
336             NVTYPE
337             OpHAS_SIBLING
338             OpLASTSIB_set
339             OpMAYBESIB_set
340             OpMORESIB_set
341             OpSIBLING
342             packWARN
343             PERL_ABS
344             PERL_ARGS_ASSERT_CROAK_XS_USAGE
345             PERL_BCDVERSION
346             Perl_croak_no_modify
347             PERL_GCC_BRACE_GROUPS_FORBIDDEN
348             PERL_HASH
349             PERL_INT_MAX
350             PERL_INT_MIN
351             PERL_LONG_MAX
352             PERL_LONG_MIN
353             PERL_MAGIC_arylen
354             PERL_MAGIC_backref
355             PERL_MAGIC_bm
356             PERL_MAGIC_collxfrm
357             PERL_MAGIC_dbfile
358             PERL_MAGIC_dbline
359             PERL_MAGIC_defelem
360             PERL_MAGIC_env
361             PERL_MAGIC_envelem
362             PERL_MAGIC_ext
363             PERL_MAGIC_fm
364             PERL_MAGIC_glob
365             PERL_MAGIC_isa
366             PERL_MAGIC_isaelem
367             PERL_MAGIC_mutex
368             PERL_MAGIC_nkeys
369             PERL_MAGIC_overload
370             PERL_MAGIC_overload_elem
371             PERL_MAGIC_overload_table
372             PERL_MAGIC_pos
373             PERL_MAGIC_qr
374             PERL_MAGIC_regdata
375             PERL_MAGIC_regdatum
376             PERL_MAGIC_regex_global
377             PERL_MAGIC_shared
378             PERL_MAGIC_shared_scalar
379             PERL_MAGIC_sig
380             PERL_MAGIC_sigelem
381             PERL_MAGIC_substr
382             PERL_MAGIC_sv
383             PERL_MAGIC_taint
384             PERL_MAGIC_tied
385             PERL_MAGIC_tiedelem
386             PERL_MAGIC_tiedscalar
387             PERL_MAGIC_utf8
388             PERL_MAGIC_uvar
389             PERL_MAGIC_uvar_elem
390             PERL_MAGIC_vec
391             PERL_MAGIC_vstring
392             PERL_PV_ESCAPE_ALL
393             PERL_PV_ESCAPE_FIRSTCHAR
394             PERL_PV_ESCAPE_NOBACKSLASH
395             PERL_PV_ESCAPE_NOCLEAR
396             PERL_PV_ESCAPE_QUOTE
397             PERL_PV_ESCAPE_RE
398             PERL_PV_ESCAPE_UNI
399             PERL_PV_ESCAPE_UNI_DETECT
400             PERL_PV_PRETTY_DUMP
401             PERL_PV_PRETTY_ELLIPSES
402             PERL_PV_PRETTY_LTGT
403             PERL_PV_PRETTY_NOCLEAR
404             PERL_PV_PRETTY_QUOTE
405             PERL_PV_PRETTY_REGPROP
406             PERL_QUAD_MAX
407             PERL_QUAD_MIN
408             PERL_REVISION
409             PERL_SCAN_ALLOW_UNDERSCORES
410             PERL_SCAN_DISALLOW_PREFIX
411             PERL_SCAN_GREATER_THAN_UV_MAX
412             PERL_SCAN_SILENT_ILLDIGIT
413             PERL_SHORT_MAX
414             PERL_SHORT_MIN
415             PERL_SIGNALS_UNSAFE_FLAG
416             PERL_SUBVERSION
417             PERL_UCHAR_MAX
418             PERL_UCHAR_MIN
419             PERL_UINT_MAX
420             PERL_UINT_MIN
421             PERL_ULONG_MAX
422             PERL_ULONG_MIN
423             PERL_UNUSED_ARG
424             PERL_UNUSED_CONTEXT
425             PERL_UNUSED_DECL
426             PERL_UNUSED_RESULT
427             PERL_UNUSED_VAR
428             PERL_UQUAD_MAX
429             PERL_UQUAD_MIN
430             PERL_USE_GCC_BRACE_GROUPS
431             PERL_USHORT_MAX
432             PERL_USHORT_MIN
433             PERL_VERSION
434             Perl_warner
435             Perl_warner_nocontext
436             PERLIO_FUNCS_CAST
437             PERLIO_FUNCS_DECL
438             PL_bufend
439             PL_bufptr
440             PL_compiling
441             PL_copline
442             PL_curcop
443             PL_curstash
444             PL_DBsignal
445             PL_DBsingle
446             PL_DBsub
447             PL_DBtrace
448             PL_debstash
449             PL_defgv
450             PL_diehook
451             PL_dirty
452             PL_dowarn
453             PL_errgv
454             PL_error_count
455             PL_expect
456             PL_hexdigit
457             PL_hints
458             PL_in_class
459             PL_in_my
460             PL_in_my_stash
461             PL_in_pod
462             PL_in_sub
463             PL_laststatval
464             PL_lex_state
465             PL_lex_stuff
466             PL_linestr
467             PL_na
468             PL_no_modify
469             PL_parser
470             PL_perl_destruct_level
471             PL_perldb
472             PL_ppaddr
473             PL_rsfp
474             PL_rsfp_filters
475             PL_signals
476             PL_stack_base
477             PL_stack_sp
478             PL_statcache
479             PL_stdingv
480             PL_Sv
481             PL_sv_arenaroot
482             PL_sv_no
483             PL_sv_undef
484             PL_sv_yes
485             PL_tainted
486             PL_tainting
487             PL_tokenbuf
488             pMY_CXT
489             pMY_CXT_
490             Poison
491             PoisonFree
492             PoisonNew
493             PoisonWith
494             pTHX
495             pTHX_
496             PTR2IV
497             PTR2nat
498             PTR2NV
499             PTR2ul
500             PTR2UV
501             PTRV
502             PUSHmortal
503             PUSHu
504             pv_display
505             pv_escape
506             pv_pretty
507             SAVE_DEFSV
508             START_EXTERN_C
509             START_MY_CXT
510             STMT_END
511             STMT_START
512             STR_WITH_LEN
513             sv_2pv_flags
514             sv_2pv_nolen
515             sv_2pvbyte
516             sv_2pvbyte_nolen
517             sv_2uv
518             sv_catpv_mg
519             sv_catpvf_mg
520             sv_catpvf_mg_nocontext
521             sv_catpvn_mg
522             sv_catpvn_nomg
523             sv_catpvs
524             sv_catsv_mg
525             sv_catsv_nomg
526             SV_CONST_RETURN
527             SV_COW_DROP_PV
528             SV_COW_SHARED_HASH_KEYS
529             SV_GMAGIC
530             SV_HAS_TRAILING_NUL
531             SV_IMMEDIATE_UNREF
532             sv_magic_portable
533             SV_MUTABLE_RETURN
534             SV_NOSTEAL
535             sv_pvn_force_flags
536             sv_pvn_nomg
537             sv_setiv_mg
538             sv_setnv_mg
539             sv_setpv_mg
540             sv_setpvf_mg
541             sv_setpvf_mg_nocontext
542             sv_setpvn_mg
543             sv_setpvs
544             sv_setsv_mg
545             sv_setsv_nomg
546             sv_setuv
547             sv_setuv_mg
548             SV_SMAGIC
549             sv_unmagicext
550             sv_usepvn_mg
551             SV_UTF8_NO_ENCODING
552             sv_uv
553             sv_vcatpvf
554             sv_vcatpvf_mg
555             sv_vsetpvf
556             sv_vsetpvf_mg
557             SVf
558             SVf_UTF8
559             SVfARG
560             SvGETMAGIC
561             SvIV_nomg
562             SvMAGIC_set
563             SvPV_const
564             SvPV_flags
565             SvPV_flags_const
566             SvPV_flags_const_nolen
567             SvPV_flags_mutable
568             SvPV_force
569             SvPV_force_flags
570             SvPV_force_flags_mutable
571             SvPV_force_flags_nolen
572             SvPV_force_mutable
573             SvPV_force_nolen
574             SvPV_force_nomg
575             SvPV_force_nomg_nolen
576             SvPV_mutable
577             SvPV_nolen
578             SvPV_nolen_const
579             SvPV_nomg
580             SvPV_nomg_const
581             SvPV_nomg_const_nolen
582             SvPV_nomg_nolen
583             SvPV_renew
584             SvPVbyte
585             SvPVX_const
586             SvPVX_mutable
587             SvREFCNT_inc
588             SvREFCNT_inc_NN
589             SvREFCNT_inc_simple
590             SvREFCNT_inc_simple_NN
591             SvREFCNT_inc_simple_void
592             SvREFCNT_inc_simple_void_NN
593             SvREFCNT_inc_void
594             SvREFCNT_inc_void_NN
595             SvRV_set
596             SvRX
597             SvRXOK
598             SvSHARED_HASH
599             SvSTASH_set
600             SvUOK
601             SvUV
602             SvUV_nomg
603             SvUV_set
604             SvUVX
605             SvUVx
606             SvUVXx
607             SvVSTRING_mg
608             UNDERBAR
609             UNICODE_REPLACEMENT
610             UNLIKELY
611             UTF8_ALLOW_ANY
612             UTF8_ALLOW_ANYUV
613             UTF8_ALLOW_CONTINUATION
614             UTF8_ALLOW_EMPTY
615             UTF8_ALLOW_LONG
616             UTF8_ALLOW_NON_CONTINUATION
617             UTF8_ALLOW_OVERFLOW
618             UTF8_ALLOW_SHORT
619             UTF8_MAXBYTES
620             UTF8_SAFE_SKIP
621             utf8_to_uvchr
622             utf8_to_uvchr_buf
623             UVof
624             UVSIZE
625             UVTYPE
626             UVuf
627             UVXf
628             UVxf
629             vload_module
630             vmess
631             vnewSVpvf
632             WARN_ALL
633             WARN_AMBIGUOUS
634             WARN_ASSERTIONS
635             WARN_BAREWORD
636             WARN_CLOSED
637             WARN_CLOSURE
638             WARN_DEBUGGING
639             WARN_DEPRECATED
640             WARN_DIGIT
641             WARN_EXEC
642             WARN_EXITING
643             WARN_GLOB
644             WARN_INPLACE
645             WARN_INTERNAL
646             WARN_IO
647             WARN_LAYER
648             WARN_MALLOC
649             WARN_MISC
650             WARN_NEWLINE
651             warn_nocontext
652             WARN_NUMERIC
653             WARN_ONCE
654             WARN_OVERFLOW
655             WARN_PACK
656             WARN_PARENTHESIS
657             WARN_PIPE
658             WARN_PORTABLE
659             WARN_PRECEDENCE
660             WARN_PRINTF
661             WARN_PROTOTYPE
662             WARN_QW
663             WARN_RECURSION
664             WARN_REDEFINE
665             WARN_REGEXP
666             WARN_RESERVED
667             WARN_SEMICOLON
668             WARN_SEVERE
669             WARN_SIGNAL
670             WARN_SUBSTR
671             warn_sv
672             WARN_SYNTAX
673             WARN_TAINT
674             WARN_THREADS
675             WARN_UNINITIALIZED
676             WARN_UNOPENED
677             WARN_UNPACK
678             WARN_UNTIE
679             WARN_UTF8
680             WARN_VOID
681             warner
682             WIDEST_UTYPE
683             XCPT_CATCH
684             XCPT_RETHROW
685             XCPT_TRY_END
686             XCPT_TRY_START
687             XPUSHmortal
688             XPUSHu
689             XSprePUSH
690             XSPROTO
691             XSRETURN
692             XSRETURN_UV
693             XST_mUV
694             ZeroD
695              
696             =head2 Perl API not supported by ppport.h
697              
698             There is still a big part of the API not supported by F.
699             Either because it doesn't make sense to back-port that part of the API,
700             or simply because it hasn't been implemented yet. Patches welcome!
701              
702             Here's a list of the currently unsupported API, and also the version of
703             Perl below which it is unsupported:
704              
705             =over 4
706              
707             =item perl 5.24.0
708              
709             BhkDISABLE
710             BhkENABLE
711             BhkENTRY_set
712             MULTICALL
713             PERL_SYS_TERM
714             POP_MULTICALL
715             PUSH_MULTICALL
716             PadARRAY
717             PadMAX
718             PadlistARRAY
719             PadlistMAX
720             PadlistNAMES
721             PadlistNAMESARRAY
722             PadlistNAMESMAX
723             PadnameLEN
724             PadnamePV
725             PadnameREFCNT
726             PadnameREFCNT_dec
727             PadnameSV
728             PadnamelistARRAY
729             PadnamelistMAX
730             PadnamelistREFCNT
731             PadnamelistREFCNT_dec
732             RESTORE_LC_NUMERIC
733             STORE_LC_NUMERIC_FORCE_TO_UNDERLYING
734             STORE_LC_NUMERIC_SET_TO_NEEDED
735             XS_APIVERSION_BOOTCHECK
736             XS_EXTERNAL
737             XS_INTERNAL
738             XS_VERSION_BOOTCHECK
739             XopDISABLE
740             XopENABLE
741             XopENTRY
742             XopENTRYCUSTOM
743             XopENTRY_set
744             cophh_new_empty
745             my_lstat
746             my_stat
747             reentrant_free
748             reentrant_init
749             reentrant_retry
750             reentrant_size
751             ref
752             sv_setref_pvs
753              
754             =item perl 5.23.9
755              
756             toFOLD_uvchr
757             toLOWER_uvchr
758             toTITLE_uvchr
759             toUPPER_uvchr
760              
761             =item perl 5.23.8
762              
763             clear_defarray
764             cx_popblock
765             cx_popeval
766             cx_popformat
767             cx_popgiven
768             cx_poploop
769             cx_popsub
770             cx_popsub_args
771             cx_popsub_common
772             cx_popwhen
773             cx_pushblock
774             cx_pusheval
775             cx_pushformat
776             cx_pushgiven
777             cx_pushloop_for
778             cx_pushloop_plain
779             cx_pushsub
780             cx_pushwhen
781             cx_topblock
782             leave_adjust_stacks
783             savetmps
784              
785             =item perl 5.22.0
786              
787             UVCHR_SKIP
788              
789             =item perl 5.21.10
790              
791             DECLARATION_FOR_LC_NUMERIC_MANIPULATION
792              
793             =item perl 5.21.8
794              
795             sv_get_backrefs
796              
797             =item perl 5.21.7
798              
799             OpSIBLING_set
800             PadnameUTF8
801             is_invariant_string
802             newPADNAMELIST
803             newPADNAMEouter
804             newPADNAMEpvn
805             newUNOP_AUX
806             padnamelist_fetch
807             padnamelist_store
808              
809             =item perl 5.21.6
810              
811             newDEFSVOP
812             op_convert_list
813              
814             =item perl 5.21.5
815              
816             cv_name
817             newMETHOP
818             newMETHOP_named
819              
820             =item perl 5.21.4
821              
822             cv_set_call_checker_flags
823             grok_infnan
824             isinfnan
825             sync_locale
826              
827             =item perl 5.21.2
828              
829             grok_number_flags
830             op_parent
831             op_sibling_splice
832              
833             =item perl 5.21.1
834              
835             _is_in_locale_category
836             _is_utf8_char_slow
837             _is_utf8_idcont
838             _is_utf8_idstart
839             _is_utf8_xidcont
840             _is_utf8_xidstart
841             isALNUM_lazy
842             isIDFIRST_lazy
843             isUTF8_CHAR
844             markstack_grow
845             my_strerror
846              
847             =item perl 5.19.10
848              
849             OP_TYPE_IS_OR_WAS
850              
851             =item perl 5.19.9
852              
853             _to_utf8_fold_flags
854             _to_utf8_lower_flags
855             _to_utf8_title_flags
856             _to_utf8_upper_flags
857              
858             =item perl 5.19.7
859              
860             OP_TYPE_IS
861              
862             =item perl 5.19.4
863              
864             append_utf8_from_native_byte
865             is_safe_syscall
866             uvoffuni_to_utf8_flags
867              
868             =item perl 5.19.3
869              
870             sv_pos_b2u_flags
871              
872             =item perl 5.19.2
873              
874             SVt_INVLIST
875              
876             =item perl 5.19.1
877              
878             re_intuit_start
879             toFOLD
880             toFOLD_utf8
881             toLOWER_L1
882             toTITLE
883              
884             =item perl 5.18.0
885              
886             hv_rand_set
887              
888             =item perl 5.17.8
889              
890             _is_uni_FOO
891             _is_uni_perl_idcont
892             _is_utf8_FOO
893             _is_utf8_mark
894             _is_utf8_perl_idcont
895              
896             =item perl 5.17.7
897              
898             SvREFCNT_dec_NN
899             _is_uni_perl_idstart
900             _is_utf8_perl_idstart
901             is_uni_alnumc
902             is_uni_alnumc_lc
903             is_utf8_alnumc
904              
905             =item perl 5.17.6
906              
907             READ_XDIGIT
908              
909             =item perl 5.17.4
910              
911             PL_comppad_name
912             PadlistREFCNT
913             newMYSUB
914             newSVpadname
915              
916             =item perl 5.17.2
917              
918             is_uni_blank
919             is_uni_blank_lc
920             is_utf8_blank
921             sv_copypv_flags
922             sv_copypv_nomg
923             sv_vcatpvfn_flags
924              
925             =item perl 5.15.9
926              
927             utf8_to_uvuni_buf
928             valid_utf8_to_uvchr
929             valid_utf8_to_uvuni
930              
931             =item perl 5.15.8
932              
933             is_utf8_char_buf
934             wrap_op_checker
935              
936             =item perl 5.15.7
937              
938             toLOWER_utf8
939             toTITLE_utf8
940             toUPPER_utf8
941             to_utf8_fold
942             to_utf8_lower
943             to_utf8_title
944             to_utf8_upper
945              
946             =item perl 5.15.6
947              
948             newCONSTSUB_flags
949              
950             =item perl 5.15.4
951              
952             gv_autoload_pv
953             gv_autoload_pvn
954             gv_autoload_sv
955             gv_fetchmeth_pv
956             gv_fetchmeth_pv_autoload
957             gv_fetchmeth_pvn
958             gv_fetchmeth_pvn_autoload
959             gv_fetchmeth_sv
960             gv_fetchmeth_sv_autoload
961             gv_fetchmethod_pv_flags
962             gv_fetchmethod_pvn_flags
963             gv_fetchmethod_sv_flags
964             newGVgen_flags
965             sv_derived_from_pv
966             sv_derived_from_pvn
967             sv_derived_from_sv
968             sv_does_pv
969             sv_does_pvn
970             sv_does_sv
971             whichsig_pv
972             whichsig_pvn
973             whichsig_sv
974              
975             =item perl 5.15.1
976              
977             cop_fetch_label
978             cop_store_label
979             pad_add_name_pv
980             pad_add_name_pvn
981             pad_add_name_pvs
982             pad_add_name_sv
983             pad_findmy_pv
984             pad_findmy_pvn
985             pad_findmy_pvs
986             pad_findmy_sv
987              
988             =item perl 5.14.0
989              
990             _to_uni_fold_flags
991              
992             =item perl 5.13.10
993              
994             foldEQ_utf8_flags
995             is_utf8_xidcont
996             is_utf8_xidfirst
997              
998             =item perl 5.13.8
999              
1000             foldEQ_latin1
1001             parse_arithexpr
1002             parse_fullexpr
1003             parse_listexpr
1004             parse_termexpr
1005              
1006             =item perl 5.13.7
1007              
1008             OP_CLASS
1009             XopFLAGS
1010             amagic_deref_call
1011             bytes_cmp_utf8
1012             cop_hints_2hv
1013             cop_hints_fetch_pv
1014             cop_hints_fetch_pvn
1015             cop_hints_fetch_pvs
1016             cop_hints_fetch_sv
1017             cophh_2hv
1018             cophh_copy
1019             cophh_delete_pv
1020             cophh_delete_pvn
1021             cophh_delete_pvs
1022             cophh_delete_sv
1023             cophh_fetch_pv
1024             cophh_fetch_pvn
1025             cophh_fetch_pvs
1026             cophh_fetch_sv
1027             cophh_free
1028             cophh_store_pv
1029             cophh_store_pvn
1030             cophh_store_pvs
1031             cophh_store_sv
1032             custom_op_register
1033             custom_op_xop
1034             newFOROP
1035             newWHILEOP
1036             op_lvalue
1037             op_scope
1038             parse_barestmt
1039             parse_block
1040             parse_label
1041              
1042             =item perl 5.13.6
1043              
1044             LINKLIST
1045             SvTRUE_nomg
1046             ck_entersub_args_list
1047             ck_entersub_args_proto
1048             ck_entersub_args_proto_or_list
1049             cv_get_call_checker
1050             cv_set_call_checker
1051             lex_stuff_pv
1052             mg_free_type
1053             newSVpv_share
1054             op_append_elem
1055             op_append_list
1056             op_contextualize
1057             op_linklist
1058             op_prepend_elem
1059             parse_stmtseq
1060             rv2cv_op_cv
1061             savesharedpvs
1062             savesharedsvpv
1063             sv_2bool_flags
1064             sv_catpv_flags
1065             sv_catpv_nomg
1066             sv_catpvs_flags
1067             sv_catpvs_mg
1068             sv_catpvs_nomg
1069             sv_cmp_flags
1070             sv_cmp_locale_flags
1071             sv_collxfrm_flags
1072             sv_eq_flags
1073             sv_setpvs_mg
1074              
1075             =item perl 5.13.5
1076              
1077             PL_rpeepp
1078             lex_stuff_pvs
1079             parse_fullstmt
1080              
1081             =item perl 5.13.3
1082              
1083             blockhook_register
1084              
1085             =item perl 5.13.2
1086              
1087             SvNV_nomg
1088             find_rundefsv
1089             foldEQ
1090             foldEQ_locale
1091             foldEQ_utf8
1092             hv_fill
1093             sv_dec_nomg
1094             sv_inc_nomg
1095              
1096             =item perl 5.13.1
1097              
1098             sv_2nv_flags
1099              
1100             =item perl 5.11.5
1101              
1102             sv_pos_u2b_flags
1103              
1104             =item perl 5.11.4
1105              
1106             prescan_version
1107              
1108             =item perl 5.11.2
1109              
1110             PL_keyword_plugin
1111             lex_bufutf8
1112             lex_discard_to
1113             lex_grow_linestr
1114             lex_next_chunk
1115             lex_peek_unichar
1116             lex_read_space
1117             lex_read_to
1118             lex_read_unichar
1119             lex_stuff_pvn
1120             lex_stuff_sv
1121             lex_unstuff
1122              
1123             =item perl 5.11.1
1124              
1125             ck_warner
1126             ck_warner_d
1127             is_utf8_perl_space
1128             is_utf8_perl_word
1129             is_utf8_posix_digit
1130              
1131             =item perl 5.11.0
1132              
1133             Gv_AMupdate
1134             PL_opfreehook
1135             SVt_REGEXP
1136             SvOOK_offset
1137             av_iter_p
1138             gv_add_by_type
1139             is_ascii_string
1140             pregfree2
1141             save_adelete
1142             save_aelem_flags
1143             save_hdelete
1144             save_helem_flags
1145             sv_utf8_upgrade_flags_grow
1146              
1147             =item perl 5.10.1
1148              
1149             mro_get_from_name
1150             mro_get_private_data
1151             mro_register
1152             mro_set_mro
1153             mro_set_private_data
1154             save_hints
1155             save_padsv_and_mortalize
1156             save_pushi32ptr
1157             save_pushptr
1158             save_pushptrptr
1159             sv_insert_flags
1160              
1161             =item perl 5.10.0
1162              
1163             hv_common
1164             hv_common_key_len
1165             sv_destroyable
1166             sys_init
1167             sys_init3
1168             sys_term
1169              
1170             =item perl 5.9.5
1171              
1172             Perl_signbit
1173             av_create_and_push
1174             av_create_and_unshift_one
1175             gv_fetchfile_flags
1176             lex_start
1177             mro_get_linear_isa
1178             mro_method_changed_in
1179             my_dirfd
1180             pregcomp
1181             ptr_table_clear
1182             ptr_table_fetch
1183             ptr_table_free
1184             ptr_table_new
1185             ptr_table_split
1186             ptr_table_store
1187             re_compile
1188             reg_named_buff_all
1189             reg_named_buff_exists
1190             reg_named_buff_fetch
1191             reg_named_buff_firstkey
1192             reg_named_buff_nextkey
1193             reg_named_buff_scalar
1194             regfree_internal
1195             savesharedpvn
1196             scan_vstring
1197             upg_version
1198              
1199             =item perl 5.9.4
1200              
1201             PerlIO_context_layers
1202             gv_name_set
1203             hv_copy_hints_hv
1204             my_vsnprintf
1205             newXS_flags
1206             regclass_swash
1207             sv_does
1208             sv_usepvn_flags
1209              
1210             =item perl 5.9.3
1211              
1212             av_arylen_p
1213             ckwarn
1214             ckwarn_d
1215             csighandler
1216             dMULTICALL
1217             doref
1218             gv_const_sv
1219             hv_eiter_p
1220             hv_eiter_set
1221             hv_name_set
1222             hv_placeholders_get
1223             hv_placeholders_set
1224             hv_riter_p
1225             hv_riter_set
1226             is_utf8_string_loclen
1227             newGIVENOP
1228             newSVhek
1229             newWHENOP
1230             pad_compname_type
1231             savepvs
1232             sortsv_flags
1233             vverify
1234              
1235             =item perl 5.9.2
1236              
1237             SvPVbyte_force
1238             find_rundefsvoffset
1239             op_refcnt_lock
1240             op_refcnt_unlock
1241             savesvpv
1242             vnormal
1243              
1244             =item perl 5.9.1
1245              
1246             hv_clear_placeholders
1247             hv_scalar
1248             scan_version
1249             sv_2iv_flags
1250             sv_2uv_flags
1251              
1252             =item perl 5.9.0
1253              
1254             new_version
1255             save_set_svflags
1256             vcmp
1257             vnumify
1258             vstringify
1259              
1260             =item perl 5.8.3
1261              
1262             SvIsCOW
1263             SvIsCOW_shared_hash
1264              
1265             =item perl 5.8.1
1266              
1267             CvPADLIST
1268             PL_comppad
1269             SvVOK
1270             doing_taint
1271             find_runcv
1272             is_utf8_string_loc
1273             packlist
1274             pad_add_anon
1275             pad_new
1276             pad_tidy
1277             save_bool
1278             savestack_grow_cnt
1279             seed
1280             sv_cat_decode
1281             sv_setpviv
1282             sv_setpviv_mg
1283             unpackstring
1284              
1285             =item perl 5.8.0
1286              
1287             HeUTF8
1288             hv_iternext_flags
1289             hv_store_flags
1290             is_utf8_idcont
1291             nothreadhook
1292              
1293             =item perl 5.7.3
1294              
1295             OP_DESC
1296             OP_NAME
1297             PL_peepp
1298             PerlIO_clearerr
1299             PerlIO_close
1300             PerlIO_eof
1301             PerlIO_error
1302             PerlIO_fileno
1303             PerlIO_fill
1304             PerlIO_flush
1305             PerlIO_get_base
1306             PerlIO_get_bufsiz
1307             PerlIO_get_cnt
1308             PerlIO_get_ptr
1309             PerlIO_read
1310             PerlIO_seek
1311             PerlIO_set_cnt
1312             PerlIO_set_ptrcnt
1313             PerlIO_setlinebuf
1314             PerlIO_stderr
1315             PerlIO_stdin
1316             PerlIO_stdout
1317             PerlIO_tell
1318             PerlIO_unread
1319             PerlIO_write
1320             SvLOCK
1321             SvSHARE
1322             SvUNLOCK
1323             atfork_lock
1324             atfork_unlock
1325             custom_op_desc
1326             custom_op_name
1327             deb
1328             debstack
1329             debstackptrs
1330             gv_fetchmeth_autoload
1331             ibcmp_utf8
1332             my_fork
1333             my_socketpair
1334             pack_cat
1335             perl_destruct
1336             pv_uni_display
1337             save_shared_pvref
1338             savesharedpv
1339             sortsv
1340             sv_magicext
1341             sv_nolocking
1342             sv_nosharing
1343             sv_recode_to_utf8
1344             sv_uni_display
1345             to_uni_fold
1346             to_uni_lower
1347             to_uni_title
1348             to_uni_upper
1349             to_utf8_case
1350             unpack_str
1351             uvchr_to_utf8_flags
1352             uvuni_to_utf8_flags
1353             vdeb
1354              
1355             =item perl 5.7.2
1356              
1357             calloc
1358             getcwd_sv
1359             init_tm
1360             malloc
1361             mfree
1362             mini_mktime
1363             my_atof2
1364             my_strftime
1365             op_null
1366             realloc
1367             sv_catpvn_flags
1368             sv_catsv_flags
1369             sv_setsv_flags
1370             sv_utf8_upgrade_flags
1371             sv_utf8_upgrade_nomg
1372             swash_fetch
1373              
1374             =item perl 5.7.1
1375              
1376             ASCII_TO_NEED
1377             NATIVE_TO_NEED
1378             POPpbytex
1379             bytes_from_utf8
1380             despatch_signals
1381             do_openn
1382             gv_handler
1383             is_lvalue_sub
1384             my_popen_list
1385             save_mortalizesv
1386             scan_num
1387             sv_force_normal_flags
1388             sv_setref_uv
1389             sv_unref_flags
1390             sv_utf8_upgrade
1391             utf8_length
1392             utf8_to_uvuni
1393             utf8n_to_uvchr
1394             utf8n_to_uvuni
1395             uvchr_to_utf8
1396             uvuni_to_utf8
1397              
1398             =item perl 5.6.1
1399              
1400             SvGAMAGIC
1401             apply_attrs_string
1402             bytes_to_utf8
1403             gv_efullname4
1404             gv_fullname4
1405             is_utf8_string
1406             save_generic_pvref
1407             utf16_to_utf8
1408             utf16_to_utf8_reversed
1409             utf8_to_bytes
1410              
1411             =item perl 5.6.0
1412              
1413             DO_UTF8
1414             PERL_SYS_INIT3
1415             PL_check
1416             POPul
1417             SvIOK_UV
1418             SvIOK_notUV
1419             SvIOK_only_UV
1420             SvPOK_only_UTF8
1421             SvPVbyte_nolen
1422             SvPVbytex
1423             SvPVbytex_force
1424             SvPVutf8
1425             SvPVutf8_force
1426             SvPVutf8_nolen
1427             SvPVutf8x
1428             SvPVutf8x_force
1429             SvUOK
1430             SvUTF8
1431             SvUTF8_off
1432             SvUTF8_on
1433             UTF8SKIP
1434             av_delete
1435             av_exists
1436             call_atexit
1437             caller_cx
1438             cast_i32
1439             cast_iv
1440             cast_ulong
1441             cast_uv
1442             do_gv_dump
1443             do_gvgv_dump
1444             do_hv_dump
1445             do_magic_dump
1446             do_op_dump
1447             do_open9
1448             do_pmop_dump
1449             do_sv_dump
1450             dump_all
1451             dump_eval
1452             dump_form
1453             dump_indent
1454             dump_packsubs
1455             dump_sub
1456             dump_vindent
1457             get_context
1458             get_ppaddr
1459             gv_dump
1460             init_i18nl10n
1461             init_i18nl14n
1462             is_uni_alnum
1463             is_uni_alnum_lc
1464             is_uni_alpha
1465             is_uni_alpha_lc
1466             is_uni_ascii
1467             is_uni_ascii_lc
1468             is_uni_cntrl
1469             is_uni_cntrl_lc
1470             is_uni_digit
1471             is_uni_digit_lc
1472             is_uni_graph
1473             is_uni_graph_lc
1474             is_uni_idfirst
1475             is_uni_idfirst_lc
1476             is_uni_lower
1477             is_uni_lower_lc
1478             is_uni_print
1479             is_uni_print_lc
1480             is_uni_punct
1481             is_uni_punct_lc
1482             is_uni_space
1483             is_uni_space_lc
1484             is_uni_upper
1485             is_uni_upper_lc
1486             is_uni_xdigit
1487             is_uni_xdigit_lc
1488             is_utf8_alnum
1489             is_utf8_alpha
1490             is_utf8_ascii
1491             is_utf8_char
1492             is_utf8_cntrl
1493             is_utf8_digit
1494             is_utf8_graph
1495             is_utf8_idfirst
1496             is_utf8_lower
1497             is_utf8_mark
1498             is_utf8_print
1499             is_utf8_punct
1500             is_utf8_space
1501             is_utf8_upper
1502             is_utf8_xdigit
1503             magic_dump
1504             my_atof
1505             my_fflush_all
1506             newANONATTRSUB
1507             newATTRSUB
1508             newXS
1509             newXSproto
1510             new_collate
1511             new_ctype
1512             new_numeric
1513             op_dump
1514             perl_parse
1515             pmop_dump
1516             re_intuit_string
1517             reginitcolors
1518             require_pv
1519             safesyscalloc
1520             safesysfree
1521             safesysmalloc
1522             safesysrealloc
1523             save_I8
1524             save_alloc
1525             save_destructor
1526             save_destructor_x
1527             save_re_context
1528             save_vptr
1529             scan_bin
1530             set_context
1531             set_numeric_local
1532             set_numeric_radix
1533             set_numeric_standard
1534             str_to_version
1535             sv_2pvutf8
1536             sv_2pvutf8_nolen
1537             sv_force_normal
1538             sv_len_utf8
1539             sv_pos_b2u
1540             sv_pos_u2b
1541             sv_pv
1542             sv_pvbyte
1543             sv_pvbyten
1544             sv_pvbyten_force
1545             sv_pvutf8
1546             sv_pvutf8n
1547             sv_pvutf8n_force
1548             sv_rvweaken
1549             sv_utf8_decode
1550             sv_utf8_downgrade
1551             sv_utf8_encode
1552             swash_init
1553             to_uni_lower_lc
1554             to_uni_title_lc
1555             to_uni_upper_lc
1556             utf8_distance
1557             utf8_hop
1558             vcroak
1559             vform
1560             vwarn
1561             vwarner
1562              
1563             =item perl 5.005_03
1564              
1565             POPpx
1566             get_vtbl
1567             save_generic_svref
1568              
1569             =item perl 5.005
1570              
1571             PL_curpad
1572             PL_modglobal
1573             cx_dump
1574             debop
1575             debprofdump
1576             fbm_compile
1577             fbm_instr
1578             get_op_descs
1579             get_op_names
1580             init_stacks
1581             mg_length
1582             mg_size
1583             newHVhv
1584             new_stackinfo
1585             regdump
1586             regexec_flags
1587             regnext
1588             runops_debug
1589             runops_standard
1590             save_iv
1591             save_op
1592             sv_iv
1593             sv_nv
1594             sv_peek
1595             sv_pvn
1596             sv_pvn_nomg
1597             sv_true
1598              
1599             =item perl 5.004_05
1600              
1601             CopyD
1602             MoveD
1603             do_binmode
1604             my_bcopy
1605             save_aelem
1606             save_helem
1607              
1608             =item perl 5.004
1609              
1610             GIMME_V
1611             G_VOID
1612             HePV
1613             HeSVKEY_set
1614             POPu
1615             SvSetMagicSV
1616             SvSetMagicSV_nosteal
1617             SvSetSV_nosteal
1618             SvTAINTED
1619             SvTAINTED_off
1620             SvTAINTED_on
1621             block_end
1622             block_gimme
1623             block_start
1624             call_list
1625             delimcpy
1626             form
1627             gv_autoload4
1628             gv_fetchmethod_autoload
1629             hv_delayfree_ent
1630             hv_free_ent
1631             ibcmp_locale
1632             intro_my
1633             my_failure_exit
1634             newSVpvf
1635             rsignal
1636             rsignal_state
1637             save_I16
1638             save_gp
1639             share_hek
1640             start_subparse
1641             sv_catpvf
1642             sv_catpvf_mg
1643             sv_cmp_locale
1644             sv_derived_from
1645             sv_magic_portable
1646             sv_setpvf
1647             sv_setpvf_mg
1648             sv_taint
1649             sv_tainted
1650             sv_untaint
1651             sv_vcatpvf
1652             sv_vcatpvf_mg
1653             sv_vcatpvfn
1654             sv_vsetpvf
1655             sv_vsetpvf_mg
1656             sv_vsetpvfn
1657             toLOWER_LC
1658             vnewSVpvf
1659             warner
1660              
1661             =item perl 5.003_07
1662              
1663             HeHASH
1664             HeKEY
1665             HeKLEN
1666             HeSVKEY
1667             HeSVKEY_force
1668             HeVAL
1669             cv_const_sv
1670             do_open
1671             gv_efullname3
1672             gv_fullname3
1673             hv_delete_ent
1674             hv_exists_ent
1675             hv_fetch_ent
1676             hv_iterkeysv
1677             hv_ksplit
1678             hv_store_ent
1679             my_pclose
1680             my_popen
1681             sv_gets
1682             unsharepvn
1683              
1684             =back
1685              
1686             =head1 BUGS
1687              
1688             If you find any bugs, C doesn't seem to build on your
1689             system, or any of its tests fail, please send a bug report to
1690             L.
1691              
1692             =head1 AUTHORS
1693              
1694             =over 2
1695              
1696             =item *
1697              
1698             Version 1.x of Devel::PPPort was written by Kenneth Albanowski.
1699              
1700             =item *
1701              
1702             Version 2.x was ported to the Perl core by Paul Marquess.
1703              
1704             =item *
1705              
1706             Version 3.x was ported back to CPAN by Marcus Holland-Moritz.
1707              
1708             =item *
1709              
1710             Versions >= 3.22 are maintained with support from Matthew Horsfall (alh).
1711              
1712             =back
1713              
1714             =head1 COPYRIGHT
1715              
1716             Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
1717              
1718             Copyright (C) 2018, The perl5 porters
1719              
1720             Version 2.x, Copyright (C) 2001, Paul Marquess.
1721              
1722             Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
1723              
1724             This program is free software; you can redistribute it and/or
1725             modify it under the same terms as Perl itself.
1726              
1727             =head1 SEE ALSO
1728              
1729             See L, L.
1730              
1731             =cut
1732              
1733             package Devel::PPPort;
1734              
1735 34     34   78724 use strict;
  34         252  
  34         1164  
1736 34     34   163 use vars qw($VERSION $data);
  34         56  
  34         10259  
1737              
1738             $VERSION = '3.53_04';
1739              
1740             sub _init_data
1741             {
1742 1     1   2 $data = do { local $/; };
  1         12  
  1         349  
1743 1         4 my $pkg = 'Devel::PPPort';
1744 1         328 $data =~ s/__PERL_VERSION__/$]/g;
1745 1         558 $data =~ s/__VERSION__/$VERSION/g;
1746 1         441 $data =~ s/__PKG__/$pkg/g;
1747 1         436 $data =~ s/^\|>//gm;
1748             }
1749              
1750             sub GetFileContents {
1751 3   100 3 1 17 my $file = shift || 'ppport.h';
1752 3 100       12 defined $data or _init_data();
1753 3         34 my $copy = $data;
1754 3         842 $copy =~ s/\bppport\.h\b/$file/g;
1755              
1756 3         480 return $copy;
1757             }
1758              
1759             sub WriteFile
1760             {
1761 1   50 1 1 1290 my $file = shift || 'ppport.h';
1762 1         4 my $data = GetFileContents($file);
1763 1 50       70 open F, ">$file" or return undef;
1764 1         331 print F $data;
1765 1         24 close F;
1766              
1767 1         10 return 1;
1768             }
1769              
1770             1;
1771              
1772             __DATA__