3 require 5.003; # keep this compatible, an old perl is all we may have before
7 # See database of global and static function prototypes at the __END__.
8 # This is used to generate prototype headers under various configurations,
9 # export symbols lists for different platforms, and macros to provide an
10 # implicit interpreter context argument.
15 # walk table providing an array of components in each line to
16 # subroutine, printing the result
19 my $filename = shift || '-';
24 if (ref $filename) { # filehandle
28 open F, ">$filename" or die "Can't open $filename: $!";
31 print $F $leader if $leader;
32 seek DATA, $END, 0; # so we may restart
45 @args = split /\s*\|\s*/, $_;
47 print $F $function->(@args);
49 print $F $trailer if $trailer;
50 close $F unless ref $filename;
53 sub munge_c_files () {
56 warn "\@ARGV empty, nothing to do\n";
61 $functions->{$_[2]} = \@_ if $_[@_-1] =~ /\.\.\./;
66 # if (/^#\s*include\s+"perl.h"/) {
67 # my $file = uc $ARGV;
69 # print "#define PERL_IN_$file\n";
75 # if (exists $functions->{$f}) {
76 # my $flags = $functions->{$f}[0];
77 # $repl = "Perl_$repl" if $flags =~ /p/;
78 # unless ($flags =~ /n/) {
80 # $repl .= "_ " if @{$functions->{$f}} > 3;
82 # warn("$ARGV:$.:$repl\n");
86 s{(\b(\w+)[ \t]*\([ \t]*(?!aTHX))}
90 if (exists $functions->{$f}) {
92 warn("$ARGV:$.:$`#$repl#$'");
97 close ARGV if eof; # restart $.
105 my $wrote_protected = 0;
114 my ($flags,$retval,$func,@args) = @_;
116 $retval = "STATIC $retval";
120 $retval = "PERL_CALLCONV $retval";
122 $func = "Perl_$func";
125 $ret .= "$retval\t$func(";
126 unless ($flags =~ /n/) {
128 $ret .= "_ " if @args;
131 $ret .= join ", ", @args;
134 $ret .= "void" if $flags =~ /n/;
137 $ret .= " __attribute__((noreturn))" if $flags =~ /r/;
138 if( $flags =~ /f/ ) {
139 my $prefix = $flags =~ /n/ ? '' : 'pTHX_';
140 my $args = scalar @args;
141 $ret .= "\n#ifdef CHECK_FORMAT\n";
142 $ret .= sprintf " __attribute__((format(printf,%s%d,%s%d)))",
143 $prefix, $args - 1, $prefix, $args;
144 $ret .= "\n#endif\n";
151 # generates global.sym (API export list), and populates %global with global symbols
152 sub write_global_sym {
155 my ($flags,$retval,$func,@args) = @_;
156 if ($flags =~ /A/ && $flags !~ /x/) { # public API, so export
157 $func = "Perl_$func" if $flags =~ /p/;
165 walk_table(\&write_protos, 'proto.h', <<'EOT');
167 * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
168 * This file is autogenerated from data in embed.pl. Edit that file
169 * and run 'make regen_headers' to effect changes.
174 walk_table(\&write_global_sym, 'global.sym', <<'EOT');
176 # !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
177 # This file is autogenerated from data in embed.pl. Edit that file
178 # and run 'make regen_headers' to effect changes.
183 # XXX others that may need adding
187 my @extvars = qw(sv_undef sv_yes sv_no na dowarn
189 tainting tainted stack_base stack_sp sv_arenaroot
191 curstash DBsub DBsingle debstash
204 my ($syms, $file) = @_;
206 open(FILE, "< $file")
207 or die "embed.pl: Can't open $file: $!\n";
209 s/[ \t]*#.*//; # Delete comments.
210 if (/^\s*(\S+)\s*$/) {
212 warn "duplicate symbol $sym while processing $file\n"
213 if exists $$syms{$sym};
220 # Perl_pp_* and Perl_ck_* are in pp.sym
221 readsyms my %ppsym, 'pp.sym';
223 sub readvars(\%$$@) {
224 my ($syms, $file,$pre,$keep_pre) = @_;
226 open(FILE, "< $file")
227 or die "embed.pl: Can't open $file: $!\n";
229 s/[ \t]*#.*//; # Delete comments.
230 if (/PERLVARA?I?C?\($pre(\w+)/) {
232 $sym = $pre . $sym if $keep_pre;
233 warn "duplicate symbol $sym while processing $file\n"
234 if exists $$syms{$sym};
235 $$syms{$sym} = $pre || 1;
244 readvars %intrp, 'intrpvar.h','I';
245 readvars %thread, 'thrdvar.h','T';
246 readvars %globvar, 'perlvars.h','G';
248 foreach my $sym (sort keys %thread) {
249 warn "$sym in intrpvar.h as well as thrdvar.h\n" if exists $intrp{$sym};
258 my ($from, $to) = @_;
259 my $t = int(length($from) / 8);
260 "#define $from" . "\t" x ($t < 3 ? 3 - $t : 1) . "$to\n";
263 sub bincompat_var ($$) {
264 my ($pfx, $sym) = @_;
265 my $arg = ($pfx eq 'G' ? 'NULL' : 'aTHXo');
266 undefine("PL_$sym") . hide("PL_$sym", "(*Perl_${pfx}${sym}_ptr($arg))");
270 my ($sym,$pre,$ptr) = @_;
271 hide("PL_$sym", "($ptr$pre$sym)");
276 return hide("PL_$pre$sym", "PL_$sym");
280 open(EM, '> embed.h') or die "Can't create embed.h: $!\n";
283 /* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
284 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
285 perlvars.h and thrdvar.h. Any changes made here will be lost!
288 /* (Doing namespace management portably in C is really gross.) */
290 /* NO_EMBED is no longer supported. i.e. EMBED is always active. */
292 /* provide binary compatible (but inconsistent) names */
293 #if defined(PERL_BINCOMPAT_5005)
294 # define Perl_call_argv perl_call_argv
295 # define Perl_call_method perl_call_method
296 # define Perl_call_pv perl_call_pv
297 # define Perl_call_sv perl_call_sv
298 # define Perl_get_av perl_get_av
299 # define Perl_get_cv perl_get_cv
300 # define Perl_get_hv perl_get_hv
301 # define Perl_get_sv perl_get_sv
302 # define Perl_init_i18nl10n perl_init_i18nl10n
303 # define Perl_init_i18nl14n perl_init_i18nl14n
304 # define Perl_new_collate perl_new_collate
305 # define Perl_new_ctype perl_new_ctype
306 # define Perl_new_numeric perl_new_numeric
307 # define Perl_require_pv perl_require_pv
308 # define Perl_safesyscalloc Perl_safecalloc
309 # define Perl_safesysfree Perl_safefree
310 # define Perl_safesysmalloc Perl_safemalloc
311 # define Perl_safesysrealloc Perl_saferealloc
312 # define Perl_set_numeric_local perl_set_numeric_local
313 # define Perl_set_numeric_standard perl_set_numeric_standard
314 /* malloc() pollution was the default in earlier versions, so enable
315 * it for bincompat; but not for systems that used to do prevent that,
316 * or when they ask for {HIDE,EMBED}MYMALLOC */
317 # if !defined(EMBEDMYMALLOC) && !defined(HIDEMYMALLOC)
318 # if !defined(NeXT) && !defined(__NeXT) && !defined(__MACHTEN__) && \
320 # define PERL_POLLUTE_MALLOC
325 /* Hide global symbols */
327 #if !defined(PERL_OBJECT)
328 #if !defined(PERL_IMPLICIT_CONTEXT)
336 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifn?def|else|endif)\b/;
339 my ($flags,$retval,$func,@args) = @_;
340 unless ($flags =~ /o/) {
342 $ret .= hide($func,"S_$func");
344 elsif ($flags =~ /p/) {
345 $ret .= hide($func,"Perl_$func");
352 for $sym (sort keys %ppsym) {
354 print EM hide($sym, "Perl_$sym");
359 #else /* PERL_IMPLICIT_CONTEXT */
369 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifn?def|else|endif)\b/;
372 my ($flags,$retval,$func,@args) = @_;
373 unless ($flags =~ /o/) {
374 my $args = scalar @args;
375 if ($args and $args[$args-1] =~ /\.\.\./) {
376 # we're out of luck for varargs functions under CPP
378 elsif ($flags =~ /n/) {
380 $ret .= hide($func,"S_$func");
382 elsif ($flags =~ /p/) {
383 $ret .= hide($func,"Perl_$func");
387 my $alist = join(",", @az[0..$args-1]);
388 $ret = "#define $func($alist)";
389 my $t = int(length($ret) / 8);
390 $ret .= "\t" x ($t < 4 ? 4 - $t : 1);
392 $ret .= "S_$func(aTHX";
394 elsif ($flags =~ /p/) {
395 $ret .= "Perl_$func(aTHX";
397 $ret .= "_ " if $alist;
398 $ret .= $alist . ")\n";
405 for $sym (sort keys %ppsym) {
407 if ($sym =~ /^ck_/) {
408 print EM hide("$sym(a)", "Perl_$sym(aTHX_ a)");
410 elsif ($sym =~ /^pp_/) {
411 print EM hide("$sym()", "Perl_$sym(aTHX)");
414 warn "Illegal symbol '$sym' in pp.sym";
420 #endif /* PERL_IMPLICIT_CONTEXT */
421 #else /* PERL_OBJECT */
429 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifn?def|else|endif)\b/;
432 my ($flags,$retval,$func,@args) = @_;
434 $ret .= hide("S_$func","CPerlObj::S_$func") if $flags !~ /j/;
435 $ret .= hide($func,"S_$func");
437 elsif ($flags =~ /p/) {
438 $ret .= hide("Perl_$func","CPerlObj::Perl_$func") if $flags !~ /j/;
439 $ret .= hide($func,"Perl_$func");
442 $ret .= hide($func,"CPerlObj::$func") if $flags !~ /j/;
448 for $sym (sort keys %ppsym) {
450 print EM hide("Perl_$sym", "CPerlObj::Perl_$sym");
451 print EM hide($sym, "Perl_$sym");
456 #endif /* PERL_OBJECT */
458 /* Compatibility stubs. Compile extensions with -DPERL_NOCOMPAT to
462 #if !defined(PERL_CORE)
463 # define sv_setptrobj(rv,ptr,name) sv_setref_iv(rv,name,PTR2IV(ptr))
464 # define sv_setptrref(rv,ptr) sv_setref_iv(rv,Nullch,PTR2IV(ptr))
467 #if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) && !defined(PERL_BINCOMPAT_5005)
469 /* Compatibility for various misnamed functions. All functions
470 in the API that begin with "perl_" (not "Perl_") take an explicit
471 interpreter context pointer.
472 The following are not like that, but since they had a "perl_"
473 prefix in previous versions, we provide compatibility macros.
475 # define perl_atexit(a,b) call_atexit(a,b)
476 # define perl_call_argv(a,b,c) call_argv(a,b,c)
477 # define perl_call_pv(a,b) call_pv(a,b)
478 # define perl_call_method(a,b) call_method(a,b)
479 # define perl_call_sv(a,b) call_sv(a,b)
480 # define perl_eval_sv(a,b) eval_sv(a,b)
481 # define perl_eval_pv(a,b) eval_pv(a,b)
482 # define perl_require_pv(a) require_pv(a)
483 # define perl_get_sv(a,b) get_sv(a,b)
484 # define perl_get_av(a,b) get_av(a,b)
485 # define perl_get_hv(a,b) get_hv(a,b)
486 # define perl_get_cv(a,b) get_cv(a,b)
487 # define perl_init_i18nl10n(a) init_i18nl10n(a)
488 # define perl_init_i18nl14n(a) init_i18nl14n(a)
489 # define perl_new_ctype(a) new_ctype(a)
490 # define perl_new_collate(a) new_collate(a)
491 # define perl_new_numeric(a) new_numeric(a)
493 /* varargs functions can't be handled with CPP macros. :-(
494 This provides a set of compatibility functions that don't take
495 an extra argument but grab the context pointer using the macro
498 #if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_OBJECT)
499 # define croak Perl_croak_nocontext
500 # define deb Perl_deb_nocontext
501 # define die Perl_die_nocontext
502 # define form Perl_form_nocontext
503 # define mess Perl_mess_nocontext
504 # define newSVpvf Perl_newSVpvf_nocontext
505 # define sv_catpvf Perl_sv_catpvf_nocontext
506 # define sv_setpvf Perl_sv_setpvf_nocontext
507 # define warn Perl_warn_nocontext
508 # define warner Perl_warner_nocontext
509 # define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext
510 # define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext
513 #endif /* !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) */
515 #if !defined(PERL_IMPLICIT_CONTEXT)
516 /* undefined symbols, point them back at the usual ones */
517 # define Perl_croak_nocontext Perl_croak
518 # define Perl_die_nocontext Perl_die
519 # define Perl_deb_nocontext Perl_deb
520 # define Perl_form_nocontext Perl_form
521 # define Perl_mess_nocontext Perl_mess
522 # define Perl_newSVpvf_nocontext Perl_newSVpvf
523 # define Perl_sv_catpvf_nocontext Perl_sv_catpvf
524 # define Perl_sv_setpvf_nocontext Perl_sv_setpvf
525 # define Perl_warn_nocontext Perl_warn
526 # define Perl_warner_nocontext Perl_warner
527 # define Perl_sv_catpvf_mg_nocontext Perl_sv_catpvf_mg
528 # define Perl_sv_setpvf_mg_nocontext Perl_sv_setpvf_mg
536 open(EM, '> embedvar.h')
537 or die "Can't create embedvar.h: $!\n";
540 /* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
541 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
542 perlvars.h and thrdvar.h. Any changes made here will be lost!
545 /* (Doing namespace management portably in C is really gross.) */
548 The following combinations of MULTIPLICITY, USE_THREADS, PERL_OBJECT
549 and PERL_IMPLICIT_CONTEXT are supported:
551 2) MULTIPLICITY # supported for compatibility
552 3) MULTIPLICITY && PERL_IMPLICIT_CONTEXT
553 4) USE_THREADS && PERL_IMPLICIT_CONTEXT
554 5) MULTIPLICITY && USE_THREADS && PERL_IMPLICIT_CONTEXT
555 6) PERL_OBJECT && PERL_IMPLICIT_CONTEXT
557 All other combinations of these flags are errors.
559 #3, #4, #5, and #6 are supported directly, while #2 is a special
560 case of #3 (supported by redefining vTHX appropriately).
563 #if defined(MULTIPLICITY)
564 /* cases 2, 3 and 5 above */
566 # if defined(PERL_IMPLICIT_CONTEXT)
569 # define vTHX PERL_GET_INTERP
574 for $sym (sort keys %thread) {
575 print EM multon($sym,'T','vTHX->');
580 # if defined(PERL_OBJECT)
581 # include "error: PERL_OBJECT + MULTIPLICITY don't go together"
584 # if defined(USE_THREADS)
589 for $sym (sort keys %intrp) {
590 print EM multon($sym,'I','PERL_GET_INTERP->');
595 # else /* !USE_THREADS */
596 /* cases 2 and 3 above */
600 for $sym (sort keys %intrp) {
601 print EM multon($sym,'I','vTHX->');
606 # endif /* USE_THREADS */
608 #else /* !MULTIPLICITY */
610 # if defined(PERL_OBJECT)
615 for $sym (sort keys %thread) {
616 print EM multon($sym,'T','aTHXo->interp.');
620 for $sym (sort keys %intrp) {
621 print EM multon($sym,'I','aTHXo->interp.');
626 # else /* !PERL_OBJECT */
628 /* cases 1 and 4 above */
632 for $sym (sort keys %intrp) {
633 print EM multoff($sym,'I');
638 # if defined(USE_THREADS)
643 for $sym (sort keys %thread) {
644 print EM multon($sym,'T','aTHX->');
649 # else /* !USE_THREADS */
654 for $sym (sort keys %thread) {
655 print EM multoff($sym,'T');
660 # endif /* USE_THREADS */
661 # endif /* PERL_OBJECT */
662 #endif /* MULTIPLICITY */
664 #if defined(PERL_GLOBAL_STRUCT)
668 for $sym (sort keys %globvar) {
669 print EM multon($sym,'G','PL_Vars.');
674 #else /* !PERL_GLOBAL_STRUCT */
678 for $sym (sort keys %globvar) {
679 print EM multoff($sym,'G');
684 #endif /* PERL_GLOBAL_STRUCT */
686 #ifdef PERL_POLLUTE /* disabled by default in 5.006 */
690 for $sym (sort @extvars) {
691 print EM hide($sym,"PL_$sym");
696 #endif /* PERL_POLLUTE */
702 open(OBX, '> objXSUB.h')
703 or die "Can't create objXSUB.h: $!\n";
706 /* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
707 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
708 perlvars.h and thrdvar.h. Any changes made here will be lost!
711 #ifndef __objXSUB_h__
712 #define __objXSUB_h__
714 /* method calls via pPerl (static functions without a "this" pointer need these) */
716 #if defined(PERL_CORE) && defined(PERL_OBJECT)
718 /* XXX soon to be eliminated, only a few things in PERLCORE need these now */
726 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifn?def|else|endif)\b/;
729 my ($flags,$retval,$func,@args) = @_;
730 if ($flags =~ /A/ && $flags !~ /j/) { # API function needing macros
732 $ret .= undefine("Perl_$func") . hide("Perl_$func","pPerl->Perl_$func");
733 $ret .= undefine($func) . hide($func,"Perl_$func");
736 $ret .= undefine($func) . hide($func,"pPerl->$func");
743 # NOTE: not part of API
744 #for $sym (sort keys %ppsym) {
745 # $sym =~ s/^Perl_//;
746 # print OBX undefine("Perl_$sym") . hide("Perl_$sym", "pPerl->Perl_$sym");
747 # print OBX undefine($sym) . hide($sym, "Perl_$sym");
752 #endif /* PERL_CORE && PERL_OBJECT */
753 #endif /* __objXSUB_h__ */
760 open(CAPI, '> perlapi.c') or die "Can't create perlapi.c: $!\n";
761 open(CAPIH, '> perlapi.h') or die "Can't create perlapi.h: $!\n";
764 /* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
765 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
766 perlvars.h and thrdvar.h. Any changes made here will be lost!
769 /* declare accessor functions for Perl variables */
770 #ifndef __perlapi_h__
771 #define __perlapi_h__
773 #if defined(PERL_OBJECT) || defined (MULTIPLICITY)
775 #if defined(PERL_OBJECT)
779 # define aTHXo_ aTHXo,
780 #endif /* PERL_OBJECT */
788 #define PERLVAR(v,t) EXTERN_C t* Perl_##v##_ptr(pTHXo);
789 #define PERLVARA(v,n,t) typedef t PL_##v##_t[n]; \
790 EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHXo);
791 #define PERLVARI(v,t,i) PERLVAR(v,t)
792 #define PERLVARIC(v,t,i) PERLVAR(v, const t)
795 #include "intrpvar.h"
796 #include "perlvars.h"
805 #if defined(PERL_CORE)
807 /* accessor functions for Perl variables (provide binary compatibility) */
809 /* these need to be mentioned here, or most linkers won't put them in
810 the perl executable */
812 #ifndef PERL_NO_FORCE_LINK
817 EXT void *PL_force_link_funcs[];
819 EXT void *PL_force_link_funcs[] = {
824 #define PERLVAR(v,t) (void*)Perl_##v##_ptr,
825 #define PERLVARA(v,n,t) PERLVAR(v,t)
826 #define PERLVARI(v,t,i) PERLVAR(v,t)
827 #define PERLVARIC(v,t,i) PERLVAR(v,t)
830 #include "intrpvar.h"
831 #include "perlvars.h"
842 #endif /* PERL_NO_FORCE_LINK */
844 #else /* !PERL_CORE */
848 foreach my $sym (sort keys %intrp) {
849 print CAPIH bincompat_var('I',$sym);
852 foreach my $sym (sort keys %thread) {
853 print CAPIH bincompat_var('T',$sym);
856 foreach my $sym (sort keys %globvar) {
857 print CAPIH bincompat_var('G',$sym);
862 #endif /* !PERL_CORE */
863 #endif /* PERL_OBJECT || MULTIPLICITY */
865 #endif /* __perlapi_h__ */
870 /* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
871 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
872 perlvars.h and thrdvar.h. Any changes made here will be lost!
879 #if defined(PERL_OBJECT) || defined (MULTIPLICITY)
881 /* accessor functions for Perl variables (provides binary compatibility) */
889 #if defined(PERL_OBJECT)
890 #define PERLVAR(v,t) t* Perl_##v##_ptr(pTHXo) \
891 { return &(aTHXo->interp.v); }
892 #define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHXo) \
893 { return &(aTHXo->interp.v); }
894 #else /* MULTIPLICITY */
895 #define PERLVAR(v,t) t* Perl_##v##_ptr(pTHX) \
896 { return &(aTHX->v); }
897 #define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHX) \
898 { return &(aTHX->v); }
901 #define PERLVARI(v,t,i) PERLVAR(v,t)
902 #define PERLVARIC(v,t,i) PERLVAR(v, const t)
905 #include "intrpvar.h"
909 #define PERLVAR(v,t) t* Perl_##v##_ptr(pTHXo) \
910 { return &(PL_##v); }
911 #define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHXo) \
912 { return &(PL_##v); }
913 #include "perlvars.h"
920 #if defined(PERL_OBJECT)
922 /* C-API layer for PERL_OBJECT */
926 # functions that take va_list* for implementing vararg functions
927 # NOTE: makedef.pl must be updated if you add symbols to %vfuncs
929 Perl_croak Perl_vcroak
931 Perl_warner Perl_vwarner
936 Perl_newSVpvf Perl_vnewSVpvf
937 Perl_sv_setpvf Perl_sv_vsetpvf
938 Perl_sv_setpvf_mg Perl_sv_vsetpvf_mg
939 Perl_sv_catpvf Perl_sv_vcatpvf
940 Perl_sv_catpvf_mg Perl_sv_vcatpvf_mg
941 Perl_dump_indent Perl_dump_vindent
942 Perl_default_protect Perl_vdefault_protect
946 my ($addcontext, $rettype,$func,@args) = @_;
949 for $a (@aargs) { $a =~ s/^.*\b(\w+)$/$1/ }
951 if (not $addcontext) {
953 $ctxarg .= '_ ' if @args;
957 $decl .= " dTHXo;\n";
960 my $return = ($rettype =~ /^\s*(void|Free_t|Signal_t)\s*$/
963 if (@args and $args[$#args] =~ /\.\.\./) {
967 $ctxfunc =~ s/_nocontext$//;
968 return $emitval unless exists $vfuncs{$ctxfunc};
969 if (length $return) {
970 $decl .= " $rettype retval;\n";
971 $retarg .= "retval = ";
972 $return = "\n ${return}retval;\n";
979 va_start(args, $aargs[$#aargs]);
980 $retarg((CPerlObj*)pPerl)->$vfuncs{$ctxfunc}(@aargs, &args);
990 $decl $return((CPerlObj*)pPerl)->$func(@aargs);
997 # XXXX temporary hack
1007 $skipapi_funcs{$sym}++;
1014 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifn?def|else|endif)\b/;
1017 my ($flags,$retval,$func,@args) = @_;
1018 return $ret if exists $skipapi_funcs{$func};
1019 if ($flags =~ /A/ && $flags !~ /j/) { # in public API, needed for XSUBS
1021 my $addctx = 1 if $flags =~ /n/;
1022 if ($flags =~ /p/) {
1023 $ret .= undefine("Perl_$func");
1024 $ret .= emit_func($addctx,$retval,"Perl_$func",@args);
1027 $ret .= undefine($func);
1028 $ret .= emit_func($addctx,$retval,$func,@args);
1035 # NOTE: not part of the API
1036 #for $sym (sort keys %ppsym) {
1037 # $sym =~ s/^Perl_//;
1039 # print CAPI undefine("Perl_$sym");
1040 # if ($sym =~ /^ck_/) {
1041 # print CAPI emit_func(0, 'OP *',"Perl_$sym",'OP *o');
1044 # print CAPI emit_func(0, 'OP *',"Perl_$sym");
1050 #undef Perl_fprintf_nocontext
1052 Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
1056 va_start(arglist, format);
1057 return (*PL_StdIO->pVprintf)(PL_StdIO, stream, format, arglist);
1062 #endif /* PERL_OBJECT */
1063 #endif /* PERL_OBJECT || MULTIPLICITY */
1068 # autogenerate documentation from comments in source files
1074 sub autodoc ($) { # parse a file and extract documentation info
1079 while (defined($in = <$fh>)) {
1080 if ($in =~ /^=for\s+apidoc\s+(.*)\n/) {
1082 $proto = "||$proto" unless $proto =~ /\|/;
1083 my($flags, $ret, $name, @args) = split /\|/, $proto;
1086 while (defined($doc = <$fh>)) {
1087 last DOC if $doc =~ /^=\w+/;
1090 $docs = "\n$docs" if $docs and $docs !~ /^\n/;
1091 if ($flags =~ /m/) {
1092 if ($flags =~ /A/) {
1093 $apidocs{$name} = [$flags, $docs, $ret, @args];
1096 $gutsdocs{$name} = [$flags, $docs, $ret, @args];
1100 $docfuncs{$name} = [$flags, $docs, $ret, @args];
1102 if ($doc =~ /^=for/) {
1110 sub docout ($$$) { # output the docs for one function
1111 my($fh, $name, $docref) = @_;
1112 my($flags, $docs, $ret, @args) = @$docref;
1114 $docs .= "NOTE: the perl_ form of this function is deprecated.\n\n"
1117 print $fh "=item $name\n$docs";
1119 if ($flags =~ /U/) { # no usage
1121 } elsif ($flags =~ /s/) { # semicolon ("dTHR;")
1122 print $fh "\t\t$name;\n\n";
1123 } elsif ($flags =~ /n/) { # no args
1124 print $fh "\t$ret\t$name\n\n";
1125 } else { # full usage
1126 print $fh "\t$ret\t$name";
1127 print $fh "(" . join(", ", @args) . ")";
1133 for $file (glob('*.c'), glob('*.h')) {
1134 open F, "< $file" or die "Cannot open $file for docs: $!\n";
1136 close F or die "Error closing $file: $!\n";
1139 unlink "pod/perlapi.pod";
1140 open (DOC, ">pod/perlapi.pod") or
1141 die "Can't create pod/perlapi.pod: $!\n";
1143 walk_table { # load documented functions into approriate hash
1145 my($flags, $retval, $func, @args) = @_;
1146 return "" unless $flags =~ /d/;
1147 $func =~ s/\t//g; $flags =~ s/p//; # clean up fields from embed.pl
1149 if ($flags =~ /A/) {
1150 my $docref = delete $docfuncs{$func};
1151 warn "no docs for $func\n" unless $docref and @$docref;
1152 $apidocs{$func} = [$docref->[0] . 'A', $docref->[1], $retval, @args];
1154 my $docref = delete $docfuncs{$func};
1155 $gutsdocs{$func} = [$docref->[0], $docref->[1], $retval, @args];
1161 for (sort keys %docfuncs) {
1162 warn "Unable to place $_!\n";
1165 print DOC <<'_EOB_';
1168 perlapi - autogenerated documentation for the perl public API
1172 This file contains the documentation of the perl public API generated by
1173 embed.pl, specifically a listing of functions, macros, flags, and variables
1174 that may be used by extension writers. The interfaces of any functions that
1175 are not listed here are subject to change without notice. For this reason,
1176 blindly using functions listed in proto.h is to be avoided when writing
1179 Note that all Perl API global variables must be referenced with the C<PL_>
1180 prefix. Some macros are provided for compatibility with the older,
1181 unadorned names, but this support may be disabled in a future release.
1183 The listing is alphabetical, case insensitive.
1190 for $key (sort { uc($a) cmp uc($b); } keys %apidocs) { # case insensitive sort
1191 docout(\*DOC, $key, $apidocs{$key});
1194 print DOC <<'_EOE_';
1199 Until May 1997, this document was maintained by Jeff Okamoto
1200 <okamoto@corp.hp.com>. It is now maintained as part of Perl itself.
1202 With lots of help and suggestions from Dean Roehrich, Malcolm Beattie,
1203 Andreas Koenig, Paul Hudson, Ilya Zakharevich, Paul Marquess, Neil
1204 Bowers, Matthew Green, Tim Bunce, Spider Boardman, Ulrich Pfeifer,
1205 Stephen McCamant, and Gurusamy Sarathy.
1207 API Listing originally by Dean Roehrich <roehrich@cray.com>.
1209 Updated to be autogenerated from comments in the source by Benjamin Stuhl.
1213 perlguts(1), perlxs(1), perlxstut(1), perlintern(1)
1220 open(GUTS, ">pod/perlintern.pod") or
1221 die "Unable to create pod/perlintern.pod: $!\n";
1225 perlintern - autogenerated documentation of purely B<internal>
1230 This file is the autogenerated documentation of functions in the
1231 Perl intrepreter that are documented using Perl's internal documentation
1232 format but are not marked as part of the Perl API. In other words,
1233 B<they are not for use in extensions>!
1239 for $key (sort { uc($a) cmp uc($b); } keys %gutsdocs) {
1240 docout(\*GUTS, $key, $gutsdocs{$key});
1248 The autodocumentation system was orignally added to the Perl core by
1249 Benjamin Stuhl. Documentation is by whoever was kind enough to
1250 document their functions.
1254 perlguts(1), perlapi(1)
1263 : Lines are of the form:
1264 : flags|return_type|function_name|arg1|arg2|...|argN
1266 : A line may be continued on another by ending it with a backslash.
1267 : Leading and trailing whitespace will be ignored in each component.
1269 : flags are single letters with following meanings:
1270 : A member of public API
1271 : d function has documentation with its source
1272 : s static function, should have an S_ prefix in source
1274 : n has no implicit interpreter/thread context argument
1275 : p function has a Perl_ prefix
1276 : f function takes printf style format string, varargs
1277 : r function never returns
1278 : o has no compatibility macro (#define foo Perl_foo)
1279 : j not a member of CPerlObj
1282 : Individual flags may be separated by whitespace.
1284 : New global functions should be added at the end for binary compatibility
1285 : in some configurations.
1289 #if defined(PERL_IMPLICIT_SYS)
1290 Ajno |PerlInterpreter* |perl_alloc_using \
1291 |struct IPerlMem* m|struct IPerlMem* ms \
1292 |struct IPerlMem* mp|struct IPerlEnv* e \
1293 |struct IPerlStdIO* io|struct IPerlLIO* lio \
1294 |struct IPerlDir* d|struct IPerlSock* s \
1295 |struct IPerlProc* p
1297 Ajnod |PerlInterpreter* |perl_alloc
1298 Ajnod |void |perl_construct |PerlInterpreter* interp
1299 Ajnod |void |perl_destruct |PerlInterpreter* interp
1300 Ajnod |void |perl_free |PerlInterpreter* interp
1301 Ajnod |int |perl_run |PerlInterpreter* interp
1302 Ajnod |int |perl_parse |PerlInterpreter* interp|XSINIT_t xsinit \
1303 |int argc|char** argv|char** env
1304 #if defined(USE_ITHREADS)
1305 : XXX: perl_clone needs docs
1306 Ajno |PerlInterpreter*|perl_clone|PerlInterpreter* interp, UV flags
1307 # if defined(PERL_IMPLICIT_SYS)
1308 Ajno |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \
1309 |struct IPerlMem* m|struct IPerlMem* ms \
1310 |struct IPerlMem* mp|struct IPerlEnv* e \
1311 |struct IPerlStdIO* io|struct IPerlLIO* lio \
1312 |struct IPerlDir* d|struct IPerlSock* s \
1313 |struct IPerlProc* p
1317 #if defined(MYMALLOC)
1318 Ajnop |Malloc_t|malloc |MEM_SIZE nbytes
1319 Ajnop |Malloc_t|calloc |MEM_SIZE elements|MEM_SIZE size
1320 Ajnop |Malloc_t|realloc |Malloc_t where|MEM_SIZE nbytes
1321 Ajnop |Free_t |mfree |Malloc_t where
1322 jnp |MEM_SIZE|malloced_size |void *p
1325 Ajnp |void* |get_context
1326 Ajnp |void |set_context |void *thx
1330 /* functions with flag 'n' should come before here */
1331 #if defined(PERL_OBJECT)
1334 struct interpreter interp;
1335 CPerlObj(IPerlMem*, IPerlMem*, IPerlMem*, IPerlEnv*, IPerlStdIO*,
1336 IPerlLIO*, IPerlDir*, IPerlSock*, IPerlProc*);
1337 void* operator new(size_t nSize, IPerlMem *pvtbl);
1338 #ifndef __BORLANDC__
1339 static void operator delete(void* pPerl, IPerlMem *pvtbl);
1341 int do_aspawn (void *vreally, void **vmark, void **vsp);
1343 #if defined(PERL_OBJECT)
1348 # include "pp_proto.h"
1349 Ap |SV* |amagic_call |SV* left|SV* right|int method|int dir
1350 Ap |bool |Gv_AMupdate |HV* stash
1351 p |OP* |append_elem |I32 optype|OP* head|OP* tail
1352 p |OP* |append_list |I32 optype|LISTOP* first|LISTOP* last
1353 p |I32 |apply |I32 type|SV** mark|SV** sp
1354 Ap |SV* |avhv_delete_ent|AV *ar|SV* keysv|I32 flags|U32 hash
1355 Ap |bool |avhv_exists_ent|AV *ar|SV* keysv|U32 hash
1356 Ap |SV** |avhv_fetch_ent |AV *ar|SV* keysv|I32 lval|U32 hash
1357 Ap |SV** |avhv_store_ent |AV *ar|SV* keysv|SV* val|U32 hash
1358 Ap |HE* |avhv_iternext |AV *ar
1359 Ap |SV* |avhv_iterval |AV *ar|HE* entry
1360 Ap |HV* |avhv_keys |AV *ar
1361 Apd |void |av_clear |AV* ar
1362 Ap |SV* |av_delete |AV* ar|I32 key|I32 flags
1363 Ap |bool |av_exists |AV* ar|I32 key
1364 Apd |void |av_extend |AV* ar|I32 key
1365 Ap |AV* |av_fake |I32 size|SV** svp
1366 Apd |SV** |av_fetch |AV* ar|I32 key|I32 lval
1367 Ap |void |av_fill |AV* ar|I32 fill
1368 Apd |I32 |av_len |AV* ar
1369 Apd |AV* |av_make |I32 size|SV** svp
1370 Apd |SV* |av_pop |AV* ar
1371 Apd |void |av_push |AV* ar|SV* val
1372 Ap |void |av_reify |AV* ar
1373 Apd |SV* |av_shift |AV* ar
1374 Apd |SV** |av_store |AV* ar|I32 key|SV* val
1375 Apd |void |av_undef |AV* ar
1376 Apd |void |av_unshift |AV* ar|I32 num
1377 p |OP* |bind_match |I32 type|OP* left|OP* pat
1378 p |OP* |block_end |I32 floor|OP* seq
1379 Ap |I32 |block_gimme
1380 p |int |block_start |int full
1381 p |void |boot_core_UNIVERSAL
1382 Ap |void |call_list |I32 oldscope|AV* av_list
1383 p |bool |cando |Mode_t mode|Uid_t effective|Stat_t* statbufp
1384 Ap |U32 |cast_ulong |NV f
1385 Ap |I32 |cast_i32 |NV f
1386 Ap |IV |cast_iv |NV f
1387 Ap |UV |cast_uv |NV f
1388 #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
1389 Ap |I32 |my_chsize |int fd|Off_t length
1391 #if defined(USE_THREADS)
1392 Ap |MAGIC* |condpair_magic |SV *sv
1394 p |OP* |convert |I32 optype|I32 flags|OP* o
1395 Afprd |void |croak |const char* pat|...
1396 Apr |void |vcroak |const char* pat|va_list* args
1397 #if defined(PERL_IMPLICIT_CONTEXT)
1398 Afnrp |void |croak_nocontext|const char* pat|...
1399 Afnp |OP* |die_nocontext |const char* pat|...
1400 Afnp |void |deb_nocontext |const char* pat|...
1401 Afnp |char* |form_nocontext |const char* pat|...
1402 Afnp |SV* |mess_nocontext |const char* pat|...
1403 Afnp |void |warn_nocontext |const char* pat|...
1404 Afnp |void |warner_nocontext|U32 err|const char* pat|...
1405 Afnp |SV* |newSVpvf_nocontext|const char* pat|...
1406 Afnp |void |sv_catpvf_nocontext|SV* sv|const char* pat|...
1407 Afnp |void |sv_setpvf_nocontext|SV* sv|const char* pat|...
1408 Afnp |void |sv_catpvf_mg_nocontext|SV* sv|const char* pat|...
1409 Afnp |void |sv_setpvf_mg_nocontext|SV* sv|const char* pat|...
1410 Afnp |int |fprintf_nocontext|PerlIO* stream|const char* fmt|...
1412 p |void |cv_ckproto |CV* cv|GV* gv|char* p
1413 p |CV* |cv_clone |CV* proto
1414 p |SV* |cv_const_sv |CV* cv
1415 p |SV* |op_const_sv |OP* o|CV* cv
1416 p |void |cv_undef |CV* cv
1417 Ap |void |cx_dump |PERL_CONTEXT* cs
1418 Ap |SV* |filter_add |filter_t funcp|SV* datasv
1419 Ap |void |filter_del |filter_t funcp
1420 Ap |I32 |filter_read |int idx|SV* buffer|int maxlen
1421 Ap |char** |get_op_descs
1422 Ap |char** |get_op_names
1423 p |char* |get_no_modify
1425 Ap |PPADDR_t*|get_ppaddr
1427 Afp |void |deb |const char* pat|...
1428 Ap |void |vdeb |const char* pat|va_list* args
1429 Ap |void |debprofdump
1430 Ap |I32 |debop |OP* o
1432 Ap |I32 |debstackptrs
1433 Ap |char* |delimcpy |char* to|char* toend|char* from \
1434 |char* fromend|int delim|I32* retlen
1435 p |void |deprecate |char* s
1436 Afp |OP* |die |const char* pat|...
1437 p |OP* |vdie |const char* pat|va_list* args
1438 p |OP* |die_where |char* message|STRLEN msglen
1439 Ap |void |dounwind |I32 cxix
1440 p |bool |do_aexec |SV* really|SV** mark|SV** sp
1441 p |bool |do_aexec5 |SV* really|SV** mark|SV** sp|int fd|int flag
1442 Ap |int |do_binmode |PerlIO *fp|int iotype|int flag
1443 p |void |do_chop |SV* asv|SV* sv
1444 p |bool |do_close |GV* gv|bool not_implicit
1445 p |bool |do_eof |GV* gv
1446 p |bool |do_exec |char* cmd
1448 p |bool |do_exec3 |char* cmd|int fd|int flag
1450 p |void |do_execfree
1451 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
1452 p |I32 |do_ipcctl |I32 optype|SV** mark|SV** sp
1453 p |I32 |do_ipcget |I32 optype|SV** mark|SV** sp
1454 p |I32 |do_msgrcv |SV** mark|SV** sp
1455 p |I32 |do_msgsnd |SV** mark|SV** sp
1456 p |I32 |do_semop |SV** mark|SV** sp
1457 p |I32 |do_shmio |I32 optype|SV** mark|SV** sp
1459 p |void |do_join |SV* sv|SV* del|SV** mark|SV** sp
1461 Ap |bool |do_open |GV* gv|char* name|I32 len|int as_raw \
1462 |int rawmode|int rawperm|PerlIO* supplied_fp
1463 Ap |bool |do_open9 |GV *gv|char *name|I32 len|int as_raw \
1464 |int rawmode|int rawperm|PerlIO *supplied_fp \
1466 p |void |do_pipe |SV* sv|GV* rgv|GV* wgv
1467 p |bool |do_print |SV* sv|PerlIO* fp
1469 p |I32 |do_chomp |SV* sv
1470 p |bool |do_seek |GV* gv|Off_t pos|int whence
1471 p |void |do_sprintf |SV* sv|I32 len|SV** sarg
1472 p |Off_t |do_sysseek |GV* gv|Off_t pos|int whence
1473 p |Off_t |do_tell |GV* gv
1474 p |I32 |do_trans |SV* sv
1475 p |UV |do_vecget |SV* sv|I32 offset|I32 size
1476 p |void |do_vecset |SV* sv
1477 p |void |do_vop |I32 optype|SV* sv|SV* left|SV* right
1478 p |OP* |dofile |OP* term
1479 Ap |I32 |dowantarray
1482 #if defined(DUMP_FDS)
1483 Ap |void |dump_fds |char* s
1485 Ap |void |dump_form |GV* gv
1486 Ap |void |gv_dump |GV* gv
1487 Ap |void |op_dump |OP* arg
1488 Ap |void |pmop_dump |PMOP* pm
1489 Ap |void |dump_packsubs |HV* stash
1490 Ap |void |dump_sub |GV* gv
1491 Apd |void |fbm_compile |SV* sv|U32 flags
1492 Apd |char* |fbm_instr |unsigned char* big|unsigned char* bigend \
1493 |SV* littlesv|U32 flags
1494 p |char* |find_script |char *scriptname|bool dosearch \
1495 |char **search_ext|I32 flags
1496 #if defined(USE_THREADS)
1497 p |PADOFFSET|find_threadsv|const char *name
1499 p |OP* |force_list |OP* arg
1500 p |OP* |fold_constants |OP* arg
1501 Afp |char* |form |const char* pat|...
1502 Ap |char* |vform |const char* pat|va_list* args
1504 p |OP* |gen_constant_list|OP* o
1505 #if !defined(HAS_GETENV_LEN)
1506 p |char* |getenv_len |char* key|unsigned long *len
1508 Ap |void |gp_free |GV* gv
1509 Ap |GP* |gp_ref |GP* gp
1510 Ap |GV* |gv_AVadd |GV* gv
1511 Ap |GV* |gv_HVadd |GV* gv
1512 Ap |GV* |gv_IOadd |GV* gv
1513 Ap |GV* |gv_autoload4 |HV* stash|const char* name|STRLEN len \
1515 Ap |void |gv_check |HV* stash
1516 Ap |void |gv_efullname |SV* sv|GV* gv
1517 Ap |void |gv_efullname3 |SV* sv|GV* gv|const char* prefix
1518 Ap |GV* |gv_fetchfile |const char* name
1519 Apd |GV* |gv_fetchmeth |HV* stash|const char* name|STRLEN len \
1521 Apd |GV* |gv_fetchmethod |HV* stash|const char* name
1522 Apd |GV* |gv_fetchmethod_autoload|HV* stash|const char* name \
1524 Ap |GV* |gv_fetchpv |const char* name|I32 add|I32 sv_type
1525 Ap |void |gv_fullname |SV* sv|GV* gv
1526 Ap |void |gv_fullname3 |SV* sv|GV* gv|const char* prefix
1527 Ap |void |gv_init |GV* gv|HV* stash|const char* name \
1528 |STRLEN len|int multi
1529 Apd |HV* |gv_stashpv |const char* name|I32 create
1530 Ap |HV* |gv_stashpvn |const char* name|U32 namelen|I32 create
1531 Apd |HV* |gv_stashsv |SV* sv|I32 create
1532 Apd |void |hv_clear |HV* tb
1533 Ap |void |hv_delayfree_ent|HV* hv|HE* entry
1534 Apd |SV* |hv_delete |HV* tb|const char* key|U32 klen|I32 flags
1535 Apd |SV* |hv_delete_ent |HV* tb|SV* key|I32 flags|U32 hash
1536 Apd |bool |hv_exists |HV* tb|const char* key|U32 klen
1537 Apd |bool |hv_exists_ent |HV* tb|SV* key|U32 hash
1538 Apd |SV** |hv_fetch |HV* tb|const char* key|U32 klen|I32 lval
1539 Apd |HE* |hv_fetch_ent |HV* tb|SV* key|I32 lval|U32 hash
1540 Ap |void |hv_free_ent |HV* hv|HE* entry
1541 Apd |I32 |hv_iterinit |HV* tb
1542 Apd |char* |hv_iterkey |HE* entry|I32* retlen
1543 Apd |SV* |hv_iterkeysv |HE* entry
1544 Apd |HE* |hv_iternext |HV* tb
1545 Apd |SV* |hv_iternextsv |HV* hv|char** key|I32* retlen
1546 Apd |SV* |hv_iterval |HV* tb|HE* entry
1547 Ap |void |hv_ksplit |HV* hv|IV newmax
1548 Apd |void |hv_magic |HV* hv|GV* gv|int how
1549 Apd |SV** |hv_store |HV* tb|const char* key|U32 klen|SV* val \
1551 Apd |HE* |hv_store_ent |HV* tb|SV* key|SV* val|U32 hash
1552 Apd |void |hv_undef |HV* tb
1553 Ap |I32 |ibcmp |const char* a|const char* b|I32 len
1554 Ap |I32 |ibcmp_locale |const char* a|const char* b|I32 len
1555 p |bool |ingroup |Gid_t testgid|Uid_t effective
1556 p |void |init_debugger
1557 Ap |void |init_stacks
1559 Ap |char* |instr |const char* big|const char* little
1560 p |bool |io_close |IO* io|bool not_implicit
1561 p |OP* |invert |OP* cmd
1562 Ap |bool |is_uni_alnum |U32 c
1563 Ap |bool |is_uni_alnumc |U32 c
1564 Ap |bool |is_uni_idfirst |U32 c
1565 Ap |bool |is_uni_alpha |U32 c
1566 Ap |bool |is_uni_ascii |U32 c
1567 Ap |bool |is_uni_space |U32 c
1568 Ap |bool |is_uni_cntrl |U32 c
1569 Ap |bool |is_uni_graph |U32 c
1570 Ap |bool |is_uni_digit |U32 c
1571 Ap |bool |is_uni_upper |U32 c
1572 Ap |bool |is_uni_lower |U32 c
1573 Ap |bool |is_uni_print |U32 c
1574 Ap |bool |is_uni_punct |U32 c
1575 Ap |bool |is_uni_xdigit |U32 c
1576 Ap |U32 |to_uni_upper |U32 c
1577 Ap |U32 |to_uni_title |U32 c
1578 Ap |U32 |to_uni_lower |U32 c
1579 Ap |bool |is_uni_alnum_lc|U32 c
1580 Ap |bool |is_uni_alnumc_lc|U32 c
1581 Ap |bool |is_uni_idfirst_lc|U32 c
1582 Ap |bool |is_uni_alpha_lc|U32 c
1583 Ap |bool |is_uni_ascii_lc|U32 c
1584 Ap |bool |is_uni_space_lc|U32 c
1585 Ap |bool |is_uni_cntrl_lc|U32 c
1586 Ap |bool |is_uni_graph_lc|U32 c
1587 Ap |bool |is_uni_digit_lc|U32 c
1588 Ap |bool |is_uni_upper_lc|U32 c
1589 Ap |bool |is_uni_lower_lc|U32 c
1590 Ap |bool |is_uni_print_lc|U32 c
1591 Ap |bool |is_uni_punct_lc|U32 c
1592 Ap |bool |is_uni_xdigit_lc|U32 c
1593 Ap |U32 |to_uni_upper_lc|U32 c
1594 Ap |U32 |to_uni_title_lc|U32 c
1595 Ap |U32 |to_uni_lower_lc|U32 c
1596 Ap |bool |is_utf8_alnum |U8 *p
1597 Ap |bool |is_utf8_alnumc |U8 *p
1598 Ap |bool |is_utf8_idfirst|U8 *p
1599 Ap |bool |is_utf8_alpha |U8 *p
1600 Ap |bool |is_utf8_ascii |U8 *p
1601 Ap |bool |is_utf8_space |U8 *p
1602 Ap |bool |is_utf8_cntrl |U8 *p
1603 Ap |bool |is_utf8_digit |U8 *p
1604 Ap |bool |is_utf8_graph |U8 *p
1605 Ap |bool |is_utf8_upper |U8 *p
1606 Ap |bool |is_utf8_lower |U8 *p
1607 Ap |bool |is_utf8_print |U8 *p
1608 Ap |bool |is_utf8_punct |U8 *p
1609 Ap |bool |is_utf8_xdigit |U8 *p
1610 Ap |bool |is_utf8_mark |U8 *p
1611 p |OP* |jmaybe |OP* arg
1612 p |I32 |keyword |char* d|I32 len
1613 Ap |void |leave_scope |I32 base
1615 p |void |lex_start |SV* line
1616 p |OP* |linklist |OP* o
1618 p |OP* |listkids |OP* o
1619 p |OP* |localize |OP* arg|I32 lexical
1620 Apd |I32 |looks_like_number|SV* sv
1621 p |int |magic_clearenv |SV* sv|MAGIC* mg
1622 p |int |magic_clear_all_env|SV* sv|MAGIC* mg
1623 p |int |magic_clearpack|SV* sv|MAGIC* mg
1624 p |int |magic_clearsig |SV* sv|MAGIC* mg
1625 p |int |magic_existspack|SV* sv|MAGIC* mg
1626 p |int |magic_freeregexp|SV* sv|MAGIC* mg
1627 p |int |magic_get |SV* sv|MAGIC* mg
1628 p |int |magic_getarylen|SV* sv|MAGIC* mg
1629 p |int |magic_getdefelem|SV* sv|MAGIC* mg
1630 p |int |magic_getglob |SV* sv|MAGIC* mg
1631 p |int |magic_getnkeys |SV* sv|MAGIC* mg
1632 p |int |magic_getpack |SV* sv|MAGIC* mg
1633 p |int |magic_getpos |SV* sv|MAGIC* mg
1634 p |int |magic_getsig |SV* sv|MAGIC* mg
1635 p |int |magic_getsubstr|SV* sv|MAGIC* mg
1636 p |int |magic_gettaint |SV* sv|MAGIC* mg
1637 p |int |magic_getuvar |SV* sv|MAGIC* mg
1638 p |int |magic_getvec |SV* sv|MAGIC* mg
1639 p |U32 |magic_len |SV* sv|MAGIC* mg
1640 #if defined(USE_THREADS)
1641 p |int |magic_mutexfree|SV* sv|MAGIC* mg
1643 p |int |magic_nextpack |SV* sv|MAGIC* mg|SV* key
1644 p |U32 |magic_regdata_cnt|SV* sv|MAGIC* mg
1645 p |int |magic_regdatum_get|SV* sv|MAGIC* mg
1646 p |int |magic_set |SV* sv|MAGIC* mg
1647 p |int |magic_setamagic|SV* sv|MAGIC* mg
1648 p |int |magic_setarylen|SV* sv|MAGIC* mg
1649 p |int |magic_setbm |SV* sv|MAGIC* mg
1650 p |int |magic_setdbline|SV* sv|MAGIC* mg
1651 #if defined(USE_LOCALE_COLLATE)
1652 p |int |magic_setcollxfrm|SV* sv|MAGIC* mg
1654 p |int |magic_setdefelem|SV* sv|MAGIC* mg
1655 p |int |magic_setenv |SV* sv|MAGIC* mg
1656 p |int |magic_setfm |SV* sv|MAGIC* mg
1657 p |int |magic_setisa |SV* sv|MAGIC* mg
1658 p |int |magic_setglob |SV* sv|MAGIC* mg
1659 p |int |magic_setmglob |SV* sv|MAGIC* mg
1660 p |int |magic_setnkeys |SV* sv|MAGIC* mg
1661 p |int |magic_setpack |SV* sv|MAGIC* mg
1662 p |int |magic_setpos |SV* sv|MAGIC* mg
1663 p |int |magic_setsig |SV* sv|MAGIC* mg
1664 p |int |magic_setsubstr|SV* sv|MAGIC* mg
1665 p |int |magic_settaint |SV* sv|MAGIC* mg
1666 p |int |magic_setuvar |SV* sv|MAGIC* mg
1667 p |int |magic_setvec |SV* sv|MAGIC* mg
1668 p |int |magic_set_all_env|SV* sv|MAGIC* mg
1669 p |U32 |magic_sizepack |SV* sv|MAGIC* mg
1670 p |int |magic_wipepack |SV* sv|MAGIC* mg
1671 p |void |magicname |char* sym|char* name|I32 namlen
1672 Ap |void |markstack_grow
1673 #if defined(USE_LOCALE_COLLATE)
1674 p |char* |mem_collxfrm |const char* s|STRLEN len|STRLEN* xlen
1676 Afp |SV* |mess |const char* pat|...
1677 Ap |SV* |vmess |const char* pat|va_list* args
1678 p |void |qerror |SV* err
1679 Apd |int |mg_clear |SV* sv
1680 Apd |int |mg_copy |SV* sv|SV* nsv|const char* key|I32 klen
1681 Apd |MAGIC* |mg_find |SV* sv|int type
1682 Apd |int |mg_free |SV* sv
1683 Apd |int |mg_get |SV* sv
1684 Apd |U32 |mg_length |SV* sv
1685 Apd |void |mg_magical |SV* sv
1686 Apd |int |mg_set |SV* sv
1687 Ap |I32 |mg_size |SV* sv
1688 p |OP* |mod |OP* o|I32 type
1689 Ap |char* |moreswitches |char* s
1691 Ap |NV |my_atof |const char *s
1692 #if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY)
1693 Anp |char* |my_bcopy |const char* from|char* to|I32 len
1695 #if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
1696 Anp |char* |my_bzero |char* loc|I32 len
1698 Apr |void |my_exit |U32 status
1699 Apr |void |my_failure_exit
1700 Ap |I32 |my_fflush_all
1702 #if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
1703 Anp |I32 |my_memcmp |const char* s1|const char* s2|I32 len
1705 #if !defined(HAS_MEMSET)
1706 Anp |void* |my_memset |char* loc|I32 ch|I32 len
1708 #if !defined(PERL_OBJECT)
1709 Ap |I32 |my_pclose |PerlIO* ptr
1710 Ap |PerlIO*|my_popen |char* cmd|char* mode
1712 Ap |void |my_setenv |char* nam|char* val
1715 Ap |short |my_swap |short s
1716 Ap |long |my_htonl |long l
1717 Ap |long |my_ntohl |long l
1720 Ap |OP* |newANONLIST |OP* o
1721 Ap |OP* |newANONHASH |OP* o
1722 Ap |OP* |newANONSUB |I32 floor|OP* proto|OP* block
1723 Ap |OP* |newASSIGNOP |I32 flags|OP* left|I32 optype|OP* right
1724 Ap |OP* |newCONDOP |I32 flags|OP* expr|OP* trueop|OP* falseop
1725 Apd |void |newCONSTSUB |HV* stash|char* name|SV* sv
1726 Ap |void |newFORM |I32 floor|OP* o|OP* block
1727 Ap |OP* |newFOROP |I32 flags|char* label|line_t forline \
1728 |OP* sclr|OP* expr|OP*block|OP*cont
1729 Ap |OP* |newLOGOP |I32 optype|I32 flags|OP* left|OP* right
1730 Ap |OP* |newLOOPEX |I32 type|OP* label
1731 Ap |OP* |newLOOPOP |I32 flags|I32 debuggable|OP* expr|OP* block
1732 Ap |OP* |newNULLLIST
1733 Ap |OP* |newOP |I32 optype|I32 flags
1734 Ap |void |newPROG |OP* o
1735 Ap |OP* |newRANGE |I32 flags|OP* left|OP* right
1736 Ap |OP* |newSLICEOP |I32 flags|OP* subscript|OP* listop
1737 Ap |OP* |newSTATEOP |I32 flags|char* label|OP* o
1738 Ap |CV* |newSUB |I32 floor|OP* o|OP* proto|OP* block
1739 Apd |CV* |newXS |char* name|XSUBADDR_t f|char* filename
1741 Ap |OP* |newAVREF |OP* o
1742 Ap |OP* |newBINOP |I32 type|I32 flags|OP* first|OP* last
1743 Ap |OP* |newCVREF |I32 flags|OP* o
1744 Ap |OP* |newGVOP |I32 type|I32 flags|GV* gv
1745 Ap |GV* |newGVgen |char* pack
1746 Ap |OP* |newGVREF |I32 type|OP* o
1747 Ap |OP* |newHVREF |OP* o
1749 Ap |HV* |newHVhv |HV* hv
1751 Ap |OP* |newLISTOP |I32 type|I32 flags|OP* first|OP* last
1752 Ap |OP* |newPADOP |I32 type|I32 flags|SV* sv
1753 Ap |OP* |newPMOP |I32 type|I32 flags
1754 Ap |OP* |newPVOP |I32 type|I32 flags|char* pv
1755 Ap |SV* |newRV |SV* pref
1756 Apd |SV* |newRV_noinc |SV *sv
1757 Ap |SV* |newSV |STRLEN len
1758 Ap |OP* |newSVREF |OP* o
1759 Ap |OP* |newSVOP |I32 type|I32 flags|SV* sv
1760 Apd |SV* |newSViv |IV i
1761 Apd |SV* |newSVnv |NV n
1762 Apd |SV* |newSVpv |const char* s|STRLEN len
1763 Apd |SV* |newSVpvn |const char* s|STRLEN len
1764 Afpd |SV* |newSVpvf |const char* pat|...
1765 Ap |SV* |vnewSVpvf |const char* pat|va_list* args
1766 Apd |SV* |newSVrv |SV* rv|const char* classname
1767 Apd |SV* |newSVsv |SV* old
1768 Ap |OP* |newUNOP |I32 type|I32 flags|OP* first
1769 Ap |OP* |newWHILEOP |I32 flags|I32 debuggable|LOOP* loop \
1770 |I32 whileline|OP* expr|OP* block|OP* cont
1772 Ap |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
1773 p |PerlIO*|nextargv |GV* gv
1774 Ap |char* |ninstr |const char* big|const char* bigend \
1775 |const char* little|const char* lend
1776 p |OP* |oopsCV |OP* o
1777 Ap |void |op_free |OP* arg
1778 p |void |package |OP* o
1779 p |PADOFFSET|pad_alloc |I32 optype|U32 tmptype
1780 p |PADOFFSET|pad_allocmy |char* name
1781 p |PADOFFSET|pad_findmy |char* name
1782 p |OP* |oopsAV |OP* o
1783 p |OP* |oopsHV |OP* o
1784 p |void |pad_leavemy |I32 fill
1785 Ap |SV* |pad_sv |PADOFFSET po
1786 p |void |pad_free |PADOFFSET po
1788 p |void |pad_swipe |PADOFFSET po
1789 p |void |peep |OP* o
1790 #if defined(PERL_OBJECT)
1791 Aox |void |Perl_construct
1792 Aox |void |Perl_destruct
1793 Aox |void |Perl_free
1795 Aox |int |Perl_parse |XSINIT_t xsinit \
1796 |int argc|char** argv|char** env
1798 #if defined(USE_THREADS)
1799 Ap |struct perl_thread* |new_struct_thread|struct perl_thread *t
1801 Ap |void |call_atexit |ATEXIT_t fn|void *ptr
1802 Apd |I32 |call_argv |const char* sub_name|I32 flags|char** argv
1803 Apd |I32 |call_method |const char* methname|I32 flags
1804 Apd |I32 |call_pv |const char* sub_name|I32 flags
1805 Apd |I32 |call_sv |SV* sv|I32 flags
1806 Apd |SV* |eval_pv |const char* p|I32 croak_on_error
1807 Apd |I32 |eval_sv |SV* sv|I32 flags
1808 Apd |SV* |get_sv |const char* name|I32 create
1809 Apd |AV* |get_av |const char* name|I32 create
1810 Apd |HV* |get_hv |const char* name|I32 create
1811 Apd |CV* |get_cv |const char* name|I32 create
1812 Ap |int |init_i18nl10n |int printwarn
1813 Ap |int |init_i18nl14n |int printwarn
1814 Ap |void |new_collate |const char* newcoll
1815 Ap |void |new_ctype |const char* newctype
1816 Ap |void |new_numeric |const char* newcoll
1817 Ap |void |set_numeric_local
1818 Ap |void |set_numeric_radix
1819 Ap |void |set_numeric_standard
1820 Apd |void |require_pv |const char* pv
1821 p |void |pidgone |Pid_t pid|int status
1822 Ap |void |pmflag |U16* pmfl|int ch
1823 p |OP* |pmruntime |OP* pm|OP* expr|OP* repl
1824 p |OP* |pmtrans |OP* o|OP* expr|OP* repl
1827 p |OP* |prepend_elem |I32 optype|OP* head|OP* tail
1828 p |void |push_return |OP* o
1829 Ap |void |push_scope
1830 p |OP* |ref |OP* o|I32 type
1831 p |OP* |refkids |OP* o|I32 type
1832 Ap |void |regdump |regexp* r
1833 Ap |I32 |pregexec |regexp* prog|char* stringarg \
1834 |char* strend|char* strbeg|I32 minend \
1835 |SV* screamer|U32 nosave
1836 Ap |void |pregfree |struct regexp* r
1837 Ap |regexp*|pregcomp |char* exp|char* xend|PMOP* pm
1838 Ap |char* |re_intuit_start|regexp* prog|SV* sv|char* strpos \
1839 |char* strend|U32 flags \
1840 |struct re_scream_pos_data_s *data
1841 Ap |SV* |re_intuit_string|regexp* prog
1842 Ap |I32 |regexec_flags |regexp* prog|char* stringarg \
1843 |char* strend|char* strbeg|I32 minend \
1844 |SV* screamer|void* data|U32 flags
1845 Ap |regnode*|regnext |regnode* p
1846 p |void |regprop |SV* sv|regnode* o
1847 Ap |void |repeatcpy |char* to|const char* from|I32 len|I32 count
1848 Ap |char* |rninstr |const char* big|const char* bigend \
1849 |const char* little|const char* lend
1850 p |Sighandler_t|rsignal |int i|Sighandler_t t
1851 p |int |rsignal_restore|int i|Sigsave_t* t
1852 p |int |rsignal_save |int i|Sighandler_t t1|Sigsave_t* t2
1853 p |Sighandler_t|rsignal_state|int i
1854 p |void |rxres_free |void** rsp
1855 p |void |rxres_restore |void** rsp|REGEXP* prx
1856 p |void |rxres_save |void** rsp|REGEXP* prx
1857 #if !defined(HAS_RENAME)
1858 p |I32 |same_dirent |char* a|char* b
1860 Apd |char* |savepv |const char* sv
1861 Apd |char* |savepvn |const char* sv|I32 len
1862 Ap |void |savestack_grow
1863 Ap |void |save_aelem |AV* av|I32 idx|SV **sptr
1864 Ap |I32 |save_alloc |I32 size|I32 pad
1865 Ap |void |save_aptr |AV** aptr
1866 Ap |AV* |save_ary |GV* gv
1867 Ap |void |save_clearsv |SV** svp
1868 Ap |void |save_delete |HV* hv|char* key|I32 klen
1869 Ap |void |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|void* p
1870 Ap |void |save_destructor_x|DESTRUCTORFUNC_t f|void* p
1871 Ap |void |save_freesv |SV* sv
1872 p |void |save_freeop |OP* o
1873 Ap |void |save_freepv |char* pv
1874 Ap |void |save_generic_svref|SV** sptr
1875 Ap |void |save_gp |GV* gv|I32 empty
1876 Ap |HV* |save_hash |GV* gv
1877 Ap |void |save_helem |HV* hv|SV *key|SV **sptr
1878 Ap |void |save_hints
1879 Ap |void |save_hptr |HV** hptr
1880 Ap |void |save_I16 |I16* intp
1881 Ap |void |save_I32 |I32* intp
1882 Ap |void |save_I8 |I8* bytep
1883 Ap |void |save_int |int* intp
1884 Ap |void |save_item |SV* item
1885 Ap |void |save_iv |IV* iv
1886 Ap |void |save_list |SV** sarg|I32 maxsarg
1887 Ap |void |save_long |long* longp
1888 Ap |void |save_nogv |GV* gv
1890 Ap |SV* |save_scalar |GV* gv
1891 Ap |void |save_pptr |char** pptr
1892 Ap |void |save_vptr |void* pptr
1893 Ap |void |save_re_context
1894 Ap |void |save_sptr |SV** sptr
1895 Ap |SV* |save_svref |SV** sptr
1896 Ap |SV** |save_threadsv |PADOFFSET i
1897 p |OP* |sawparens |OP* o
1898 p |OP* |scalar |OP* o
1899 p |OP* |scalarkids |OP* o
1900 p |OP* |scalarseq |OP* o
1901 p |OP* |scalarvoid |OP* o
1902 Ap |NV |scan_bin |char* start|I32 len|I32* retlen
1903 Ap |NV |scan_hex |char* start|I32 len|I32* retlen
1904 Ap |char* |scan_num |char* s
1905 Ap |NV |scan_oct |char* start|I32 len|I32* retlen
1906 p |OP* |scope |OP* o
1907 Ap |char* |screaminstr |SV* bigsv|SV* littlesv|I32 start_shift \
1908 |I32 end_shift|I32 *state|I32 last
1910 p |I32 |setenv_getix |char* nam
1912 p |void |setdefout |GV* gv
1913 Ap |char* |sharepvn |const char* sv|I32 len|U32 hash
1914 p |HEK* |share_hek |const char* sv|I32 len|U32 hash
1915 np |Signal_t |sighandler |int sig
1916 Ap |SV** |stack_grow |SV** sp|SV**p|int n
1917 Ap |I32 |start_subparse |I32 is_format|U32 flags
1918 p |void |sub_crush_depth|CV* cv
1919 Ap |bool |sv_2bool |SV* sv
1920 Ap |CV* |sv_2cv |SV* sv|HV** st|GV** gvp|I32 lref
1921 Ap |IO* |sv_2io |SV* sv
1922 Ap |IV |sv_2iv |SV* sv
1923 Apd |SV* |sv_2mortal |SV* sv
1924 Ap |NV |sv_2nv |SV* sv
1925 Ap |char* |sv_2pv |SV* sv|STRLEN* lp
1926 Ap |char* |sv_2pvutf8 |SV* sv|STRLEN* lp
1927 Ap |char* |sv_2pvbyte |SV* sv|STRLEN* lp
1928 Ap |UV |sv_2uv |SV* sv
1929 Ap |IV |sv_iv |SV* sv
1930 Ap |UV |sv_uv |SV* sv
1931 Ap |NV |sv_nv |SV* sv
1932 Ap |char* |sv_pvn |SV *sv|STRLEN *len
1933 Ap |char* |sv_pvutf8n |SV *sv|STRLEN *len
1934 Ap |char* |sv_pvbyten |SV *sv|STRLEN *len
1935 Ap |I32 |sv_true |SV *sv
1936 p |void |sv_add_arena |char* ptr|U32 size|U32 flags
1937 Ap |int |sv_backoff |SV* sv
1938 Apd |SV* |sv_bless |SV* sv|HV* stash
1939 Afpd |void |sv_catpvf |SV* sv|const char* pat|...
1940 Ap |void |sv_vcatpvf |SV* sv|const char* pat|va_list* args
1941 Apd |void |sv_catpv |SV* sv|const char* ptr
1942 Apd |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len
1943 Apd |void |sv_catsv |SV* dsv|SV* ssv
1944 Apd |void |sv_chop |SV* sv|char* ptr
1945 p |void |sv_clean_all
1946 p |void |sv_clean_objs
1947 Ap |void |sv_clear |SV* sv
1948 Apd |I32 |sv_cmp |SV* sv1|SV* sv2
1949 Ap |I32 |sv_cmp_locale |SV* sv1|SV* sv2
1950 #if defined(USE_LOCALE_COLLATE)
1951 Ap |char* |sv_collxfrm |SV* sv|STRLEN* nxp
1953 Ap |OP* |sv_compile_2op |SV* sv|OP** startp|char* code|AV** avp
1954 Apd |void |sv_dec |SV* sv
1955 Ap |void |sv_dump |SV* sv
1956 Apd |bool |sv_derived_from|SV* sv|const char* name
1957 Apd |I32 |sv_eq |SV* sv1|SV* sv2
1958 Ap |void |sv_free |SV* sv
1959 p |void |sv_free_arenas
1960 Ap |char* |sv_gets |SV* sv|PerlIO* fp|I32 append
1961 Apd |char* |sv_grow |SV* sv|STRLEN newlen
1962 Apd |void |sv_inc |SV* sv
1963 Apd |void |sv_insert |SV* bigsv|STRLEN offset|STRLEN len \
1964 |char* little|STRLEN littlelen
1965 Apd |int |sv_isa |SV* sv|const char* name
1966 Apd |int |sv_isobject |SV* sv
1967 Apd |STRLEN |sv_len |SV* sv
1968 Ap |STRLEN |sv_len_utf8 |SV* sv
1969 Apd |void |sv_magic |SV* sv|SV* obj|int how|const char* name \
1971 Apd |SV* |sv_mortalcopy |SV* oldsv
1972 Apd |SV* |sv_newmortal
1973 Ap |SV* |sv_newref |SV* sv
1974 Ap |char* |sv_peek |SV* sv
1975 Ap |void |sv_pos_u2b |SV* sv|I32* offsetp|I32* lenp
1976 Ap |void |sv_pos_b2u |SV* sv|I32* offsetp
1977 Ap |char* |sv_pvn_force |SV* sv|STRLEN* lp
1978 Ap |char* |sv_pvutf8n_force|SV* sv|STRLEN* lp
1979 Ap |char* |sv_pvbyten_force|SV* sv|STRLEN* lp
1980 Ap |char* |sv_reftype |SV* sv|int ob
1981 Ap |void |sv_replace |SV* sv|SV* nsv
1982 Ap |void |sv_report_used
1983 Ap |void |sv_reset |char* s|HV* stash
1984 Afpd |void |sv_setpvf |SV* sv|const char* pat|...
1985 Ap |void |sv_vsetpvf |SV* sv|const char* pat|va_list* args
1986 Apd |void |sv_setiv |SV* sv|IV num
1987 Apd |void |sv_setpviv |SV* sv|IV num
1988 Apd |void |sv_setuv |SV* sv|UV num
1989 Apd |void |sv_setnv |SV* sv|NV num
1990 Apd |SV* |sv_setref_iv |SV* rv|const char* classname|IV iv
1991 Apd |SV* |sv_setref_nv |SV* rv|const char* classname|NV nv
1992 Apd |SV* |sv_setref_pv |SV* rv|const char* classname|void* pv
1993 Apd |SV* |sv_setref_pvn |SV* rv|const char* classname|char* pv \
1995 Apd |void |sv_setpv |SV* sv|const char* ptr
1996 Apd |void |sv_setpvn |SV* sv|const char* ptr|STRLEN len
1997 Apd |void |sv_setsv |SV* dsv|SV* ssv
1998 Ap |void |sv_taint |SV* sv
1999 Ap |bool |sv_tainted |SV* sv
2000 Ap |int |sv_unmagic |SV* sv|int type
2001 Apd |void |sv_unref |SV* sv
2002 Ap |void |sv_untaint |SV* sv
2003 Apd |bool |sv_upgrade |SV* sv|U32 mt
2004 Apd |void |sv_usepvn |SV* sv|char* ptr|STRLEN len
2005 Apd |void |sv_vcatpvfn |SV* sv|const char* pat|STRLEN patlen \
2006 |va_list* args|SV** svargs|I32 svmax \
2007 |bool *maybe_tainted
2008 Apd |void |sv_vsetpvfn |SV* sv|const char* pat|STRLEN patlen \
2009 |va_list* args|SV** svargs|I32 svmax \
2010 |bool *maybe_tainted
2011 Ap |NV |str_to_version |SV *sv
2012 Ap |SV* |swash_init |char* pkg|char* name|SV* listsv \
2013 |I32 minbits|I32 none
2014 Ap |UV |swash_fetch |SV *sv|U8 *ptr
2016 Ap |void |taint_proper |const char* f|const char* s
2017 Ap |UV |to_utf8_lower |U8 *p
2018 Ap |UV |to_utf8_upper |U8 *p
2019 Ap |UV |to_utf8_title |U8 *p
2020 #if defined(UNLINK_ALL_VERSIONS)
2021 Ap |I32 |unlnk |char* f
2023 #if defined(USE_THREADS)
2024 Ap |void |unlock_condpair|void* svv
2026 Ap |void |unsharepvn |const char* sv|I32 len|U32 hash
2027 p |void |unshare_hek |HEK* hek
2028 p |void |utilize |int aver|I32 floor|OP* version|OP* id|OP* arg
2029 Ap |U8* |utf16_to_utf8 |U16* p|U8 *d|I32 bytelen
2030 Ap |U8* |utf16_to_utf8_reversed|U16* p|U8 *d|I32 bytelen
2031 Ap |I32 |utf8_distance |U8 *a|U8 *b
2032 Ap |U8* |utf8_hop |U8 *s|I32 off
2033 Ap |UV |utf8_to_uv |U8 *s|I32* retlen
2034 Ap |U8* |uv_to_utf8 |U8 *d|UV uv
2035 p |void |vivify_defelem |SV* sv
2036 p |void |vivify_ref |SV* sv|U32 to_what
2037 p |I32 |wait4pid |Pid_t pid|int* statusp|int flags
2038 p |void |report_closed_fh|GV *gv|IO *io|const char *func|const char *obj
2039 p |void |report_uninit
2040 Afpd |void |warn |const char* pat|...
2041 Ap |void |vwarn |const char* pat|va_list* args
2042 Afp |void |warner |U32 err|const char* pat|...
2043 Ap |void |vwarner |U32 err|const char* pat|va_list* args
2044 p |void |watch |char** addr
2045 p |I32 |whichsig |char* sig
2046 p |int |yyerror |char* s
2047 #if defined(USE_PURE_BISON)
2048 p |int |yylex |YYSTYPE *lvalp|int *lcharp
2053 p |int |yywarn |char* s
2054 #if defined(MYMALLOC)
2055 Ap |void |dump_mstats |char* s
2056 Ap |int |get_mstats |perl_mstats_t *buf|int buflen|int level
2058 Anp |Malloc_t|safesysmalloc |MEM_SIZE nbytes
2059 Anp |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size
2060 Anp |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes
2061 Anp |Free_t |safesysfree |Malloc_t where
2062 #if defined(LEAKTEST)
2063 Anp |Malloc_t|safexmalloc |I32 x|MEM_SIZE size
2064 Anp |Malloc_t|safexcalloc |I32 x|MEM_SIZE elements|MEM_SIZE size
2065 Anp |Malloc_t|safexrealloc |Malloc_t where|MEM_SIZE size
2066 Anp |void |safexfree |Malloc_t where
2068 #if defined(PERL_GLOBAL_STRUCT)
2069 Ap |struct perl_vars *|GetVars
2071 Ap |int |runops_standard
2072 Ap |int |runops_debug
2073 Afpd |void |sv_catpvf_mg |SV *sv|const char* pat|...
2074 Ap |void |sv_vcatpvf_mg |SV* sv|const char* pat|va_list* args
2075 Apd |void |sv_catpv_mg |SV *sv|const char *ptr
2076 Apd |void |sv_catpvn_mg |SV *sv|const char *ptr|STRLEN len
2077 Apd |void |sv_catsv_mg |SV *dstr|SV *sstr
2078 Afpd |void |sv_setpvf_mg |SV *sv|const char* pat|...
2079 Ap |void |sv_vsetpvf_mg |SV* sv|const char* pat|va_list* args
2080 Apd |void |sv_setiv_mg |SV *sv|IV i
2081 Apd |void |sv_setpviv_mg |SV *sv|IV iv
2082 Apd |void |sv_setuv_mg |SV *sv|UV u
2083 Apd |void |sv_setnv_mg |SV *sv|NV num
2084 Apd |void |sv_setpv_mg |SV *sv|const char *ptr
2085 Apd |void |sv_setpvn_mg |SV *sv|const char *ptr|STRLEN len
2086 Apd |void |sv_setsv_mg |SV *dstr|SV *sstr
2087 Apd |void |sv_usepvn_mg |SV *sv|char *ptr|STRLEN len
2088 Ap |MGVTBL*|get_vtbl |int vtbl_id
2089 p |char* |pv_display |SV *sv|char *pv|STRLEN cur|STRLEN len \
2091 Afp |void |dump_indent |I32 level|PerlIO *file|const char* pat|...
2092 Ap |void |dump_vindent |I32 level|PerlIO *file|const char* pat \
2094 Ap |void |do_gv_dump |I32 level|PerlIO *file|char *name|GV *sv
2095 Ap |void |do_gvgv_dump |I32 level|PerlIO *file|char *name|GV *sv
2096 Ap |void |do_hv_dump |I32 level|PerlIO *file|char *name|HV *sv
2097 Ap |void |do_magic_dump |I32 level|PerlIO *file|MAGIC *mg|I32 nest \
2098 |I32 maxnest|bool dumpops|STRLEN pvlim
2099 Ap |void |do_op_dump |I32 level|PerlIO *file|OP *o
2100 Ap |void |do_pmop_dump |I32 level|PerlIO *file|PMOP *pm
2101 Ap |void |do_sv_dump |I32 level|PerlIO *file|SV *sv|I32 nest \
2102 |I32 maxnest|bool dumpops|STRLEN pvlim
2103 Ap |void |magic_dump |MAGIC *mg
2104 #if defined(PERL_FLEXIBLE_EXCEPTIONS)
2105 Ap |void* |default_protect|volatile JMPENV *je|int *excpt \
2106 |protect_body_t body|...
2107 Ap |void* |vdefault_protect|volatile JMPENV *je|int *excpt \
2108 |protect_body_t body|va_list *args
2110 Ap |void |reginitcolors
2111 Ap |char* |sv_2pv_nolen |SV* sv
2112 Ap |char* |sv_2pvutf8_nolen|SV* sv
2113 Ap |char* |sv_2pvbyte_nolen|SV* sv
2114 Ap |char* |sv_pv |SV *sv
2115 Ap |char* |sv_pvutf8 |SV *sv
2116 Ap |char* |sv_pvbyte |SV *sv
2117 Ap |void |sv_utf8_upgrade|SV *sv
2118 Ap |bool |sv_utf8_downgrade|SV *sv|bool fail_ok
2119 Ap |void |sv_utf8_encode |SV *sv
2120 Ap |bool |sv_utf8_decode |SV *sv
2121 Ap |void |sv_force_normal|SV *sv
2122 Ap |void |tmps_grow |I32 n
2123 Ap |SV* |sv_rvweaken |SV *sv
2124 p |int |magic_killbackrefs|SV *sv|MAGIC *mg
2125 Ap |OP* |newANONATTRSUB |I32 floor|OP *proto|OP *attrs|OP *block
2126 Ap |CV* |newATTRSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
2127 Ap |void |newMYSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
2128 p |OP * |my_attrs |OP *o|OP *attrs
2129 p |void |boot_core_xsutils
2130 #if defined(USE_ITHREADS)
2131 Ap |PERL_CONTEXT*|cx_dup |PERL_CONTEXT* cx|I32 ix|I32 max
2132 Ap |PERL_SI*|si_dup |PERL_SI* si
2133 Ap |ANY* |ss_dup |PerlInterpreter* proto_perl
2134 Ap |void* |any_dup |void* v|PerlInterpreter* proto_perl
2135 Ap |HE* |he_dup |HE* e|bool shared
2136 Ap |REGEXP*|re_dup |REGEXP* r
2137 Ap |PerlIO*|fp_dup |PerlIO* fp|char type
2138 Ap |DIR* |dirp_dup |DIR* dp
2139 Ap |GP* |gp_dup |GP* gp
2140 Ap |MAGIC* |mg_dup |MAGIC* mg
2141 Ap |SV* |sv_dup |SV* sstr
2142 #if defined(HAVE_INTERP_INTERN)
2143 Ap |void |sys_intern_dup |struct interp_intern* src \
2144 |struct interp_intern* dst
2146 Ap |PTR_TBL_t*|ptr_table_new
2147 Ap |void* |ptr_table_fetch|PTR_TBL_t *tbl|void *sv
2148 Ap |void |ptr_table_store|PTR_TBL_t *tbl|void *oldsv|void *newsv
2149 Ap |void |ptr_table_split|PTR_TBL_t *tbl
2152 #if defined(PERL_OBJECT)
2158 #if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
2159 s |I32 |avhv_index_sv |SV* sv
2160 s |I32 |avhv_index |AV* av|SV* sv|U32 hash
2163 #if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
2164 s |I32 |do_trans_CC_simple |SV *sv
2165 s |I32 |do_trans_CC_count |SV *sv
2166 s |I32 |do_trans_CC_complex |SV *sv
2167 s |I32 |do_trans_UU_simple |SV *sv
2168 s |I32 |do_trans_UU_count |SV *sv
2169 s |I32 |do_trans_UU_complex |SV *sv
2170 s |I32 |do_trans_UC_simple |SV *sv
2171 s |I32 |do_trans_CU_simple |SV *sv
2172 s |I32 |do_trans_UC_trivial |SV *sv
2173 s |I32 |do_trans_CU_trivial |SV *sv
2176 #if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
2177 s |void |gv_init_sv |GV *gv|I32 sv_type
2180 #if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
2181 s |void |hsplit |HV *hv
2182 s |void |hfreeentries |HV *hv
2185 s |void |del_he |HE *p
2186 s |HEK* |save_hek |const char *str|I32 len|U32 hash
2187 s |void |hv_magic_check |HV *hv|bool *needs_copy|bool *needs_store
2190 #if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
2191 s |void |save_magic |I32 mgs_ix|SV *sv
2192 s |int |magic_methpack |SV *sv|MAGIC *mg|char *meth
2193 s |int |magic_methcall |SV *sv|MAGIC *mg|char *meth|I32 f \
2197 #if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
2198 s |I32 |list_assignment|OP *o
2199 s |void |bad_type |I32 n|char *t|char *name|OP *kid
2200 s |void |cop_free |COP *cop
2201 s |OP* |modkids |OP *o|I32 type
2202 s |void |no_bareword_allowed|OP *o
2203 s |OP* |no_fh_allowed |OP *o
2204 s |OP* |scalarboolean |OP *o
2205 s |OP* |too_few_arguments|OP *o|char* name
2206 s |OP* |too_many_arguments|OP *o|char* name
2207 s |void |op_clear |OP* o
2208 s |void |null |OP* o
2209 s |PADOFFSET|pad_addlex |SV* name
2210 s |PADOFFSET|pad_findlex |char* name|PADOFFSET newoff|U32 seq \
2211 |CV* startcv|I32 cx_ix|I32 saweval|U32 flags
2213 s |OP* |new_logop |I32 type|I32 flags|OP **firstp|OP **otherp
2214 s |void |simplify_sort |OP *o
2215 s |bool |is_handle_constructor |OP *o|I32 argnum
2216 s |char* |gv_ename |GV *gv
2217 s |void |cv_dump |CV *cv
2218 s |CV* |cv_clone2 |CV *proto|CV *outside
2219 s |bool |scalar_mod_type|OP *o|I32 type
2220 s |OP * |my_kid |OP *o|OP *attrs
2221 s |OP * |dup_attrlist |OP *o
2222 s |void |apply_attrs |HV *stash|SV *target|OP *attrs
2223 # if defined(PL_OP_SLAB_ALLOC)
2224 s |void* |Slab_Alloc |int m|size_t sz
2228 #if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
2229 s |void |find_beginning
2230 s |void |forbid_setid |char *
2231 s |void |incpush |char *|int
2232 s |void |init_interp
2235 s |void |init_main_stash
2236 s |void |init_perllib
2237 s |void |init_postdump_symbols|int|char **|char **
2238 s |void |init_predump_symbols
2239 rs |void |my_exit_jump
2240 s |void |nuke_stacks
2241 s |void |open_script |char *|bool|SV *|int *fd
2242 s |void |usage |char *
2243 s |void |validate_suid |char *|char*|int
2244 # if defined(IAMSUID)
2245 s |int |fd_on_nosuid_fs|int fd
2247 s |void* |parse_body |char **env|XSINIT_t xsinit
2248 s |void* |run_body |I32 oldscope
2249 s |void |call_body |OP *myop|int is_eval
2250 s |void* |call_list_body |CV *cv
2251 #if defined(PERL_FLEXIBLE_EXCEPTIONS)
2252 s |void* |vparse_body |va_list args
2253 s |void* |vrun_body |va_list args
2254 s |void* |vcall_body |va_list args
2255 s |void* |vcall_list_body|va_list args
2257 # if defined(USE_THREADS)
2258 s |struct perl_thread * |init_main_thread
2262 #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
2263 s |void |doencodes |SV* sv|char* s|I32 len
2264 s |SV* |refto |SV* sv
2266 s |SV* |mul128 |SV *sv|U8 m
2267 s |SV* |is_an_int |char *s|STRLEN l
2268 s |int |div128 |SV *pnum|bool *done
2271 #if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
2272 s |OP* |docatch |OP *o
2273 s |void* |docatch_body
2274 #if defined(PERL_FLEXIBLE_EXCEPTIONS)
2275 s |void* |vdocatch_body |va_list args
2277 s |OP* |dofindlabel |OP *o|char *label|OP **opstack|OP **oplimit
2278 s |void |doparseform |SV *sv
2279 s |I32 |dopoptoeval |I32 startingblock
2280 s |I32 |dopoptolabel |char *label
2281 s |I32 |dopoptoloop |I32 startingblock
2282 s |I32 |dopoptosub |I32 startingblock
2283 s |I32 |dopoptosub_at |PERL_CONTEXT* cxstk|I32 startingblock
2284 s |void |free_closures
2285 s |void |save_lines |AV *array|SV *sv
2286 s |OP* |doeval |int gimme|OP** startop
2287 s |PerlIO *|doopen_pmc |const char *name|const char *mode
2288 s |void |qsortsv |SV ** array|size_t num_elts|SVCOMPARE_t f
2291 #if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
2292 s |int |do_maybe_phash |AV *ary|SV **lelem|SV **firstlelem \
2293 |SV **relem|SV **lastrelem
2294 s |void |do_oddball |HV *hash|SV **relem|SV **firstrelem
2295 s |CV* |get_db_sub |SV **svp|CV *cv
2296 s |SV* |method_common |SV* meth|U32* hashp
2299 #if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
2300 s |OP* |doform |CV *cv|GV *gv|OP *retop
2301 s |int |emulate_eaccess|const char* path|Mode_t mode
2302 # if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
2303 s |int |dooneliner |char *cmd|char *filename
2307 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
2308 s |regnode*|reg |I32|I32 *
2309 s |regnode*|reganode |U8|U32
2310 s |regnode*|regatom |I32 *
2311 s |regnode*|regbranch |I32 *|I32
2312 s |void |reguni |UV|char *|I32*
2313 s |regnode*|regclass
2314 s |regnode*|regclassutf8
2315 s |I32 |regcurly |char *
2316 s |regnode*|reg_node |U8
2317 s |regnode*|regpiece |I32 *
2318 s |void |reginsert |U8|regnode *
2319 s |void |regoptail |regnode *|regnode *
2320 s |void |regtail |regnode *|regnode *
2321 s |char*|regwhite |char *|char *
2323 s |regnode*|dumpuntil |regnode *start|regnode *node \
2324 |regnode *last|SV* sv|I32 l
2325 s |void |put_byte |SV* sv|int c
2326 s |void |scan_commit |struct scan_data_t *data
2327 s |void |cl_anything |struct regnode_charclass_class *cl
2328 s |int |cl_is_anything |struct regnode_charclass_class *cl
2329 s |void |cl_init |struct regnode_charclass_class *cl
2330 s |void |cl_init_zero |struct regnode_charclass_class *cl
2331 s |void |cl_and |struct regnode_charclass_class *cl \
2332 |struct regnode_charclass_class *and_with
2333 s |void |cl_or |struct regnode_charclass_class *cl \
2334 |struct regnode_charclass_class *or_with
2335 s |I32 |study_chunk |regnode **scanp|I32 *deltap \
2336 |regnode *last|struct scan_data_t *data \
2338 s |I32 |add_data |I32 n|char *s
2339 rs |void|re_croak2 |const char* pat1|const char* pat2|...
2340 s |I32 |regpposixcc |I32 value
2341 s |void |checkposixcc
2344 #if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
2345 s |I32 |regmatch |regnode *prog
2346 s |I32 |regrepeat |regnode *p|I32 max
2347 s |I32 |regrepeat_hard |regnode *p|I32 max|I32 *lp
2348 s |I32 |regtry |regexp *prog|char *startpos
2349 s |bool |reginclass |regnode *p|I32 c
2350 s |bool |reginclassutf8 |regnode *f|U8* p
2351 s |CHECKPOINT|regcppush |I32 parenfloor
2353 s |char*|regcp_set_to |I32 ss
2354 s |void |cache_re |regexp *prog
2355 s |U8* |reghop |U8 *pos|I32 off
2356 s |U8* |reghopmaybe |U8 *pos|I32 off
2357 s |char* |find_byclass |regexp * prog|regnode *c|char *s|char *strend|char *startpos|I32 norun
2360 #if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT)
2361 s |void |debprof |OP *o
2364 #if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
2365 s |SV* |save_scalar_at |SV **sptr
2368 #if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
2387 s |XPVIV* |new_xpviv
2388 s |XPVNV* |new_xpvnv
2389 s |XPVCV* |new_xpvcv
2390 s |XPVAV* |new_xpvav
2391 s |XPVHV* |new_xpvhv
2392 s |XPVMG* |new_xpvmg
2393 s |XPVLV* |new_xpvlv
2394 s |XPVBM* |new_xpvbm
2396 s |void |del_xiv |XPVIV* p
2397 s |void |del_xnv |XPVNV* p
2398 s |void |del_xpv |XPV* p
2399 s |void |del_xpviv |XPVIV* p
2400 s |void |del_xpvnv |XPVNV* p
2401 s |void |del_xpvcv |XPVCV* p
2402 s |void |del_xpvav |XPVAV* p
2403 s |void |del_xpvhv |XPVHV* p
2404 s |void |del_xpvmg |XPVMG* p
2405 s |void |del_xpvlv |XPVLV* p
2406 s |void |del_xpvbm |XPVBM* p
2407 s |void |del_xrv |XRV* p
2408 s |void |sv_unglob |SV* sv
2409 s |void |not_a_number |SV *sv
2410 s |void |visit |SVFUNC_t f
2411 s |void |sv_add_backref |SV *tsv|SV *sv
2412 s |void |sv_del_backref |SV *sv
2413 # if defined(DEBUGGING)
2414 s |void |del_sv |SV *p
2418 #if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
2420 s |void |force_next |I32 type
2421 s |char* |force_version |char *start
2422 s |char* |force_word |char *start|int token|int check_keyword \
2423 |int allow_pack|int allow_tick
2424 s |SV* |tokeq |SV *sv
2425 s |char* |scan_const |char *start
2426 s |char* |scan_formline |char *s
2427 s |char* |scan_heredoc |char *s
2428 s |char* |scan_ident |char *s|char *send|char *dest \
2429 |STRLEN destlen|I32 ck_uni
2430 s |char* |scan_inputsymbol|char *start
2431 s |char* |scan_pat |char *start|I32 type
2432 s |char* |scan_str |char *start|int keep_quoted|int keep_delims
2433 s |char* |scan_subst |char *start
2434 s |char* |scan_trans |char *start
2435 s |char* |scan_word |char *s|char *dest|STRLEN destlen \
2436 |int allow_package|STRLEN *slp
2437 s |char* |skipspace |char *s
2438 s |void |checkcomma |char *s|char *name|char *what
2439 s |void |force_ident |char *s|int kind
2440 s |void |incline |char *s
2441 s |int |intuit_method |char *s|GV *gv
2442 s |int |intuit_more |char *s
2443 s |I32 |lop |I32 f|int x|char *s
2444 s |void |missingterm |char *s
2445 s |void |no_op |char *what|char *s
2449 s |I32 |sublex_start
2450 s |char * |filter_gets |SV *sv|PerlIO *fp|STRLEN append
2451 s |SV* |new_constant |char *s|STRLEN len|const char *key|SV *sv \
2452 |SV *pv|const char *type
2453 s |int |ao |int toketype
2455 s |char* |incl_perldb
2457 s |I32 |utf16_textfilter|int idx|SV *sv|int maxlen
2458 s |I32 |utf16rev_textfilter|int idx|SV *sv|int maxlen
2460 # if defined(CRIPPLED_CC)
2461 s |int |uni |I32 f|char *s
2463 # if defined(PERL_CR_FILTER)
2464 s |I32 |cr_textfilter |int idx|SV *sv|int maxlen
2468 #if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
2469 s |SV*|isa_lookup |HV *stash|const char *name|int len|int level
2472 #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
2474 # if defined(LEAKTEST)
2479 #if defined(PERL_OBJECT)