This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
rudimentary support for remote debugging, from aeons ago (somewhat
[perl5.git] / embed.pl
CommitLineData
5f05dabc 1#!/usr/bin/perl -w
e50aee73 2
5f05dabc
PP
3require 5.003;
4
cea2e8a9
GS
5#
6# See database of global and static function prototypes at the __END__.
7# This is used to generate prototype headers under various configurations,
8# export symbols lists for different platforms, and macros to provide an
9# implicit interpreter context argument.
10#
11
12my $END = tell DATA;
13
14# walk table providing an array of components in each line to
15# subroutine, printing the result
16sub walk_table (&@) {
17 my $function = shift;
18 my $filename = shift || '-';
19 my $leader = shift;
20 my $trailer = shift;
21 my $F;
22 local *F;
23 if (ref $filename) { # filehandle
24 $F = $filename;
25 }
26 else {
27 open F, ">$filename" or die "Can't open $filename: $!";
28 $F = \*F;
29 }
30 print $F $leader if $leader;
31 seek DATA, $END, 0; # so we may restart
32 while (<DATA>) {
33 chomp;
34 while (s|\\$||) {
35 $_ .= <DATA>;
36 chomp;
37 }
38 my @args;
39 if (/^\s*(#|$)/) {
40 @args = $_;
41 }
42 else {
43 @args = split /\s*\|\s*/, $_;
44 }
45 print $F $function->(@args);
46 }
47 print $F $trailer if $trailer;
48 close $F unless ref $filename;
49}
50
51sub munge_c_files () {
52 my $functions = {};
53 unless (@ARGV) {
54 warn "\@ARGV empty, nothing to do\n";
55 return;
56 }
57 walk_table {
58 if (@_ > 1) {
59 $functions->{$_[2]} = \@_ if $_[@_-1] =~ /\.\.\./;
60 }
61 } '/dev/null';
62 local $^I = '.bak';
63 while (<>) {
64# if (/^#\s*include\s+"perl.h"/) {
65# my $file = uc $ARGV;
66# $file =~ s/\./_/g;
67# print "#define PERL_IN_$file\n";
68# }
69# s{^(\w+)\s*\(}
70# {
71# my $f = $1;
72# my $repl = "$f(";
73# if (exists $functions->{$f}) {
74# my $flags = $functions->{$f}[0];
75# $repl = "Perl_$repl" if $flags =~ /p/;
76# unless ($flags =~ /n/) {
77# $repl .= "pTHX";
78# $repl .= "_ " if @{$functions->{$f}} > 3;
79# }
80# warn("$ARGV:$.:$repl\n");
81# }
82# $repl;
83# }e;
84 s{(\b(\w+)[ \t]*\([ \t]*(?!aTHX))}
85 {
86 my $repl = $1;
87 my $f = $2;
88 if (exists $functions->{$f}) {
89 $repl .= "aTHX_ ";
90 warn("$ARGV:$.:$`#$repl#$'");
91 }
92 $repl;
93 }eg;
94 print;
95 close ARGV if eof; # restart $.
96 }
97 exit;
98}
99
100#munge_c_files();
101
102# generate proto.h
0cb96387
GS
103my $wrote_protected = 0;
104
cea2e8a9
GS
105sub write_protos {
106 my $ret = "";
107 if (@_ == 1) {
108 my $arg = shift;
0cb96387
GS
109 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/
110 or $arg =~ /^\s*(public|protected|private):/;
cea2e8a9
GS
111 }
112 else {
113 my ($flags,$retval,$func,@args) = @_;
114 if ($flags =~ /s/) {
115 $retval = "STATIC $retval";
116 $func = "S_$func";
117 }
0cb96387 118 else {
d20626d8 119 $retval = "PERL_CALLCONV $retval";
0cb96387
GS
120 if ($flags =~ /p/) {
121 $func = "Perl_$func";
122 }
cea2e8a9
GS
123 }
124 $ret .= "$retval\t$func(";
125 unless ($flags =~ /n/) {
126 $ret .= "pTHX";
127 $ret .= "_ " if @args;
128 }
129 if (@args) {
130 $ret .= join ", ", @args;
131 }
132 else {
133 $ret .= "void" if $flags =~ /n/;
134 }
135 $ret .= ")";
136 $ret .= " __attribute__((noreturn))" if $flags =~ /r/;
137 $ret .= ";\n";
138 }
139 $ret;
140}
141
142# generates global.sym, and populates %global with global symbols
143sub write_global_sym {
144 my $ret = "";
145 if (@_ > 1) {
146 my ($flags,$retval,$func,@args) = @_;
147 unless ($flags =~ /s/) {
148 $func = "Perl_$func" if $flags =~ /p/;
149 $ret = "$func\n";
150 }
151 }
152 $ret;
153}
154
155
156walk_table(\&write_protos, 'proto.h', <<'EOT');
157/*
158 * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
159 * This file is autogenerated from data in embed.pl. Edit that file
160 * and run 'make regen_headers' to effect changes.
161 */
162
163EOT
164
165walk_table(\&write_global_sym, 'global.sym', <<'EOT');
166#
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.
170#
171
172EOT
173
709f4e38
GS
174# XXX others that may need adding
175# warnhook
176# hints
177# copline
84fee439
NIS
178my @extvars = qw(sv_undef sv_yes sv_no na dowarn
179 curcop compiling
180 tainting tainted stack_base stack_sp sv_arenaroot
256a4781 181 no_modify
84fee439
NIS
182 curstash DBsub DBsingle debstash
183 rsfp
184 stdingv
6b88bc9c
GS
185 defgv
186 errgv
3070f6ec
GS
187 rsfp_filters
188 perldb
709f4e38
GS
189 diehook
190 dirty
191 perl_destruct_level
84fee439
NIS
192 );
193
5f05dabc
PP
194sub readsyms (\%$) {
195 my ($syms, $file) = @_;
5f05dabc
PP
196 local (*FILE, $_);
197 open(FILE, "< $file")
198 or die "embed.pl: Can't open $file: $!\n";
199 while (<FILE>) {
200 s/[ \t]*#.*//; # Delete comments.
201 if (/^\s*(\S+)\s*$/) {
22c35a8c
GS
202 my $sym = $1;
203 warn "duplicate symbol $sym while processing $file\n"
204 if exists $$syms{$sym};
205 $$syms{$sym} = 1;
5f05dabc
PP
206 }
207 }
208 close(FILE);
209}
210
cea2e8a9
GS
211# Perl_pp_* and Perl_ck_* are in pp.sym
212readsyms my %ppsym, 'pp.sym';
5f05dabc 213
c6af7a1a
GS
214sub readvars(\%$$@) {
215 my ($syms, $file,$pre,$keep_pre) = @_;
d4cce5f1
NIS
216 local (*FILE, $_);
217 open(FILE, "< $file")
218 or die "embed.pl: Can't open $file: $!\n";
219 while (<FILE>) {
220 s/[ \t]*#.*//; # Delete comments.
51371543 221 if (/PERLVARA?I?C?\($pre(\w+)/) {
22c35a8c 222 my $sym = $1;
c6af7a1a 223 $sym = $pre . $sym if $keep_pre;
22c35a8c
GS
224 warn "duplicate symbol $sym while processing $file\n"
225 if exists $$syms{$sym};
51371543 226 $$syms{$sym} = $pre || 1;
d4cce5f1
NIS
227 }
228 }
229 close(FILE);
230}
231
232my %intrp;
233my %thread;
234
235readvars %intrp, 'intrpvar.h','I';
236readvars %thread, 'thrdvar.h','T';
22239a37 237readvars %globvar, 'perlvars.h','G';
d4cce5f1 238
51371543 239foreach my $sym (sort keys %thread) {
34b58025 240 warn "$sym in intrpvar.h as well as thrdvar.h\n" if exists $intrp{$sym};
51371543 241}
d4cce5f1 242
c6af7a1a
GS
243sub undefine ($) {
244 my ($sym) = @_;
245 "#undef $sym\n";
246}
247
5f05dabc
PP
248sub hide ($$) {
249 my ($from, $to) = @_;
250 my $t = int(length($from) / 8);
251 "#define $from" . "\t" x ($t < 3 ? 3 - $t : 1) . "$to\n";
252}
c6af7a1a 253
51371543
GS
254sub objxsub_var ($$) {
255 my ($pfx, $sym) = @_;
c5be433b
GS
256 my $arg = ($pfx eq 'G' ? 'NULL' : 'aTHXo');
257 undefine("PL_$sym") . hide("PL_$sym", "(*Perl_${pfx}${sym}_ptr($arg))");
c6af7a1a
GS
258}
259
d4cce5f1
NIS
260sub multon ($$$) {
261 my ($sym,$pre,$ptr) = @_;
3280af22 262 hide("PL_$sym", "($ptr$pre$sym)");
5f05dabc 263}
54aff467 264
d4cce5f1
NIS
265sub multoff ($$) {
266 my ($sym,$pre) = @_;
533c011a 267 return hide("PL_$pre$sym", "PL_$sym");
5f05dabc
PP
268}
269
270unlink 'embed.h';
cea2e8a9 271open(EM, '> embed.h') or die "Can't create embed.h: $!\n";
e50aee73
AD
272
273print EM <<'END';
76b72cf1 274/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
cea2e8a9 275 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
c6af7a1a 276 perlvars.h and thrdvar.h. Any changes made here will be lost!
76b72cf1 277*/
e50aee73
AD
278
279/* (Doing namespace management portably in C is really gross.) */
280
22c35a8c 281/* NO_EMBED is no longer supported. i.e. EMBED is always active. */
820c3be9 282
538feb02
GS
283/* provide binary compatible (but inconsistent) names */
284#if defined(PERL_BINCOMPAT_5005)
285# define Perl_call_argv perl_call_argv
286# define Perl_call_method perl_call_method
287# define Perl_call_pv perl_call_pv
288# define Perl_call_sv perl_call_sv
289# define Perl_get_av perl_get_av
290# define Perl_get_cv perl_get_cv
291# define Perl_get_hv perl_get_hv
292# define Perl_get_sv perl_get_sv
293# define Perl_init_i18nl10n perl_init_i18nl10n
294# define Perl_init_i18nl14n perl_init_i18nl14n
295# define Perl_new_collate perl_new_collate
296# define Perl_new_ctype perl_new_ctype
297# define Perl_new_numeric perl_new_numeric
298# define Perl_require_pv perl_require_pv
299# define Perl_safesyscalloc Perl_safecalloc
300# define Perl_safesysfree Perl_safefree
301# define Perl_safesysmalloc Perl_safemalloc
302# define Perl_safesysrealloc Perl_saferealloc
303# define Perl_set_numeric_local perl_set_numeric_local
304# define Perl_set_numeric_standard perl_set_numeric_standard
37bd1396
GS
305/* malloc() pollution was the default in earlier versions, so enable
306 * it for bincompat; but not for systems that used to do prevent that,
307 * or when they ask for {HIDE,EMBED}MYMALLOC */
308# if !defined(EMBEDMYMALLOC) && !defined(HIDEMYMALLOC)
309# if !defined(NeXT) && !defined(__NeXT) && !defined(__MACHTEN__) && \
310 !defined(__QNX__)
311# define PERL_POLLUTE_MALLOC
312# endif
3d3b6b6a 313# endif
538feb02
GS
314#endif
315
22c35a8c 316/* Hide global symbols */
5f05dabc 317
22c35a8c 318#if !defined(PERL_OBJECT)
cea2e8a9 319#if !defined(PERL_IMPLICIT_CONTEXT)
e50aee73 320
e50aee73
AD
321END
322
cea2e8a9
GS
323walk_table {
324 my $ret = "";
325 if (@_ == 1) {
326 my $arg = shift;
327 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/;
328 }
329 else {
330 my ($flags,$retval,$func,@args) = @_;
331 unless ($flags =~ /o/) {
332 if ($flags =~ /s/) {
333 $ret .= hide($func,"S_$func");
334 }
335 elsif ($flags =~ /p/) {
336 $ret .= hide($func,"Perl_$func");
337 }
338 }
339 }
340 $ret;
341} \*EM;
342
343for $sym (sort keys %ppsym) {
344 $sym =~ s/^Perl_//;
345 print EM hide($sym, "Perl_$sym");
346}
347
348print EM <<'END';
349
350#else /* PERL_IMPLICIT_CONTEXT */
351
352END
353
354my @az = ('a'..'z');
355
356walk_table {
357 my $ret = "";
358 if (@_ == 1) {
359 my $arg = shift;
360 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/;
361 }
362 else {
363 my ($flags,$retval,$func,@args) = @_;
364 unless ($flags =~ /o/) {
365 my $args = scalar @args;
366 if ($args and $args[$args-1] =~ /\.\.\./) {
367 # we're out of luck for varargs functions under CPP
368 }
369 elsif ($flags =~ /n/) {
370 if ($flags =~ /s/) {
371 $ret .= hide($func,"S_$func");
372 }
373 elsif ($flags =~ /p/) {
374 $ret .= hide($func,"Perl_$func");
375 }
376 }
377 else {
378 my $alist = join(",", @az[0..$args-1]);
379 $ret = "#define $func($alist)";
380 my $t = int(length($ret) / 8);
381 $ret .= "\t" x ($t < 4 ? 4 - $t : 1);
382 if ($flags =~ /s/) {
383 $ret .= "S_$func(aTHX";
384 }
385 elsif ($flags =~ /p/) {
386 $ret .= "Perl_$func(aTHX";
387 }
388 $ret .= "_ " if $alist;
389 $ret .= $alist . ")\n";
390 }
391 }
392 }
393 $ret;
394} \*EM;
395
396for $sym (sort keys %ppsym) {
397 $sym =~ s/^Perl_//;
398 if ($sym =~ /^ck_/) {
399 print EM hide("$sym(a)", "Perl_$sym(aTHX_ a)");
400 }
401 elsif ($sym =~ /^pp_/) {
402 print EM hide("$sym()", "Perl_$sym(aTHX)");
403 }
404 else {
405 warn "Illegal symbol '$sym' in pp.sym";
406 }
e50aee73
AD
407}
408
e50aee73
AD
409print EM <<'END';
410
cea2e8a9 411#endif /* PERL_IMPLICIT_CONTEXT */
22c35a8c
GS
412#else /* PERL_OBJECT */
413
414END
415
cea2e8a9
GS
416walk_table {
417 my $ret = "";
418 if (@_ == 1) {
419 my $arg = shift;
420 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/;
421 }
422 else {
423 my ($flags,$retval,$func,@args) = @_;
0cb96387
GS
424 if ($flags =~ /s/) {
425 $ret .= hide("S_$func","CPerlObj::S_$func");
426 $ret .= hide($func,"S_$func");
427 }
428 elsif ($flags =~ /p/) {
429 $ret .= hide("Perl_$func","CPerlObj::Perl_$func");
430 $ret .= hide($func,"Perl_$func");
431 }
432 else {
433 $ret .= hide($func,"CPerlObj::$func");
cea2e8a9
GS
434 }
435 }
436 $ret;
437} \*EM;
438
439for $sym (sort keys %ppsym) {
440 $sym =~ s/^Perl_//;
0cb96387
GS
441 print EM hide("Perl_$sym", "CPerlObj::Perl_$sym");
442 print EM hide($sym, "Perl_$sym");
22c35a8c
GS
443}
444
445print EM <<'END';
446
447#endif /* PERL_OBJECT */
e50aee73 448
cea2e8a9
GS
449/* Compatibility stubs. Compile extensions with -DPERL_NOCOMPAT to
450 disable them.
451 */
452
538feb02 453#if !defined(PERL_CORE)
c88bfdbc
GS
454# define sv_setptrobj(rv,ptr,name) sv_setref_iv(rv,name,PTR2IV(ptr))
455# define sv_setptrref(rv,ptr) sv_setref_iv(rv,Nullch,PTR2IV(ptr))
538feb02 456#endif
cea2e8a9 457
538feb02 458#if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) && !defined(PERL_BINCOMPAT_5005)
cea2e8a9
GS
459
460/* Compatibility for various misnamed functions. All functions
461 in the API that begin with "perl_" (not "Perl_") take an explicit
462 interpreter context pointer.
463 The following are not like that, but since they had a "perl_"
464 prefix in previous versions, we provide compatibility macros.
465 */
65cec589
GS
466# define perl_atexit(a,b) call_atexit(a,b)
467# define perl_call_argv(a,b,c) call_argv(a,b,c)
468# define perl_call_pv(a,b) call_pv(a,b)
469# define perl_call_method(a,b) call_method(a,b)
470# define perl_call_sv(a,b) call_sv(a,b)
471# define perl_eval_sv(a,b) eval_sv(a,b)
472# define perl_eval_pv(a,b) eval_pv(a,b)
473# define perl_require_pv(a) require_pv(a)
474# define perl_get_sv(a,b) get_sv(a,b)
475# define perl_get_av(a,b) get_av(a,b)
476# define perl_get_hv(a,b) get_hv(a,b)
477# define perl_get_cv(a,b) get_cv(a,b)
478# define perl_init_i18nl10n(a) init_i18nl10n(a)
479# define perl_init_i18nl14n(a) init_i18nl14n(a)
480# define perl_new_ctype(a) new_ctype(a)
481# define perl_new_collate(a) new_collate(a)
482# define perl_new_numeric(a) new_numeric(a)
cea2e8a9
GS
483
484/* varargs functions can't be handled with CPP macros. :-(
485 This provides a set of compatibility functions that don't take
486 an extra argument but grab the context pointer using the macro
487 dTHX.
488 */
c5be433b 489#if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_OBJECT)
cea2e8a9 490# define croak Perl_croak_nocontext
c5be433b 491# define deb Perl_deb_nocontext
cea2e8a9
GS
492# define die Perl_die_nocontext
493# define form Perl_form_nocontext
5a844595 494# define mess Perl_mess_nocontext
cea2e8a9
GS
495# define newSVpvf Perl_newSVpvf_nocontext
496# define sv_catpvf Perl_sv_catpvf_nocontext
497# define sv_setpvf Perl_sv_setpvf_nocontext
498# define warn Perl_warn_nocontext
c5be433b 499# define warner Perl_warner_nocontext
cea2e8a9
GS
500# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext
501# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext
502#endif
503
504#endif /* !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) */
505
506#if !defined(PERL_IMPLICIT_CONTEXT)
507/* undefined symbols, point them back at the usual ones */
508# define Perl_croak_nocontext Perl_croak
509# define Perl_die_nocontext Perl_die
c5be433b 510# define Perl_deb_nocontext Perl_deb
cea2e8a9 511# define Perl_form_nocontext Perl_form
5a844595 512# define Perl_mess_nocontext Perl_mess
c5be433b
GS
513# define Perl_newSVpvf_nocontext Perl_newSVpvf
514# define Perl_sv_catpvf_nocontext Perl_sv_catpvf
515# define Perl_sv_setpvf_nocontext Perl_sv_setpvf
cea2e8a9 516# define Perl_warn_nocontext Perl_warn
c5be433b 517# define Perl_warner_nocontext Perl_warner
cea2e8a9
GS
518# define Perl_sv_catpvf_mg_nocontext Perl_sv_catpvf_mg
519# define Perl_sv_setpvf_mg_nocontext Perl_sv_setpvf_mg
520#endif
db5cf5a9 521
d4cce5f1
NIS
522END
523
524close(EM);
525
526unlink 'embedvar.h';
527open(EM, '> embedvar.h')
528 or die "Can't create embedvar.h: $!\n";
529
530print EM <<'END';
531/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
cea2e8a9 532 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
c6af7a1a 533 perlvars.h and thrdvar.h. Any changes made here will be lost!
d4cce5f1
NIS
534*/
535
536/* (Doing namespace management portably in C is really gross.) */
537
54aff467
GS
538/*
539 The following combinations of MULTIPLICITY, USE_THREADS, PERL_OBJECT
540 and PERL_IMPLICIT_CONTEXT are supported:
541 1) none
542 2) MULTIPLICITY # supported for compatibility
543 3) MULTIPLICITY && PERL_IMPLICIT_CONTEXT
544 4) USE_THREADS && PERL_IMPLICIT_CONTEXT
545 5) MULTIPLICITY && USE_THREADS && PERL_IMPLICIT_CONTEXT
546 6) PERL_OBJECT && PERL_IMPLICIT_CONTEXT
547
548 All other combinations of these flags are errors.
549
550 #3, #4, #5, and #6 are supported directly, while #2 is a special
551 case of #3 (supported by redefining vTHX appropriately).
552*/
cea2e8a9 553
54aff467
GS
554#if defined(MULTIPLICITY)
555/* cases 2, 3 and 5 above */
cea2e8a9 556
54aff467
GS
557# if defined(PERL_IMPLICIT_CONTEXT)
558# define vTHX aTHX
559# else
560# define vTHX PERL_GET_INTERP
561# endif
cea2e8a9 562
e50aee73
AD
563END
564
d4cce5f1 565for $sym (sort keys %thread) {
54aff467 566 print EM multon($sym,'T','vTHX->');
d4cce5f1
NIS
567}
568
569print EM <<'END';
570
54aff467
GS
571# if defined(PERL_OBJECT)
572# include "error: PERL_OBJECT + MULTIPLICITY don't go together"
573# endif
d4cce5f1 574
54aff467
GS
575# if defined(USE_THREADS)
576/* case 5 above */
d4cce5f1
NIS
577
578END
579
580for $sym (sort keys %intrp) {
c5be433b 581 print EM multon($sym,'I','PERL_GET_INTERP->');
760ac839 582}
760ac839 583
55497cff
PP
584print EM <<'END';
585
54aff467
GS
586# else /* !USE_THREADS */
587/* cases 2 and 3 above */
55497cff
PP
588
589END
760ac839 590
d4cce5f1 591for $sym (sort keys %intrp) {
54aff467 592 print EM multon($sym,'I','vTHX->');
d4cce5f1
NIS
593}
594
595print EM <<'END';
596
54aff467 597# endif /* USE_THREADS */
d4cce5f1 598
54aff467
GS
599#else /* !MULTIPLICITY */
600/* cases 1, 4 and 6 above */
5f05dabc 601
56d28764 602END
e50aee73 603
d4cce5f1 604for $sym (sort keys %intrp) {
54aff467 605 print EM multoff($sym,'I');
d4cce5f1
NIS
606}
607
608print EM <<'END';
609
54aff467
GS
610# if defined(USE_THREADS)
611/* case 4 above */
d4cce5f1
NIS
612
613END
614
615for $sym (sort keys %thread) {
54aff467 616 print EM multon($sym,'T','aTHX->');
5f05dabc
PP
617}
618
619print EM <<'END';
620
54aff467
GS
621# else /* !USE_THREADS */
622/* cases 1 and 6 above */
d4cce5f1
NIS
623
624END
625
626for $sym (sort keys %thread) {
54aff467 627 print EM multoff($sym,'T');
d4cce5f1
NIS
628}
629
630print EM <<'END';
631
54aff467
GS
632# endif /* USE_THREADS */
633#endif /* MULTIPLICITY */
d4cce5f1 634
54aff467 635#if defined(PERL_GLOBAL_STRUCT)
22239a37
NIS
636
637END
638
639for $sym (sort keys %globvar) {
533c011a 640 print EM multon($sym,'G','PL_Vars.');
22239a37
NIS
641}
642
643print EM <<'END';
644
645#else /* !PERL_GLOBAL_STRUCT */
646
647END
648
649for $sym (sort keys %globvar) {
650 print EM multoff($sym,'G');
651}
652
653print EM <<'END';
654
22239a37
NIS
655#endif /* PERL_GLOBAL_STRUCT */
656
db5cf5a9 657#ifdef PERL_POLLUTE /* disabled by default in 5.006 */
84fee439
NIS
658
659END
660
661for $sym (sort @extvars) {
662 print EM hide($sym,"PL_$sym");
663}
664
665print EM <<'END';
666
db5cf5a9 667#endif /* PERL_POLLUTE */
84fee439
NIS
668END
669
3fe35a81 670close(EM);
c6af7a1a
GS
671
672unlink 'objXSUB.h';
673open(OBX, '> objXSUB.h')
674 or die "Can't create objXSUB.h: $!\n";
675
676print OBX <<'EOT';
677/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
cea2e8a9 678 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
c6af7a1a
GS
679 perlvars.h and thrdvar.h. Any changes made here will be lost!
680*/
681
682#ifndef __objXSUB_h__
683#define __objXSUB_h__
684
685/* Variables */
686
687EOT
688
51371543
GS
689foreach my $sym (sort keys %intrp) {
690 print OBX objxsub_var('I',$sym);
691}
692
693foreach my $sym (sort keys %thread) {
694 print OBX objxsub_var('T',$sym);
695}
696
697foreach my $sym (sort keys %globvar) {
698 print OBX objxsub_var('G',$sym);
c6af7a1a
GS
699}
700
701print OBX <<'EOT';
702
703/* Functions */
704
c5be433b
GS
705#if defined(PERL_OBJECT)
706
707/* XXX soon to be eliminated, only a few things in PERLCORE need these now */
708
c6af7a1a
GS
709EOT
710
cea2e8a9
GS
711walk_table {
712 my $ret = "";
713 if (@_ == 1) {
714 my $arg = shift;
715 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/;
716 }
717 else {
718 my ($flags,$retval,$func,@args) = @_;
0cb96387 719 unless ($flags =~ /s/) {
cea2e8a9 720 if ($flags =~ /p/) {
0cb96387
GS
721 $ret .= undefine("Perl_$func") . hide("Perl_$func","pPerl->Perl_$func");
722 $ret .= undefine($func) . hide($func,"Perl_$func");
723 }
724 else {
cea2e8a9
GS
725 $ret .= undefine($func) . hide($func,"pPerl->$func");
726 }
727 }
728 }
729 $ret;
730} \*OBX;
c6af7a1a 731
cea2e8a9
GS
732for $sym (sort keys %ppsym) {
733 $sym =~ s/^Perl_//;
0cb96387
GS
734 print OBX undefine("Perl_$sym") . hide("Perl_$sym", "pPerl->Perl_$sym");
735 print OBX undefine($sym) . hide($sym, "Perl_$sym");
c6af7a1a
GS
736}
737
c6af7a1a
GS
738print OBX <<'EOT';
739
c5be433b 740#endif /* PERL_OBJECT */
c6af7a1a
GS
741#endif /* __objXSUB_h__ */
742EOT
743
744close(OBX);
cea2e8a9 745
51371543
GS
746unlink 'perlapi.h';
747unlink 'perlapi.c';
748open(CAPI, '> perlapi.c') or die "Can't create perlapi.c: $!\n";
749open(CAPIH, '> perlapi.h') or die "Can't create perlapi.h: $!\n";
750
751print CAPIH <<'EOT';
752/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
753 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
754 perlvars.h and thrdvar.h. Any changes made here will be lost!
755*/
756
51371543
GS
757/* declare accessor functions for Perl variables */
758
c5be433b
GS
759#if defined(PERL_OBJECT) || defined (PERL_CAPI)
760
761#if defined(PERL_OBJECT)
762# undef aTHXo
763# define aTHXo pPerl
764# undef aTHXo_
765# define aTHXo_ aTHXo,
c5be433b
GS
766#endif /* PERL_OBJECT */
767
51371543
GS
768START_EXTERN_C
769
770#undef PERLVAR
771#undef PERLVARA
772#undef PERLVARI
773#undef PERLVARIC
c5be433b 774#define PERLVAR(v,t) EXTERN_C t* Perl_##v##_ptr(pTHXo);
51371543 775#define PERLVARA(v,n,t) typedef t PL_##v##_t[n]; \
c5be433b 776 EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHXo);
51371543 777#define PERLVARI(v,t,i) PERLVAR(v,t)
c5be433b 778#define PERLVARIC(v,t,i) PERLVAR(v, const t)
51371543
GS
779
780#include "thrdvar.h"
781#include "intrpvar.h"
782#include "perlvars.h"
783
784#undef PERLVAR
785#undef PERLVARA
786#undef PERLVARI
787#undef PERLVARIC
788
789END_EXTERN_C
790
c5be433b 791#endif /* PERL_OBJECT || PERL_CAPI */
51371543
GS
792
793EOT
794
795
796print CAPI <<'EOT';
797/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
798 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
799 perlvars.h and thrdvar.h. Any changes made here will be lost!
800*/
801
802#include "EXTERN.h"
803#include "perl.h"
804#include "perlapi.h"
805
806#if defined(PERL_OBJECT)
807
808/* accessor functions for Perl variables (provides binary compatibility) */
809START_EXTERN_C
810
811#undef PERLVAR
812#undef PERLVARA
813#undef PERLVARI
814#undef PERLVARIC
c5be433b
GS
815#define PERLVAR(v,t) t* Perl_##v##_ptr(pTHXo) \
816 { return &(aTHXo->PL_##v); }
817#define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHXo) \
818 { return &(aTHXo->PL_##v); }
51371543 819#define PERLVARI(v,t,i) PERLVAR(v,t)
c5be433b 820#define PERLVARIC(v,t,i) PERLVAR(v, const t)
51371543
GS
821
822#include "thrdvar.h"
823#include "intrpvar.h"
c5be433b
GS
824
825#undef PERLVAR
826#undef PERLVARA
827#define PERLVAR(v,t) t* Perl_##v##_ptr(pTHXo) \
828 { return &(PL_##v); }
829#define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHXo) \
830 { return &(PL_##v); }
51371543
GS
831#include "perlvars.h"
832
833#undef PERLVAR
834#undef PERLVARA
835#undef PERLVARI
836#undef PERLVARIC
837
838EOT
839
c5be433b 840# functions that take va_list* for implementing vararg functions
08cd8952 841# NOTE: makedef.pl must be updated if you add symbols to %vfuncs
c5be433b
GS
842my %vfuncs = qw(
843 Perl_croak Perl_vcroak
844 Perl_warn Perl_vwarn
845 Perl_warner Perl_vwarner
846 Perl_die Perl_vdie
847 Perl_form Perl_vform
5a844595 848 Perl_mess Perl_vmess
c5be433b
GS
849 Perl_deb Perl_vdeb
850 Perl_newSVpvf Perl_vnewSVpvf
851 Perl_sv_setpvf Perl_sv_vsetpvf
852 Perl_sv_setpvf_mg Perl_sv_vsetpvf_mg
853 Perl_sv_catpvf Perl_sv_vcatpvf
854 Perl_sv_catpvf_mg Perl_sv_vcatpvf_mg
855 Perl_dump_indent Perl_dump_vindent
856 Perl_default_protect Perl_vdefault_protect
857);
858
51371543 859sub emit_func {
c5be433b 860 my ($addcontext, $rettype,$func,@args) = @_;
51371543
GS
861 my @aargs = @args;
862 for my $a (@aargs) { $a =~ s/^.*\b(\w+)$/$1/ }
c5be433b
GS
863 my $ctxarg = '';
864 if (not $addcontext) {
865 $ctxarg = 'pTHXo';
866 $ctxarg .= '_ ' if @args;
867 }
868 my $decl = '';
869 if ($addcontext) {
870 $decl .= " dTHXo;\n";
871 }
51371543 872 local $" = ', ';
c5be433b
GS
873 my $return = ($rettype =~ /^\s*(void|Free_t|Signal_t)\s*$/
874 ? '' : 'return ');
875 my $emitval = '';
876 if (@args and $args[$#args] =~ /\.\.\./) {
c5be433b
GS
877 pop @aargs;
878 my $retarg = '';
879 my $ctxfunc = $func;
880 $ctxfunc =~ s/_nocontext$//;
881 return $emitval unless exists $vfuncs{$ctxfunc};
882 if (length $return) {
883 $decl .= " $rettype retval;\n";
884 $retarg .= "retval = ";
885 $return = "\n ${return}retval;\n";
886 }
887 $emitval .= <<EOT
888$rettype
889$func($ctxarg@args)
51371543 890{
c5be433b
GS
891$decl va_list args;
892 va_start(args, $aargs[$#aargs]);
893 $retarg((CPerlObj*)pPerl)->$vfuncs{$ctxfunc}(@aargs, &args);
894 va_end(args);$return
51371543
GS
895}
896EOT
c5be433b
GS
897 }
898 else {
899 $emitval .= <<EOT
900$rettype
901$func($ctxarg@args)
902{
903$decl $return((CPerlObj*)pPerl)->$func(@aargs);
904}
905EOT
906 }
907 $emitval;
51371543
GS
908}
909
910# XXXX temporary hack
911for my $sym (qw(
912 perl_construct
913 perl_destruct
914 perl_free
915 perl_run
916 perl_parse
917 ))
918{
919 $skipapi_funcs{$sym}++;
920}
921
922walk_table {
923 my $ret = "";
924 if (@_ == 1) {
925 my $arg = shift;
926 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/;
927 }
928 else {
929 my ($flags,$retval,$func,@args) = @_;
930 return $ret if exists $skipapi_funcs{$func};
c5be433b
GS
931 unless ($flags =~ /s/) {
932 $ret .= "\n";
933 my $addctx = 1 if $flags =~ /n/;
934 if ($flags =~ /p/) {
935 $ret .= undefine("Perl_$func");
936 $ret .= emit_func($addctx,$retval,"Perl_$func",@args);
937 }
938 else {
939 $ret .= undefine($func);
940 $ret .= emit_func($addctx,$retval,$func,@args);
51371543
GS
941 }
942 }
943 }
944 $ret;
945} \*CAPI;
946
947for $sym (sort keys %ppsym) {
948 $sym =~ s/^Perl_//;
949 print CAPI "\n";
950 print CAPI undefine("Perl_$sym");
951 if ($sym =~ /^ck_/) {
c5be433b 952 print CAPI emit_func(0, 'OP *',"Perl_$sym",'OP *o');
51371543
GS
953 }
954 else { # pp_foo
c5be433b 955 print CAPI emit_func(0, 'OP *',"Perl_$sym");
51371543
GS
956 }
957}
958
959print CAPI <<'EOT';
960
c5be433b
GS
961#undef Perl_fprintf_nocontext
962int
963Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
964{
965 dTHXo;
966 va_list(arglist);
967 va_start(arglist, format);
968 return (*pPerl->PL_StdIO->pVprintf)(pPerl->PL_StdIO, stream, format, arglist);
969}
970
51371543
GS
971END_EXTERN_C
972
973#endif /* PERL_OBJECT */
974EOT
975
cea2e8a9
GS
976__END__
977
978# Lines are of the form:
fc0dc3b3 979# flags|return_type|function_name|arg1|arg2|...|argN
cea2e8a9 980#
fc0dc3b3 981# A line may be continued on another by ending it with a backslash.
cea2e8a9
GS
982# Leading and trailing whitespace will be ignored in each component.
983#
984# flags are single letters with following meanings:
985# s static function, should have an S_ prefix in source
986# file
987# n has no implicit interpreter/thread context argument
988# p function has a Perl_ prefix
989# r function never returns
990# o has no compatibility macro (#define foo Perl_foo)
991#
992# Individual flags may be separated by whitespace.
993#
994# New global functions should be added at the end for binary compatibility
995# in some configurations.
996#
997# TODO: 1) Add a flag to mark the functions that are part of the public API.
998# 2) Add a field for documentation, so that L<perlguts/"API LISTING">
999# may be autogenerated.
1000#
1001
0cb96387
GS
1002#if defined(PERL_OBJECT)
1003public:
1004#endif
cea2e8a9
GS
1005p |SV* |amagic_call |SV* left|SV* right|int method|int dir
1006p |bool |Gv_AMupdate |HV* stash
1007p |OP* |append_elem |I32 optype|OP* head|OP* tail
1008p |OP* |append_list |I32 optype|LISTOP* first|LISTOP* last
1009p |I32 |apply |I32 type|SV** mark|SV** sp
cea2e8a9
GS
1010p |bool |avhv_exists_ent|AV *ar|SV* keysv|U32 hash
1011p |SV** |avhv_fetch_ent |AV *ar|SV* keysv|I32 lval|U32 hash
1012p |HE* |avhv_iternext |AV *ar
1013p |SV* |avhv_iterval |AV *ar|HE* entry
1014p |HV* |avhv_keys |AV *ar
1015p |void |av_clear |AV* ar
1016p |void |av_extend |AV* ar|I32 key
1017p |AV* |av_fake |I32 size|SV** svp
1018p |SV** |av_fetch |AV* ar|I32 key|I32 lval
1019p |void |av_fill |AV* ar|I32 fill
1020p |I32 |av_len |AV* ar
1021p |AV* |av_make |I32 size|SV** svp
1022p |SV* |av_pop |AV* ar
1023p |void |av_push |AV* ar|SV* val
1024p |void |av_reify |AV* ar
1025p |SV* |av_shift |AV* ar
1026p |SV** |av_store |AV* ar|I32 key|SV* val
1027p |void |av_undef |AV* ar
1028p |void |av_unshift |AV* ar|I32 num
1029p |OP* |bind_match |I32 type|OP* left|OP* pat
1030p |OP* |block_end |I32 floor|OP* seq
1031p |I32 |block_gimme
1032p |int |block_start |int full
1033p |void |boot_core_UNIVERSAL
1034p |void |call_list |I32 oldscope|AV* av_list
7f4774ae 1035p |bool |cando |Mode_t mode|Uid_t effective|Stat_t* statbufp
cad2e5aa
JH
1036p |U32 |cast_ulong |NV f
1037p |I32 |cast_i32 |NV f
1038p |IV |cast_iv |NV f
1039p |UV |cast_uv |NV f
cea2e8a9
GS
1040#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
1041p |I32 |my_chsize |int fd|Off_t length
1042#endif
1043#if defined(USE_THREADS)
1044p |MAGIC* |condpair_magic |SV *sv
1045#endif
1046p |OP* |convert |I32 optype|I32 flags|OP* o
1047pr |void |croak |const char* pat|...
c5be433b 1048pr |void |vcroak |const char* pat|va_list* args
cea2e8a9
GS
1049#if defined(PERL_IMPLICIT_CONTEXT)
1050npr |void |croak_nocontext|const char* pat|...
1051np |OP* |die_nocontext |const char* pat|...
c5be433b 1052np |void |deb_nocontext |const char* pat|...
cea2e8a9 1053np |char* |form_nocontext |const char* pat|...
5a844595 1054np |SV* |mess_nocontext |const char* pat|...
cea2e8a9 1055np |void |warn_nocontext |const char* pat|...
c5be433b 1056np |void |warner_nocontext|U32 err|const char* pat|...
cea2e8a9
GS
1057np |SV* |newSVpvf_nocontext|const char* pat|...
1058np |void |sv_catpvf_nocontext|SV* sv|const char* pat|...
1059np |void |sv_setpvf_nocontext|SV* sv|const char* pat|...
1060np |void |sv_catpvf_mg_nocontext|SV* sv|const char* pat|...
1061np |void |sv_setpvf_mg_nocontext|SV* sv|const char* pat|...
c5be433b 1062np |int |fprintf_nocontext|PerlIO* stream|const char* fmt|...
cea2e8a9
GS
1063#endif
1064p |void |cv_ckproto |CV* cv|GV* gv|char* p
1065p |CV* |cv_clone |CV* proto
1066p |SV* |cv_const_sv |CV* cv
1067p |SV* |op_const_sv |OP* o|CV* cv
1068p |void |cv_undef |CV* cv
1069p |void |cx_dump |PERL_CONTEXT* cs
1070p |SV* |filter_add |filter_t funcp|SV* datasv
1071p |void |filter_del |filter_t funcp
1072p |I32 |filter_read |int idx|SV* buffer|int maxlen
1073p |char** |get_op_descs
1074p |char** |get_op_names
1075p |char* |get_no_modify
1076p |U32* |get_opargs
0cb96387 1077p |PPADDR_t*|get_ppaddr
cea2e8a9
GS
1078p |I32 |cxinc
1079p |void |deb |const char* pat|...
c5be433b 1080p |void |vdeb |const char* pat|va_list* args
cea2e8a9
GS
1081p |void |debprofdump
1082p |I32 |debop |OP* o
1083p |I32 |debstack
1084p |I32 |debstackptrs
1085p |char* |delimcpy |char* to|char* toend|char* from \
1086 |char* fromend|int delim|I32* retlen
1087p |void |deprecate |char* s
1088p |OP* |die |const char* pat|...
c5be433b 1089p |OP* |vdie |const char* pat|va_list* args
cea2e8a9
GS
1090p |OP* |die_where |char* message|STRLEN msglen
1091p |void |dounwind |I32 cxix
1092p |bool |do_aexec |SV* really|SV** mark|SV** sp
d5a9bfb0 1093p |bool |do_aexec5 |SV* really|SV** mark|SV** sp|int fd|int flag
cea2e8a9
GS
1094p |int |do_binmode |PerlIO *fp|int iotype|int flag
1095p |void |do_chop |SV* asv|SV* sv
1096p |bool |do_close |GV* gv|bool not_implicit
1097p |bool |do_eof |GV* gv
1098p |bool |do_exec |char* cmd
1099#if !defined(WIN32)
1100p |bool |do_exec3 |char* cmd|int fd|int flag
1101#endif
1102p |void |do_execfree
1103#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
1104p |I32 |do_ipcctl |I32 optype|SV** mark|SV** sp
1105p |I32 |do_ipcget |I32 optype|SV** mark|SV** sp
1106p |I32 |do_msgrcv |SV** mark|SV** sp
1107p |I32 |do_msgsnd |SV** mark|SV** sp
1108p |I32 |do_semop |SV** mark|SV** sp
1109p |I32 |do_shmio |I32 optype|SV** mark|SV** sp
1110#endif
1111p |void |do_join |SV* sv|SV* del|SV** mark|SV** sp
1112p |OP* |do_kv
1113p |bool |do_open |GV* gv|char* name|I32 len|int as_raw \
1114 |int rawmode|int rawperm|PerlIO* supplied_fp
6170680b
IZ
1115p |bool |do_open9 |GV *gv|char *name|I32 len|int as_raw \
1116 |int rawmode|int rawperm|PerlIO *supplied_fp \
1117 |SV *svs|I32 num
cea2e8a9
GS
1118p |void |do_pipe |SV* sv|GV* rgv|GV* wgv
1119p |bool |do_print |SV* sv|PerlIO* fp
1120p |OP* |do_readline
1121p |I32 |do_chomp |SV* sv
1122p |bool |do_seek |GV* gv|Off_t pos|int whence
1123p |void |do_sprintf |SV* sv|I32 len|SV** sarg
1124p |Off_t |do_sysseek |GV* gv|Off_t pos|int whence
1125p |Off_t |do_tell |GV* gv
1126p |I32 |do_trans |SV* sv
81e118e0 1127p |UV |do_vecget |SV* sv|I32 offset|I32 size
cea2e8a9
GS
1128p |void |do_vecset |SV* sv
1129p |void |do_vop |I32 optype|SV* sv|SV* left|SV* right
1130p |OP* |dofile |OP* term
1131p |I32 |dowantarray
1132p |void |dump_all
1133p |void |dump_eval
1134#if defined(DUMP_FDS)
1135p |void |dump_fds |char* s
1136#endif
1137p |void |dump_form |GV* gv
1138p |void |gv_dump |GV* gv
1139p |void |op_dump |OP* arg
1140p |void |pmop_dump |PMOP* pm
1141p |void |dump_packsubs |HV* stash
1142p |void |dump_sub |GV* gv
1143p |void |fbm_compile |SV* sv|U32 flags
1144p |char* |fbm_instr |unsigned char* big|unsigned char* bigend \
1145 |SV* littlesv|U32 flags
1146p |char* |find_script |char *scriptname|bool dosearch \
1147 |char **search_ext|I32 flags
1148#if defined(USE_THREADS)
1149p |PADOFFSET|find_threadsv|const char *name
1150#endif
1151p |OP* |force_list |OP* arg
1152p |OP* |fold_constants |OP* arg
1153p |char* |form |const char* pat|...
c5be433b 1154p |char* |vform |const char* pat|va_list* args
cea2e8a9
GS
1155p |void |free_tmps
1156p |OP* |gen_constant_list|OP* o
1157#if !defined(HAS_GETENV_LEN)
1158p |char* |getenv_len |char* key|unsigned long *len
1159#endif
1160p |void |gp_free |GV* gv
1161p |GP* |gp_ref |GP* gp
1162p |GV* |gv_AVadd |GV* gv
1163p |GV* |gv_HVadd |GV* gv
1164p |GV* |gv_IOadd |GV* gv
1165p |GV* |gv_autoload4 |HV* stash|const char* name|STRLEN len \
1166 |I32 method
1167p |void |gv_check |HV* stash
1168p |void |gv_efullname |SV* sv|GV* gv
1169p |void |gv_efullname3 |SV* sv|GV* gv|const char* prefix
1170p |GV* |gv_fetchfile |const char* name
1171p |GV* |gv_fetchmeth |HV* stash|const char* name|STRLEN len \
1172 |I32 level
1173p |GV* |gv_fetchmethod |HV* stash|const char* name
1174p |GV* |gv_fetchmethod_autoload|HV* stash|const char* name \
1175 |I32 autoload
1176p |GV* |gv_fetchpv |const char* name|I32 add|I32 sv_type
1177p |void |gv_fullname |SV* sv|GV* gv
1178p |void |gv_fullname3 |SV* sv|GV* gv|const char* prefix
1179p |void |gv_init |GV* gv|HV* stash|const char* name \
1180 |STRLEN len|int multi
1181p |HV* |gv_stashpv |const char* name|I32 create
1182p |HV* |gv_stashpvn |const char* name|U32 namelen|I32 create
1183p |HV* |gv_stashsv |SV* sv|I32 create
1184p |void |hv_clear |HV* tb
1185p |void |hv_delayfree_ent|HV* hv|HE* entry
1186p |SV* |hv_delete |HV* tb|const char* key|U32 klen|I32 flags
1187p |SV* |hv_delete_ent |HV* tb|SV* key|I32 flags|U32 hash
1188p |bool |hv_exists |HV* tb|const char* key|U32 klen
1189p |bool |hv_exists_ent |HV* tb|SV* key|U32 hash
1190p |SV** |hv_fetch |HV* tb|const char* key|U32 klen|I32 lval
1191p |HE* |hv_fetch_ent |HV* tb|SV* key|I32 lval|U32 hash
1192p |void |hv_free_ent |HV* hv|HE* entry
1193p |I32 |hv_iterinit |HV* tb
1194p |char* |hv_iterkey |HE* entry|I32* retlen
1195p |SV* |hv_iterkeysv |HE* entry
1196p |HE* |hv_iternext |HV* tb
1197p |SV* |hv_iternextsv |HV* hv|char** key|I32* retlen
1198p |SV* |hv_iterval |HV* tb|HE* entry
1199p |void |hv_ksplit |HV* hv|IV newmax
1200p |void |hv_magic |HV* hv|GV* gv|int how
1201p |SV** |hv_store |HV* tb|const char* key|U32 klen|SV* val \
1202 |U32 hash
1203p |HE* |hv_store_ent |HV* tb|SV* key|SV* val|U32 hash
1204p |void |hv_undef |HV* tb
1205p |I32 |ibcmp |const char* a|const char* b|I32 len
1206p |I32 |ibcmp_locale |const char* a|const char* b|I32 len
d8eceb89 1207p |bool |ingroup |Gid_t testgid|Uid_t effective
1ee4443e 1208p |void |init_debugger
cea2e8a9
GS
1209p |void |init_stacks
1210p |U32 |intro_my
1211p |char* |instr |const char* big|const char* little
f2b5be74 1212p |bool |io_close |IO* io|bool not_implicit
cea2e8a9
GS
1213p |OP* |invert |OP* cmd
1214p |bool |is_uni_alnum |U32 c
b8c5462f 1215p |bool |is_uni_alnumc |U32 c
cea2e8a9
GS
1216p |bool |is_uni_idfirst |U32 c
1217p |bool |is_uni_alpha |U32 c
b8c5462f 1218p |bool |is_uni_ascii |U32 c
cea2e8a9 1219p |bool |is_uni_space |U32 c
b8c5462f
JH
1220p |bool |is_uni_cntrl |U32 c
1221p |bool |is_uni_graph |U32 c
cea2e8a9
GS
1222p |bool |is_uni_digit |U32 c
1223p |bool |is_uni_upper |U32 c
1224p |bool |is_uni_lower |U32 c
1225p |bool |is_uni_print |U32 c
b8c5462f
JH
1226p |bool |is_uni_punct |U32 c
1227p |bool |is_uni_xdigit |U32 c
cea2e8a9
GS
1228p |U32 |to_uni_upper |U32 c
1229p |U32 |to_uni_title |U32 c
1230p |U32 |to_uni_lower |U32 c
1231p |bool |is_uni_alnum_lc|U32 c
b8c5462f 1232p |bool |is_uni_alnumc_lc|U32 c
cea2e8a9
GS
1233p |bool |is_uni_idfirst_lc|U32 c
1234p |bool |is_uni_alpha_lc|U32 c
b8c5462f 1235p |bool |is_uni_ascii_lc|U32 c
cea2e8a9 1236p |bool |is_uni_space_lc|U32 c
b8c5462f
JH
1237p |bool |is_uni_cntrl_lc|U32 c
1238p |bool |is_uni_graph_lc|U32 c
cea2e8a9
GS
1239p |bool |is_uni_digit_lc|U32 c
1240p |bool |is_uni_upper_lc|U32 c
1241p |bool |is_uni_lower_lc|U32 c
1242p |bool |is_uni_print_lc|U32 c
b8c5462f
JH
1243p |bool |is_uni_punct_lc|U32 c
1244p |bool |is_uni_xdigit_lc|U32 c
cea2e8a9
GS
1245p |U32 |to_uni_upper_lc|U32 c
1246p |U32 |to_uni_title_lc|U32 c
1247p |U32 |to_uni_lower_lc|U32 c
1248p |bool |is_utf8_alnum |U8 *p
b8c5462f 1249p |bool |is_utf8_alnumc |U8 *p
cea2e8a9
GS
1250p |bool |is_utf8_idfirst|U8 *p
1251p |bool |is_utf8_alpha |U8 *p
b8c5462f 1252p |bool |is_utf8_ascii |U8 *p
cea2e8a9 1253p |bool |is_utf8_space |U8 *p
b8c5462f 1254p |bool |is_utf8_cntrl |U8 *p
cea2e8a9 1255p |bool |is_utf8_digit |U8 *p
b8c5462f 1256p |bool |is_utf8_graph |U8 *p
cea2e8a9
GS
1257p |bool |is_utf8_upper |U8 *p
1258p |bool |is_utf8_lower |U8 *p
1259p |bool |is_utf8_print |U8 *p
b8c5462f
JH
1260p |bool |is_utf8_punct |U8 *p
1261p |bool |is_utf8_xdigit |U8 *p
cea2e8a9
GS
1262p |bool |is_utf8_mark |U8 *p
1263p |OP* |jmaybe |OP* arg
1264p |I32 |keyword |char* d|I32 len
1265p |void |leave_scope |I32 base
1266p |void |lex_end
1267p |void |lex_start |SV* line
1268p |OP* |linklist |OP* o
1269p |OP* |list |OP* o
1270p |OP* |listkids |OP* o
1271p |OP* |localize |OP* arg|I32 lexical
1272p |I32 |looks_like_number|SV* sv
1273p |int |magic_clearenv |SV* sv|MAGIC* mg
1274p |int |magic_clear_all_env|SV* sv|MAGIC* mg
1275p |int |magic_clearpack|SV* sv|MAGIC* mg
1276p |int |magic_clearsig |SV* sv|MAGIC* mg
1277p |int |magic_existspack|SV* sv|MAGIC* mg
1278p |int |magic_freeregexp|SV* sv|MAGIC* mg
1279p |int |magic_get |SV* sv|MAGIC* mg
1280p |int |magic_getarylen|SV* sv|MAGIC* mg
1281p |int |magic_getdefelem|SV* sv|MAGIC* mg
1282p |int |magic_getglob |SV* sv|MAGIC* mg
1283p |int |magic_getnkeys |SV* sv|MAGIC* mg
1284p |int |magic_getpack |SV* sv|MAGIC* mg
1285p |int |magic_getpos |SV* sv|MAGIC* mg
1286p |int |magic_getsig |SV* sv|MAGIC* mg
1287p |int |magic_getsubstr|SV* sv|MAGIC* mg
1288p |int |magic_gettaint |SV* sv|MAGIC* mg
1289p |int |magic_getuvar |SV* sv|MAGIC* mg
1290p |int |magic_getvec |SV* sv|MAGIC* mg
1291p |U32 |magic_len |SV* sv|MAGIC* mg
1292#if defined(USE_THREADS)
1293p |int |magic_mutexfree|SV* sv|MAGIC* mg
1294#endif
1295p |int |magic_nextpack |SV* sv|MAGIC* mg|SV* key
1296p |U32 |magic_regdata_cnt|SV* sv|MAGIC* mg
1297p |int |magic_regdatum_get|SV* sv|MAGIC* mg
1298p |int |magic_set |SV* sv|MAGIC* mg
1299p |int |magic_setamagic|SV* sv|MAGIC* mg
1300p |int |magic_setarylen|SV* sv|MAGIC* mg
1301p |int |magic_setbm |SV* sv|MAGIC* mg
1302p |int |magic_setdbline|SV* sv|MAGIC* mg
1303#if defined(USE_LOCALE_COLLATE)
1304p |int |magic_setcollxfrm|SV* sv|MAGIC* mg
1305#endif
1306p |int |magic_setdefelem|SV* sv|MAGIC* mg
1307p |int |magic_setenv |SV* sv|MAGIC* mg
1308p |int |magic_setfm |SV* sv|MAGIC* mg
1309p |int |magic_setisa |SV* sv|MAGIC* mg
1310p |int |magic_setglob |SV* sv|MAGIC* mg
1311p |int |magic_setmglob |SV* sv|MAGIC* mg
1312p |int |magic_setnkeys |SV* sv|MAGIC* mg
1313p |int |magic_setpack |SV* sv|MAGIC* mg
1314p |int |magic_setpos |SV* sv|MAGIC* mg
1315p |int |magic_setsig |SV* sv|MAGIC* mg
1316p |int |magic_setsubstr|SV* sv|MAGIC* mg
1317p |int |magic_settaint |SV* sv|MAGIC* mg
1318p |int |magic_setuvar |SV* sv|MAGIC* mg
1319p |int |magic_setvec |SV* sv|MAGIC* mg
1320p |int |magic_set_all_env|SV* sv|MAGIC* mg
1321p |U32 |magic_sizepack |SV* sv|MAGIC* mg
1322p |int |magic_wipepack |SV* sv|MAGIC* mg
1323p |void |magicname |char* sym|char* name|I32 namlen
cea2e8a9
GS
1324#if defined(MYMALLOC)
1325np |MEM_SIZE|malloced_size |void *p
1326#endif
1327p |void |markstack_grow
1328#if defined(USE_LOCALE_COLLATE)
1329p |char* |mem_collxfrm |const char* s|STRLEN len|STRLEN* xlen
1330#endif
5a844595
GS
1331p |SV* |mess |const char* pat|...
1332p |SV* |vmess |const char* pat|va_list* args
1333p |void |qerror |SV* err
cea2e8a9
GS
1334p |int |mg_clear |SV* sv
1335p |int |mg_copy |SV* sv|SV* nsv|const char* key|I32 klen
1336p |MAGIC* |mg_find |SV* sv|int type
1337p |int |mg_free |SV* sv
1338p |int |mg_get |SV* sv
1339p |U32 |mg_length |SV* sv
1340p |void |mg_magical |SV* sv
1341p |int |mg_set |SV* sv
1342p |I32 |mg_size |SV* sv
1343p |OP* |mod |OP* o|I32 type
1344p |char* |moreswitches |char* s
1345p |OP* |my |OP* o
cad2e5aa 1346p |NV |my_atof |const char *s
cea2e8a9
GS
1347#if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY)
1348p |char* |my_bcopy |const char* from|char* to|I32 len
1349#endif
1350#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
1351p |char* |my_bzero |char* loc|I32 len
1352#endif
1353pr |void |my_exit |U32 status
1354pr |void |my_failure_exit
1355p |I32 |my_fflush_all
1356p |I32 |my_lstat
1357#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
1358p |I32 |my_memcmp |const char* s1|const char* s2|I32 len
1359#endif
1360#if !defined(HAS_MEMSET)
1361p |void* |my_memset |char* loc|I32 ch|I32 len
1362#endif
1363#if !defined(PERL_OBJECT)
1364p |I32 |my_pclose |PerlIO* ptr
1365p |PerlIO*|my_popen |char* cmd|char* mode
1366#endif
1367p |void |my_setenv |char* nam|char* val
1368p |I32 |my_stat
1369#if defined(MYSWAP)
1370p |short |my_swap |short s
1371p |long |my_htonl |long l
1372p |long |my_ntohl |long l
1373#endif
1374p |void |my_unexec
1375p |OP* |newANONLIST |OP* o
1376p |OP* |newANONHASH |OP* o
1377p |OP* |newANONSUB |I32 floor|OP* proto|OP* block
1378p |OP* |newASSIGNOP |I32 flags|OP* left|I32 optype|OP* right
1379p |OP* |newCONDOP |I32 flags|OP* expr|OP* trueop|OP* falseop
1380p |void |newCONSTSUB |HV* stash|char* name|SV* sv
1381p |void |newFORM |I32 floor|OP* o|OP* block
1382p |OP* |newFOROP |I32 flags|char* label|line_t forline \
1383 |OP* sclr|OP* expr|OP*block|OP*cont
1384p |OP* |newLOGOP |I32 optype|I32 flags|OP* left|OP* right
1385p |OP* |newLOOPEX |I32 type|OP* label
1386p |OP* |newLOOPOP |I32 flags|I32 debuggable|OP* expr|OP* block
1387p |OP* |newNULLLIST
1388p |OP* |newOP |I32 optype|I32 flags
1389p |void |newPROG |OP* o
1390p |OP* |newRANGE |I32 flags|OP* left|OP* right
1391p |OP* |newSLICEOP |I32 flags|OP* subscript|OP* listop
1392p |OP* |newSTATEOP |I32 flags|char* label|OP* o
1393p |CV* |newSUB |I32 floor|OP* o|OP* proto|OP* block
1394p |CV* |newXS |char* name|XSUBADDR_t f|char* filename
1395p |AV* |newAV
1396p |OP* |newAVREF |OP* o
1397p |OP* |newBINOP |I32 type|I32 flags|OP* first|OP* last
1398p |OP* |newCVREF |I32 flags|OP* o
1399p |OP* |newGVOP |I32 type|I32 flags|GV* gv
1400p |GV* |newGVgen |char* pack
1401p |OP* |newGVREF |I32 type|OP* o
1402p |OP* |newHVREF |OP* o
1403p |HV* |newHV
1404p |HV* |newHVhv |HV* hv
1405p |IO* |newIO
1406p |OP* |newLISTOP |I32 type|I32 flags|OP* first|OP* last
350de78d 1407p |OP* |newPADOP |I32 type|I32 flags|SV* sv
cea2e8a9
GS
1408p |OP* |newPMOP |I32 type|I32 flags
1409p |OP* |newPVOP |I32 type|I32 flags|char* pv
1410p |SV* |newRV |SV* pref
1411p |SV* |newRV_noinc |SV *sv
1412p |SV* |newSV |STRLEN len
1413p |OP* |newSVREF |OP* o
1414p |OP* |newSVOP |I32 type|I32 flags|SV* sv
1415p |SV* |newSViv |IV i
cad2e5aa 1416p |SV* |newSVnv |NV n
cea2e8a9
GS
1417p |SV* |newSVpv |const char* s|STRLEN len
1418p |SV* |newSVpvn |const char* s|STRLEN len
1419p |SV* |newSVpvf |const char* pat|...
c5be433b 1420p |SV* |vnewSVpvf |const char* pat|va_list* args
cea2e8a9
GS
1421p |SV* |newSVrv |SV* rv|const char* classname
1422p |SV* |newSVsv |SV* old
1423p |OP* |newUNOP |I32 type|I32 flags|OP* first
1424p |OP* |newWHILEOP |I32 flags|I32 debuggable|LOOP* loop \
1425 |I32 whileline|OP* expr|OP* block|OP* cont
c5be433b 1426
cea2e8a9
GS
1427p |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
1428p |PerlIO*|nextargv |GV* gv
1429p |char* |ninstr |const char* big|const char* bigend \
1430 |const char* little|const char* lend
1431p |OP* |oopsCV |OP* o
1432p |void |op_free |OP* arg
1433p |void |package |OP* o
1434p |PADOFFSET|pad_alloc |I32 optype|U32 tmptype
1435p |PADOFFSET|pad_allocmy |char* name
1436p |PADOFFSET|pad_findmy |char* name
1437p |OP* |oopsAV |OP* o
1438p |OP* |oopsHV |OP* o
1439p |void |pad_leavemy |I32 fill
1440p |SV* |pad_sv |PADOFFSET po
1441p |void |pad_free |PADOFFSET po
1442p |void |pad_reset
1443p |void |pad_swipe |PADOFFSET po
1444p |void |peep |OP* o
0cb96387
GS
1445#if defined(PERL_OBJECT)
1446no |void |perl_construct
1447no |void |perl_destruct
1448no |void |perl_free
1449no |int |perl_run
1450no |int |perl_parse |XSINIT_t xsinit \
1451 |int argc|char** argv|char** env
1452#else
cea2e8a9 1453no |PerlInterpreter* |perl_alloc
5f7fde29
GS
1454no |void |perl_construct |PerlInterpreter* interp
1455no |void |perl_destruct |PerlInterpreter* interp
1456no |void |perl_free |PerlInterpreter* interp
1457no |int |perl_run |PerlInterpreter* interp
1458no |int |perl_parse |PerlInterpreter* interp|XSINIT_t xsinit \
0cb96387 1459 |int argc|char** argv|char** env
c5be433b
GS
1460#if defined(USE_THREADS)
1461p |struct perl_thread* |new_struct_thread|struct perl_thread *t
1462#endif
0cb96387 1463#endif
cea2e8a9
GS
1464p |void |call_atexit |ATEXIT_t fn|void *ptr
1465p |I32 |call_argv |const char* sub_name|I32 flags|char** argv
1466p |I32 |call_method |const char* methname|I32 flags
1467p |I32 |call_pv |const char* sub_name|I32 flags
1468p |I32 |call_sv |SV* sv|I32 flags
cea2e8a9
GS
1469p |SV* |eval_pv |const char* p|I32 croak_on_error
1470p |I32 |eval_sv |SV* sv|I32 flags
cea2e8a9
GS
1471p |SV* |get_sv |const char* name|I32 create
1472p |AV* |get_av |const char* name|I32 create
1473p |HV* |get_hv |const char* name|I32 create
1474p |CV* |get_cv |const char* name|I32 create
1475p |int |init_i18nl10n |int printwarn
1476p |int |init_i18nl14n |int printwarn
1477p |void |new_collate |const char* newcoll
1478p |void |new_ctype |const char* newctype
1479p |void |new_numeric |const char* newcoll
1480p |void |set_numeric_local
097ee67d 1481p |void |set_numeric_radix
cea2e8a9 1482p |void |set_numeric_standard
cea2e8a9 1483p |void |require_pv |const char* pv
d8a83dd3 1484p |void |pidgone |Pid_t pid|int status
cea2e8a9
GS
1485p |void |pmflag |U16* pmfl|int ch
1486p |OP* |pmruntime |OP* pm|OP* expr|OP* repl
1487p |OP* |pmtrans |OP* o|OP* expr|OP* repl
1488p |OP* |pop_return
1489p |void |pop_scope
1490p |OP* |prepend_elem |I32 optype|OP* head|OP* tail
1491p |void |push_return |OP* o
1492p |void |push_scope
1493p |OP* |ref |OP* o|I32 type
1494p |OP* |refkids |OP* o|I32 type
1495p |void |regdump |regexp* r
1496p |I32 |pregexec |regexp* prog|char* stringarg \
1497 |char* strend|char* strbeg|I32 minend \
1498 |SV* screamer|U32 nosave
1499p |void |pregfree |struct regexp* r
1500p |regexp*|pregcomp |char* exp|char* xend|PMOP* pm
cad2e5aa
JH
1501p |char* |re_intuit_start|regexp* prog|SV* sv|char* strpos \
1502 |char* strend|U32 flags \
1503 |struct re_scream_pos_data_s *data
1504p |SV* |re_intuit_string|regexp* prog
cea2e8a9
GS
1505p |I32 |regexec_flags |regexp* prog|char* stringarg \
1506 |char* strend|char* strbeg|I32 minend \
1507 |SV* screamer|void* data|U32 flags
1508p |regnode*|regnext |regnode* p
1509p |void |regprop |SV* sv|regnode* o
1510p |void |repeatcpy |char* to|const char* from|I32 len|I32 count
1511p |char* |rninstr |const char* big|const char* bigend \
1512 |const char* little|const char* lend
1513p |Sighandler_t|rsignal |int i|Sighandler_t t
1514p |int |rsignal_restore|int i|Sigsave_t* t
1515p |int |rsignal_save |int i|Sighandler_t t1|Sigsave_t* t2
1516p |Sighandler_t|rsignal_state|int i
1517p |void |rxres_free |void** rsp
1518p |void |rxres_restore |void** rsp|REGEXP* prx
1519p |void |rxres_save |void** rsp|REGEXP* prx
1520#if !defined(HAS_RENAME)
1521p |I32 |same_dirent |char* a|char* b
1522#endif
1523p |char* |savepv |const char* sv
1524p |char* |savepvn |const char* sv|I32 len
1525p |void |savestack_grow
1526p |void |save_aelem |AV* av|I32 idx|SV **sptr
1527p |I32 |save_alloc |I32 size|I32 pad
1528p |void |save_aptr |AV** aptr
1529p |AV* |save_ary |GV* gv
1530p |void |save_clearsv |SV** svp
1531p |void |save_delete |HV* hv|char* key|I32 klen
c76ac1ee
GS
1532p |void |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|void* p
1533p |void |save_destructor_x|DESTRUCTORFUNC_t f|void* p
cea2e8a9
GS
1534p |void |save_freesv |SV* sv
1535p |void |save_freeop |OP* o
1536p |void |save_freepv |char* pv
1537p |void |save_generic_svref|SV** sptr
1538p |void |save_gp |GV* gv|I32 empty
1539p |HV* |save_hash |GV* gv
1540p |void |save_helem |HV* hv|SV *key|SV **sptr
1541p |void |save_hints
1542p |void |save_hptr |HV** hptr
1543p |void |save_I16 |I16* intp
1544p |void |save_I32 |I32* intp
1545p |void |save_int |int* intp
1546p |void |save_item |SV* item
1547p |void |save_iv |IV* iv
1548p |void |save_list |SV** sarg|I32 maxsarg
1549p |void |save_long |long* longp
1550p |void |save_nogv |GV* gv
1551p |void |save_op
1552p |SV* |save_scalar |GV* gv
1553p |void |save_pptr |char** pptr
1554p |void |save_re_context
1555p |void |save_sptr |SV** sptr
1556p |SV* |save_svref |SV** sptr
1557p |SV** |save_threadsv |PADOFFSET i
1558p |OP* |sawparens |OP* o
1559p |OP* |scalar |OP* o
1560p |OP* |scalarkids |OP* o
1561p |OP* |scalarseq |OP* o
1562p |OP* |scalarvoid |OP* o
9e24b6e2
JH
1563p |NV |scan_bin |char* start|I32 len|I32* retlen
1564p |NV |scan_hex |char* start|I32 len|I32* retlen
cea2e8a9 1565p |char* |scan_num |char* s
9e24b6e2 1566p |NV |scan_oct |char* start|I32 len|I32* retlen
cea2e8a9
GS
1567p |OP* |scope |OP* o
1568p |char* |screaminstr |SV* bigsv|SV* littlesv|I32 start_shift \
1569 |I32 end_shift|I32 *state|I32 last
1570#if !defined(VMS)
1571p |I32 |setenv_getix |char* nam
1572#endif
1573p |void |setdefout |GV* gv
1574p |char* |sharepvn |const char* sv|I32 len|U32 hash
1575p |HEK* |share_hek |const char* sv|I32 len|U32 hash
1576np |Signal_t |sighandler |int sig
1577p |SV** |stack_grow |SV** sp|SV**p|int n
1578p |I32 |start_subparse |I32 is_format|U32 flags
1579p |void |sub_crush_depth|CV* cv
1580p |bool |sv_2bool |SV* sv
1581p |CV* |sv_2cv |SV* sv|HV** st|GV** gvp|I32 lref
1582p |IO* |sv_2io |SV* sv
1583p |IV |sv_2iv |SV* sv
1584p |SV* |sv_2mortal |SV* sv
cad2e5aa 1585p |NV |sv_2nv |SV* sv
cea2e8a9
GS
1586p |char* |sv_2pv |SV* sv|STRLEN* lp
1587p |UV |sv_2uv |SV* sv
1588p |IV |sv_iv |SV* sv
1589p |UV |sv_uv |SV* sv
cad2e5aa 1590p |NV |sv_nv |SV* sv
cea2e8a9
GS
1591p |char* |sv_pvn |SV *sv|STRLEN *len
1592p |I32 |sv_true |SV *sv
1593p |void |sv_add_arena |char* ptr|U32 size|U32 flags
1594p |int |sv_backoff |SV* sv
1595p |SV* |sv_bless |SV* sv|HV* stash
1596p |void |sv_catpvf |SV* sv|const char* pat|...
c5be433b 1597p |void |sv_vcatpvf |SV* sv|const char* pat|va_list* args
cea2e8a9
GS
1598p |void |sv_catpv |SV* sv|const char* ptr
1599p |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len
1600p |void |sv_catsv |SV* dsv|SV* ssv
1601p |void |sv_chop |SV* sv|char* ptr
1602p |void |sv_clean_all
1603p |void |sv_clean_objs
1604p |void |sv_clear |SV* sv
1605p |I32 |sv_cmp |SV* sv1|SV* sv2
1606p |I32 |sv_cmp_locale |SV* sv1|SV* sv2
1607#if defined(USE_LOCALE_COLLATE)
1608p |char* |sv_collxfrm |SV* sv|STRLEN* nxp
1609#endif
1610p |OP* |sv_compile_2op |SV* sv|OP** startp|char* code|AV** avp
1611p |void |sv_dec |SV* sv
1612p |void |sv_dump |SV* sv
1613p |bool |sv_derived_from|SV* sv|const char* name
1614p |I32 |sv_eq |SV* sv1|SV* sv2
1615p |void |sv_free |SV* sv
1616p |void |sv_free_arenas
1617p |char* |sv_gets |SV* sv|PerlIO* fp|I32 append
1618p |char* |sv_grow |SV* sv|STRLEN newlen
1619p |void |sv_inc |SV* sv
1620p |void |sv_insert |SV* bigsv|STRLEN offset|STRLEN len \
1621 |char* little|STRLEN littlelen
1622p |int |sv_isa |SV* sv|const char* name
1623p |int |sv_isobject |SV* sv
1624p |STRLEN |sv_len |SV* sv
1625p |STRLEN |sv_len_utf8 |SV* sv
1626p |void |sv_magic |SV* sv|SV* obj|int how|const char* name \
1627 |I32 namlen
1628p |SV* |sv_mortalcopy |SV* oldsv
1629p |SV* |sv_newmortal
1630p |SV* |sv_newref |SV* sv
1631p |char* |sv_peek |SV* sv
1632p |void |sv_pos_u2b |SV* sv|I32* offsetp|I32* lenp
1633p |void |sv_pos_b2u |SV* sv|I32* offsetp
1634p |char* |sv_pvn_force |SV* sv|STRLEN* lp
1635p |char* |sv_reftype |SV* sv|int ob
1636p |void |sv_replace |SV* sv|SV* nsv
1637p |void |sv_report_used
1638p |void |sv_reset |char* s|HV* stash
1639p |void |sv_setpvf |SV* sv|const char* pat|...
c5be433b 1640p |void |sv_vsetpvf |SV* sv|const char* pat|va_list* args
cea2e8a9
GS
1641p |void |sv_setiv |SV* sv|IV num
1642p |void |sv_setpviv |SV* sv|IV num
1643p |void |sv_setuv |SV* sv|UV num
cad2e5aa 1644p |void |sv_setnv |SV* sv|NV num
cea2e8a9 1645p |SV* |sv_setref_iv |SV* rv|const char* classname|IV iv
cad2e5aa 1646p |SV* |sv_setref_nv |SV* rv|const char* classname|NV nv
cea2e8a9
GS
1647p |SV* |sv_setref_pv |SV* rv|const char* classname|void* pv
1648p |SV* |sv_setref_pvn |SV* rv|const char* classname|char* pv \
1649 |STRLEN n
1650p |void |sv_setpv |SV* sv|const char* ptr
1651p |void |sv_setpvn |SV* sv|const char* ptr|STRLEN len
1652p |void |sv_setsv |SV* dsv|SV* ssv
1653p |void |sv_taint |SV* sv
1654p |bool |sv_tainted |SV* sv
1655p |int |sv_unmagic |SV* sv|int type
1656p |void |sv_unref |SV* sv
1657p |void |sv_untaint |SV* sv
1658p |bool |sv_upgrade |SV* sv|U32 mt
1659p |void |sv_usepvn |SV* sv|char* ptr|STRLEN len
1660p |void |sv_vcatpvfn |SV* sv|const char* pat|STRLEN patlen \
1661 |va_list* args|SV** svargs|I32 svmax \
7d5ea4e7 1662 |bool *maybe_tainted
cea2e8a9
GS
1663p |void |sv_vsetpvfn |SV* sv|const char* pat|STRLEN patlen \
1664 |va_list* args|SV** svargs|I32 svmax \
7d5ea4e7 1665 |bool *maybe_tainted
cea2e8a9
GS
1666p |SV* |swash_init |char* pkg|char* name|SV* listsv \
1667 |I32 minbits|I32 none
1668p |UV |swash_fetch |SV *sv|U8 *ptr
1669p |void |taint_env
dff6d3cd 1670p |void |taint_proper |const char* f|const char* s
cea2e8a9
GS
1671p |UV |to_utf8_lower |U8 *p
1672p |UV |to_utf8_upper |U8 *p
1673p |UV |to_utf8_title |U8 *p
1674#if defined(UNLINK_ALL_VERSIONS)
1675p |I32 |unlnk |char* f
1676#endif
1677#if defined(USE_THREADS)
1678p |void |unlock_condpair|void* svv
1679#endif
1680p |void |unsharepvn |const char* sv|I32 len|U32 hash
1681p |void |unshare_hek |HEK* hek
1682p |void |utilize |int aver|I32 floor|OP* version|OP* id|OP* arg
1683p |U8* |utf16_to_utf8 |U16* p|U8 *d|I32 bytelen
1684p |U8* |utf16_to_utf8_reversed|U16* p|U8 *d|I32 bytelen
1685p |I32 |utf8_distance |U8 *a|U8 *b
1686p |U8* |utf8_hop |U8 *s|I32 off
1687p |UV |utf8_to_uv |U8 *s|I32* retlen
1688p |U8* |uv_to_utf8 |U8 *d|UV uv
1689p |void |vivify_defelem |SV* sv
1690p |void |vivify_ref |SV* sv|U32 to_what
d8a83dd3 1691p |I32 |wait4pid |Pid_t pid|int* statusp|int flags
cea2e8a9 1692p |void |warn |const char* pat|...
c5be433b 1693p |void |vwarn |const char* pat|va_list* args
cea2e8a9 1694p |void |warner |U32 err|const char* pat|...
c5be433b 1695p |void |vwarner |U32 err|const char* pat|va_list* args
cea2e8a9
GS
1696p |void |watch |char** addr
1697p |I32 |whichsig |char* sig
1698p |int |yyerror |char* s
1699#if defined(USE_PURE_BISON)
1700p |int |yylex |YYSTYPE *lvalp|int *lcharp
1701#else
1702p |int |yylex
1703#endif
1704p |int |yyparse
1705p |int |yywarn |char* s
1706#if defined(MYMALLOC)
1707p |void |dump_mstats |char* s
1708pno |Malloc_t|malloc |MEM_SIZE nbytes
1709pno |Malloc_t|calloc |MEM_SIZE elements|MEM_SIZE size
1710pno |Malloc_t|realloc |Malloc_t where|MEM_SIZE nbytes
1711pno |Free_t |mfree |Malloc_t where
1712#endif
4f63d024
GS
1713pn |Malloc_t|safesysmalloc |MEM_SIZE nbytes
1714pn |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size
1715pn |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes
1716pn |Free_t |safesysfree |Malloc_t where
cea2e8a9 1717#if defined(LEAKTEST)
4f63d024
GS
1718pn |Malloc_t|safexmalloc |I32 x|MEM_SIZE size
1719pn |Malloc_t|safexcalloc |I32 x|MEM_SIZE elements|MEM_SIZE size
1720pn |Malloc_t|safexrealloc |Malloc_t where|MEM_SIZE size
1721pn |void |safexfree |Malloc_t where
cea2e8a9
GS
1722#endif
1723#if defined(PERL_GLOBAL_STRUCT)
1724p |struct perl_vars *|GetVars
1725#endif
cea2e8a9
GS
1726p |int |runops_standard
1727p |int |runops_debug
cea2e8a9 1728p |void |sv_catpvf_mg |SV *sv|const char* pat|...
c5be433b 1729p |void |sv_vcatpvf_mg |SV* sv|const char* pat|va_list* args
cea2e8a9
GS
1730p |void |sv_catpv_mg |SV *sv|const char *ptr
1731p |void |sv_catpvn_mg |SV *sv|const char *ptr|STRLEN len
1732p |void |sv_catsv_mg |SV *dstr|SV *sstr
1733p |void |sv_setpvf_mg |SV *sv|const char* pat|...
c5be433b 1734p |void |sv_vsetpvf_mg |SV* sv|const char* pat|va_list* args
cea2e8a9
GS
1735p |void |sv_setiv_mg |SV *sv|IV i
1736p |void |sv_setpviv_mg |SV *sv|IV iv
1737p |void |sv_setuv_mg |SV *sv|UV u
cad2e5aa 1738p |void |sv_setnv_mg |SV *sv|NV num
cea2e8a9
GS
1739p |void |sv_setpv_mg |SV *sv|const char *ptr
1740p |void |sv_setpvn_mg |SV *sv|const char *ptr|STRLEN len
1741p |void |sv_setsv_mg |SV *dstr|SV *sstr
1742p |void |sv_usepvn_mg |SV *sv|char *ptr|STRLEN len
1743p |MGVTBL*|get_vtbl |int vtbl_id
1744p |char* |pv_display |SV *sv|char *pv|STRLEN cur|STRLEN len \
1745 |STRLEN pvlim
1746p |void |dump_indent |I32 level|PerlIO *file|const char* pat|...
c5be433b
GS
1747p |void |dump_vindent |I32 level|PerlIO *file|const char* pat \
1748 |va_list *args
cea2e8a9
GS
1749p |void |do_gv_dump |I32 level|PerlIO *file|char *name|GV *sv
1750p |void |do_gvgv_dump |I32 level|PerlIO *file|char *name|GV *sv
1751p |void |do_hv_dump |I32 level|PerlIO *file|char *name|HV *sv
1752p |void |do_magic_dump |I32 level|PerlIO *file|MAGIC *mg|I32 nest \
1753 |I32 maxnest|bool dumpops|STRLEN pvlim
1754p |void |do_op_dump |I32 level|PerlIO *file|OP *o
1755p |void |do_pmop_dump |I32 level|PerlIO *file|PMOP *pm
1756p |void |do_sv_dump |I32 level|PerlIO *file|SV *sv|I32 nest \
1757 |I32 maxnest|bool dumpops|STRLEN pvlim
1758p |void |magic_dump |MAGIC *mg
db36c5a1
GS
1759p |void* |default_protect|volatile JMPENV *je|int *excpt \
1760 |protect_body_t body|...
1761p |void* |vdefault_protect|volatile JMPENV *je|int *excpt \
1762 |protect_body_t body|va_list *args
cea2e8a9
GS
1763p |void |reginitcolors
1764p |char* |sv_2pv_nolen |SV* sv
1765p |char* |sv_pv |SV *sv
1766p |void |sv_force_normal|SV *sv
1767p |void |tmps_grow |I32 n
1768p |SV* |sv_rvweaken |SV *sv
1769p |int |magic_killbackrefs|SV *sv|MAGIC *mg
09bef843
SB
1770p |OP* |newANONATTRSUB |I32 floor|OP *proto|OP *attrs|OP *block
1771p |CV* |newATTRSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
1772p |void |newMYSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
1773p |OP * |my_attrs |OP *o|OP *attrs
1774p |void |boot_core_xsutils
d18c6117 1775#if defined(USE_ITHREADS)
8d563012
GS
1776p |PERL_CONTEXT*|cx_dup |PERL_CONTEXT* cx|I32 ix|I32 max
1777p |PERL_SI*|si_dup |PERL_SI* si
1778p |ANY* |ss_dup |ANY* ss|I32 ix|I32 max
d18c6117
GS
1779p |HE* |he_dup |HE* e|bool shared
1780p |REGEXP*|re_dup |REGEXP* r
1781p |PerlIO*|fp_dup |PerlIO* fp|char type
1782p |DIR* |dirp_dup |DIR* dp
1783p |GP* |gp_dup |GP* gp
1784p |MAGIC* |mg_dup |MAGIC* mg
1785p |SV* |sv_dup |SV* sstr
1786#if defined(HAVE_INTERP_INTERN)
1787p |void |sys_intern_dup |struct interp_intern* src \
1788 |struct interp_intern* dst
1789#endif
5f7fde29
GS
1790p |PTR_TBL_t*|ptr_table_new
1791p |void* |ptr_table_fetch|PTR_TBL_t *tbl|void *sv
1792p |void |ptr_table_store|PTR_TBL_t *tbl|void *oldsv|void *newsv
1793p |void |ptr_table_split|PTR_TBL_t *tbl
1794no |PerlInterpreter*|perl_clone|PerlInterpreter* interp, UV flags
1795no |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \
1796 |struct IPerlMem* m|struct IPerlEnv* e \
1797 |struct IPerlStdIO* io|struct IPerlLIO* lio \
1798 |struct IPerlDir* d|struct IPerlSock* s \
1799 |struct IPerlProc* p
d18c6117 1800#endif
cea2e8a9 1801
0cb96387
GS
1802#if defined(PERL_OBJECT)
1803protected:
1804#endif
1805#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
1806s |I32 |avhv_index_sv |SV* sv
1807#endif
1808
0cb96387 1809#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
1810s |I32 |do_trans_CC_simple |SV *sv
1811s |I32 |do_trans_CC_count |SV *sv
1812s |I32 |do_trans_CC_complex |SV *sv
1813s |I32 |do_trans_UU_simple |SV *sv
1814s |I32 |do_trans_UU_count |SV *sv
1815s |I32 |do_trans_UU_complex |SV *sv
1816s |I32 |do_trans_UC_simple |SV *sv
1817s |I32 |do_trans_CU_simple |SV *sv
1818s |I32 |do_trans_UC_trivial |SV *sv
1819s |I32 |do_trans_CU_trivial |SV *sv
1820#endif
1821
0cb96387 1822#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
1823s |void |gv_init_sv |GV *gv|I32 sv_type
1824#endif
1825
0cb96387 1826#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
1827s |void |hsplit |HV *hv
1828s |void |hfreeentries |HV *hv
1829s |void |more_he
1830s |HE* |new_he
1831s |void |del_he |HE *p
1832s |HEK* |save_hek |const char *str|I32 len|U32 hash
1833s |void |hv_magic_check |HV *hv|bool *needs_copy|bool *needs_store
1834#endif
1835
0cb96387 1836#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
1837s |void |save_magic |I32 mgs_ix|SV *sv
1838s |int |magic_methpack |SV *sv|MAGIC *mg|char *meth
1839s |int |magic_methcall |SV *sv|MAGIC *mg|char *meth|I32 f \
1840 |int n|SV *val
cea2e8a9
GS
1841#endif
1842
0cb96387 1843#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
1844s |I32 |list_assignment|OP *o
1845s |void |bad_type |I32 n|char *t|char *name|OP *kid
3eb57f73 1846s |void |cop_free |COP *cop
cea2e8a9
GS
1847s |OP* |modkids |OP *o|I32 type
1848s |void |no_bareword_allowed|OP *o
1849s |OP* |no_fh_allowed |OP *o
1850s |OP* |scalarboolean |OP *o
1851s |OP* |too_few_arguments|OP *o|char* name
1852s |OP* |too_many_arguments|OP *o|char* name
acb36ea4 1853s |void |op_clear |OP* o
cea2e8a9
GS
1854s |void |null |OP* o
1855s |PADOFFSET|pad_findlex |char* name|PADOFFSET newoff|U32 seq \
1856 |CV* startcv|I32 cx_ix|I32 saweval|U32 flags
1857s |OP* |newDEFSVOP
1858s |OP* |new_logop |I32 type|I32 flags|OP **firstp|OP **otherp
1859s |void |simplify_sort |OP *o
1860s |bool |is_handle_constructor |OP *o|I32 argnum
1861s |char* |gv_ename |GV *gv
62fde642 1862s |void |cv_dump |CV *cv
cea2e8a9
GS
1863s |CV* |cv_clone2 |CV *proto|CV *outside
1864s |bool |scalar_mod_type|OP *o|I32 type
09bef843
SB
1865s |OP * |my_kid |OP *o|OP *attrs
1866s |OP * |dup_attrlist |OP *o
1867s |void |apply_attrs |HV *stash|SV *target|OP *attrs
cea2e8a9
GS
1868# if defined(PL_OP_SLAB_ALLOC)
1869s |void* |Slab_Alloc |int m|size_t sz
1870# endif
1871#endif
1872
0cb96387 1873#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
1874s |void |find_beginning
1875s |void |forbid_setid |char *
1876s |void |incpush |char *|int
1877s |void |init_interp
1878s |void |init_ids
cea2e8a9
GS
1879s |void |init_lexer
1880s |void |init_main_stash
1881s |void |init_perllib
1882s |void |init_postdump_symbols|int|char **|char **
1883s |void |init_predump_symbols
1884rs |void |my_exit_jump
1885s |void |nuke_stacks
1886s |void |open_script |char *|bool|SV *|int *fd
1887s |void |usage |char *
1888s |void |validate_suid |char *|char*|int
cea2e8a9 1889# if defined(IAMSUID)
e688b231 1890s |int |fd_on_nosuid_fs|int fd
cea2e8a9
GS
1891# endif
1892s |void* |parse_body |va_list args
1893s |void* |run_body |va_list args
1894s |void* |call_body |va_list args
1895s |void |call_xbody |OP *myop|int is_eval
1896s |void* |call_list_body |va_list args
1897# if defined(USE_THREADS)
1898s |struct perl_thread * |init_main_thread
1899# endif
1900#endif
1901
0cb96387 1902#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
1903s |void |doencodes |SV* sv|char* s|I32 len
1904s |SV* |refto |SV* sv
1905s |U32 |seed
1906s |SV* |mul128 |SV *sv|U8 m
1907s |SV* |is_an_int |char *s|STRLEN l
1908s |int |div128 |SV *pnum|bool *done
1909#endif
1910
0cb96387 1911#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
1912s |OP* |docatch |OP *o
1913s |void* |docatch_body |va_list args
1914s |OP* |dofindlabel |OP *o|char *label|OP **opstack|OP **oplimit
1915s |void |doparseform |SV *sv
1916s |I32 |dopoptoeval |I32 startingblock
1917s |I32 |dopoptolabel |char *label
1918s |I32 |dopoptoloop |I32 startingblock
1919s |I32 |dopoptosub |I32 startingblock
1920s |I32 |dopoptosub_at |PERL_CONTEXT* cxstk|I32 startingblock
1921s |void |free_closures
1922s |void |save_lines |AV *array|SV *sv
1923s |OP* |doeval |int gimme|OP** startop
1924s |PerlIO *|doopen_pmc |const char *name|const char *mode
1925s |void |qsortsv |SV ** array|size_t num_elts|SVCOMPARE_t f
cea2e8a9
GS
1926#endif
1927
0cb96387 1928#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
cea2e8a9 1929s |CV* |get_db_sub |SV **svp|CV *cv
f5d5a27c 1930s |SV* |method_common |SV* meth|U32* hashp
cea2e8a9
GS
1931#endif
1932
0cb96387 1933#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
cea2e8a9 1934s |OP* |doform |CV *cv|GV *gv|OP *retop
7f4774ae 1935s |int |emulate_eaccess|const char* path|Mode_t mode
cea2e8a9
GS
1936# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
1937s |int |dooneliner |char *cmd|char *filename
1938# endif
1939#endif
1940
0cb96387 1941#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
1942s |regnode*|reg |I32|I32 *
1943s |regnode*|reganode |U8|U32
1944s |regnode*|regatom |I32 *
1945s |regnode*|regbranch |I32 *|I32
cea2e8a9
GS
1946s |void |reguni |UV|char *|I32*
1947s |regnode*|regclass
1948s |regnode*|regclassutf8
1949s |I32 |regcurly |char *
1950s |regnode*|reg_node |U8
1951s |regnode*|regpiece |I32 *
1952s |void |reginsert |U8|regnode *
1953s |void |regoptail |regnode *|regnode *
1954s |void |regtail |regnode *|regnode *
1955s |char*|regwhite |char *|char *
1956s |char*|nextchar
1957s |regnode*|dumpuntil |regnode *start|regnode *node \
1958 |regnode *last|SV* sv|I32 l
82ba1be6 1959s |void |scan_commit |struct scan_data_t *data
cea2e8a9 1960s |I32 |study_chunk |regnode **scanp|I32 *deltap \
82ba1be6
IZ
1961 |regnode *last|struct scan_data_t *data \
1962 |U32 flags
cea2e8a9
GS
1963s |I32 |add_data |I32 n|char *s
1964rs |void|re_croak2 |const char* pat1|const char* pat2|...
b8c5462f
JH
1965s |I32 |regpposixcc |I32 value
1966s |void |checkposixcc
cea2e8a9
GS
1967#endif
1968
0cb96387 1969#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
1970s |I32 |regmatch |regnode *prog
1971s |I32 |regrepeat |regnode *p|I32 max
1972s |I32 |regrepeat_hard |regnode *p|I32 max|I32 *lp
1973s |I32 |regtry |regexp *prog|char *startpos
936ed897 1974s |bool |reginclass |regnode *p|I32 c
cea2e8a9
GS
1975s |bool |reginclassutf8 |regnode *f|U8* p
1976s |CHECKPOINT|regcppush |I32 parenfloor
1977s |char*|regcppop
1978s |char*|regcp_set_to |I32 ss
1979s |void |cache_re |regexp *prog
cea2e8a9
GS
1980s |U8* |reghop |U8 *pos|I32 off
1981s |U8* |reghopmaybe |U8 *pos|I32 off
1982#endif
1983
0cb96387 1984#if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
1985s |void |debprof |OP *o
1986#endif
1987
0cb96387 1988#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
1989s |SV* |save_scalar_at |SV **sptr
1990#endif
1991
0cb96387 1992#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
1993s |IV |asIV |SV* sv
1994s |UV |asUV |SV* sv
1995s |SV* |more_sv
1996s |void |more_xiv
1997s |void |more_xnv
1998s |void |more_xpv
932e9ff9
VB
1999s |void |more_xpviv
2000s |void |more_xpvnv
2001s |void |more_xpvcv
2002s |void |more_xpvav
2003s |void |more_xpvhv
2004s |void |more_xpvmg
2005s |void |more_xpvlv
2006s |void |more_xpvbm
cea2e8a9
GS
2007s |void |more_xrv
2008s |XPVIV* |new_xiv
2009s |XPVNV* |new_xnv
2010s |XPV* |new_xpv
932e9ff9
VB
2011s |XPVIV* |new_xpviv
2012s |XPVNV* |new_xpvnv
2013s |XPVCV* |new_xpvcv
2014s |XPVAV* |new_xpvav
2015s |XPVHV* |new_xpvhv
2016s |XPVMG* |new_xpvmg
2017s |XPVLV* |new_xpvlv
2018s |XPVBM* |new_xpvbm
cea2e8a9
GS
2019s |XRV* |new_xrv
2020s |void |del_xiv |XPVIV* p
2021s |void |del_xnv |XPVNV* p
2022s |void |del_xpv |XPV* p
932e9ff9
VB
2023s |void |del_xpviv |XPVIV* p
2024s |void |del_xpvnv |XPVNV* p
2025s |void |del_xpvcv |XPVCV* p
2026s |void |del_xpvav |XPVAV* p
2027s |void |del_xpvhv |XPVHV* p
2028s |void |del_xpvmg |XPVMG* p
2029s |void |del_xpvlv |XPVLV* p
2030s |void |del_xpvbm |XPVBM* p
cea2e8a9
GS
2031s |void |del_xrv |XRV* p
2032s |void |sv_unglob |SV* sv
cea2e8a9
GS
2033s |void |not_a_number |SV *sv
2034s |void |visit |SVFUNC_t f
2035# if defined(PURIFY)
2036s |void |reg_add |SV *sv
2037s |void |reg_remove |SV *sv
2038# else
4f63d024 2039ns |void* |my_safemalloc |MEM_SIZE size
cea2e8a9
GS
2040# endif
2041s |void |sv_add_backref |SV *tsv|SV *sv
2042s |void |sv_del_backref |SV *sv
2043# if defined(DEBUGGING)
2044s |void |del_sv |SV *p
2045# endif
2046#endif
2047
0cb96387 2048#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
2049s |void |check_uni
2050s |void |force_next |I32 type
2051s |char* |force_version |char *start
2052s |char* |force_word |char *start|int token|int check_keyword \
2053 |int allow_pack|int allow_tick
2054s |SV* |tokeq |SV *sv
2055s |char* |scan_const |char *start
2056s |char* |scan_formline |char *s
2057s |char* |scan_heredoc |char *s
2058s |char* |scan_ident |char *s|char *send|char *dest \
2059 |STRLEN destlen|I32 ck_uni
2060s |char* |scan_inputsymbol|char *start
2061s |char* |scan_pat |char *start|I32 type
09bef843 2062s |char* |scan_str |char *start|int keep_quoted|int keep_delims
cea2e8a9
GS
2063s |char* |scan_subst |char *start
2064s |char* |scan_trans |char *start
2065s |char* |scan_word |char *s|char *dest|STRLEN destlen \
2066 |int allow_package|STRLEN *slp
2067s |char* |skipspace |char *s
2068s |void |checkcomma |char *s|char *name|char *what
2069s |void |force_ident |char *s|int kind
2070s |void |incline |char *s
2071s |int |intuit_method |char *s|GV *gv
2072s |int |intuit_more |char *s
2073s |I32 |lop |I32 f|expectation x|char *s
2074s |void |missingterm |char *s
2075s |void |no_op |char *what|char *s
2076s |void |set_csh
2077s |I32 |sublex_done
2078s |I32 |sublex_push
2079s |I32 |sublex_start
2080s |char * |filter_gets |SV *sv|PerlIO *fp|STRLEN append
dff6d3cd
GS
2081s |SV* |new_constant |char *s|STRLEN len|const char *key|SV *sv \
2082 |SV *pv|const char *type
cea2e8a9
GS
2083s |int |ao |int toketype
2084s |void |depcom
2085s |char* |incl_perldb
2086s |I32 |utf16_textfilter|int idx|SV *sv|int maxlen
2087s |I32 |utf16rev_textfilter|int idx|SV *sv|int maxlen
cea2e8a9
GS
2088# if defined(CRIPPLED_CC)
2089s |int |uni |I32 f|char *s
2090# endif
2091# if defined(WIN32)
2092s |I32 |win32_textfilter |int idx|SV *sv|int maxlen
2093# endif
2094#endif
2095
0cb96387 2096#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
2097s |SV*|isa_lookup |HV *stash|const char *name|int len|int level
2098#endif
2099
0cb96387 2100#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
cea2e8a9 2101s |SV* |mess_alloc
cea2e8a9
GS
2102# if defined(LEAKTEST)
2103s |void |xstat |int
2104# endif
2105#endif