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