X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlintern.pod;h=67ff429af01d51319de563623b65b7898039cc3b;hb=d77cdebfaf0c7eb784a132b575c93953a56db215;hp=3190e0948c9410132382265da69505a52e664673;hpb=32fc9b6af894c845c5b239287596b88571b3fcdf;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlintern.pod b/pod/perlintern.pod index 3190e09..67ff429 100644 --- a/pod/perlintern.pod +++ b/pod/perlintern.pod @@ -1,3 +1,9 @@ +-*- buffer-read-only: t -*- + +!!!!!!! DO NOT EDIT THIS FILE !!!!!!! +This file is built by autodoc.pl extracting documentation from the C source +files. + =head1 NAME perlintern - autogenerated documentation of purely B @@ -113,10 +119,9 @@ Found in file pad.h =item PAD_CLONE_VARS X -|CLONE_PARAMS* param Clone the state variables associated with running and compiling pads. - void PAD_CLONE_VARS(PerlInterpreter *proto_perl \) + void PAD_CLONE_VARS(PerlInterpreter *proto_perl, CLONE_PARAMS* param) =for hackers Found in file pad.h @@ -136,7 +141,7 @@ Found in file pad.h X The generation number of the name at offset C in the current -compiling pad (lvalue). Note that C is hijacked for this purpose. +compiling pad (lvalue). Note that C is hijacked for this purpose. STRLEN PAD_COMPNAME_GEN(PADOFFSET po) @@ -147,7 +152,7 @@ Found in file pad.h X Sets the generation number of the name at offset C in the current -ling pad (lvalue) to C. Note that C is hijacked for this purpose. +ling pad (lvalue) to C. Note that C is hijacked for this purpose. STRLEN PAD_COMPNAME_GEN_set(PADOFFSET po, int gen) @@ -325,114 +330,6 @@ Found in file pad.h =back -=head1 Functions in file pp_ctl.c - - -=over 8 - -=item find_runcv -X - -Locate the CV corresponding to the currently executing sub or eval. -If db_seqp is non_null, skip CVs that are in the DB package and populate -*db_seqp with the cop sequence number at the point that the DB:: code was -entered. (allows debuggers to eval in the scope of the breakpoint rather -than in the scope of the debugger itself). - - CV* find_runcv(U32 *db_seqp) - -=for hackers -Found in file pp_ctl.c - - -=back - -=head1 Global Variables - -=over 8 - -=item PL_DBsingle -X - -When Perl is run in debugging mode, with the B<-d> switch, this SV is a -boolean which indicates whether subs are being single-stepped. -Single-stepping is automatically turned on after every step. This is the C -variable which corresponds to Perl's $DB::single variable. See -C. - - SV * PL_DBsingle - -=for hackers -Found in file intrpvar.h - -=item PL_DBsub -X - -When Perl is run in debugging mode, with the B<-d> switch, this GV contains -the SV which holds the name of the sub being debugged. This is the C -variable which corresponds to Perl's $DB::sub variable. See -C. - - GV * PL_DBsub - -=for hackers -Found in file intrpvar.h - -=item PL_DBtrace -X - -Trace variable used when Perl is run in debugging mode, with the B<-d> -switch. This is the C variable which corresponds to Perl's $DB::trace -variable. See C. - - SV * PL_DBtrace - -=for hackers -Found in file intrpvar.h - -=item PL_dowarn -X - -The C variable which corresponds to Perl's $^W warning variable. - - bool PL_dowarn - -=for hackers -Found in file intrpvar.h - -=item PL_last_in_gv -X - -The GV which was last used for a filehandle input operation. (C<< >>) - - GV* PL_last_in_gv - -=for hackers -Found in file thrdvar.h - -=item PL_ofs_sv -X - -The output field separator - C<$,> in Perl space. - - SV* PL_ofs_sv - -=for hackers -Found in file thrdvar.h - -=item PL_rs -X - -The input record separator - C<$/> in Perl space. - - SV* PL_rs - -=for hackers -Found in file thrdvar.h - - -=back - =head1 GV Functions =over 8 @@ -477,7 +374,7 @@ Found in file gv.c =item refcounted_he_chain_2hv X -Generates an returns a C by walking up the tree starting at the passed +Generates and returns a C by walking up the tree starting at the passed in C. HV * refcounted_he_chain_2hv(const struct refcounted_he *c) @@ -500,10 +397,9 @@ Found in file hv.c =item refcounted_he_new X -Creates a new C. Assumes ownership of one reference -to I. As S is copied into a shared hash key, all references remain -the property of the caller. The C is returned with a -reference count of 1. +Creates a new C. As S is copied, and value is +stored in a compact form, all references remain the property of the caller. +The C is returned with a reference count of 1. struct refcounted_he * refcounted_he_new(struct refcounted_he *const parent, SV *const key, SV *const value) @@ -540,7 +436,8 @@ Found in file doio.c =item magic_sethint X -Triggered by a delete from %^H, records the key to C. +Triggered by a delete from %^H, records the key to +C. int magic_sethint(SV* sv, MAGIC* mg) @@ -562,6 +459,63 @@ Found in file mg.c =back +=head1 MRO Functions + +=over 8 + +=item mro_get_linear_isa_c3 +X + +Returns the C3 linearization of @ISA +the given stash. The return value is a read-only AV*. +C should be 0 (it is used internally in this +function's recursion). + +You are responsible for C on the +return value if you plan to store it anywhere +semi-permanently (otherwise it might be deleted +out from under you the next time the cache is +invalidated). + + AV* mro_get_linear_isa_c3(HV* stash, I32 level) + +=for hackers +Found in file mro.c + +=item mro_get_linear_isa_dfs +X + +Returns the Depth-First Search linearization of @ISA +the given stash. The return value is a read-only AV*. +C should be 0 (it is used internally in this +function's recursion). + +You are responsible for C on the +return value if you plan to store it anywhere +semi-permanently (otherwise it might be deleted +out from under you the next time the cache is +invalidated). + + AV* mro_get_linear_isa_dfs(HV* stash, I32 level) + +=for hackers +Found in file mro.c + +=item mro_isa_changed_in +X + +Takes the necessary steps (cache invalidations, mostly) +when the @ISA of the given package has changed. Invoked +by the C magic, should not need to invoke directly. + + void mro_isa_changed_in(HV* stash) + +=for hackers +Found in file mro.c + + +=back + =head1 Pad Data Structures =over 8 @@ -613,19 +567,19 @@ but only by their index allocated at compile time (which is usually in PL_op->op_targ), wasting a name SV for them doesn't make sense. The SVs in the names AV have their PV being the name of the variable. -NV+1..IV inclusive is a range of cop_seq numbers for which the name is -valid. For typed lexicals name SV is SVt_PVMG and SvSTASH points at the -type. For C lexicals, the type is also SVt_PVGV, with the MAGIC slot -pointing at the stash of the associated global (so that duplicate C -declarations in the same package can be detected). SvCUR is sometimes -hijacked to store the generation number during compilation. +xlow+1..xhigh inclusive in the NV union is a range of cop_seq numbers for +which the name is valid. For typed lexicals name SV is SVt_PVMG and SvSTASH +points at the type. For C lexicals, the type is also SVt_PVMG, with the +SvOURSTASH slot pointing at the stash of the associated global (so that +duplicate C declarations in the same package can be detected). SvUVX is +sometimes hijacked to store the generation number during compilation. If SvFAKE is set on the name SV, then that slot in the frame AV is a REFCNT'ed reference to a lexical from "outside". In this case, -the name SV does not use NVX and IVX to store a cop_seq range, since it is -in scope throughout. Instead IVX stores some flags containing info about +the name SV does not use xlow and xhigh to store a cop_seq range, since it is +in scope throughout. Instead xhigh stores some flags containing info about the real lexical (is it declared in an anon, and is it capable of being -instantiated multiple times?), and for fake ANONs, NVX contains the index +instantiated multiple times?), and for fake ANONs, xlow contains the index within the parent's pad where the lexical's value is stored, to make cloning quicker. @@ -708,11 +662,11 @@ offset. If C is valid, the name is for a typed lexical; set the name's stash to that value. If C is valid, it's an our lexical, set the name's -OURSTASH to that value +SvOURSTASH to that value If fake, it means we're cloning an existing entry - PADOFFSET pad_add_name(const char *name, HV* typestash, HV* ourstash, bool clone) + PADOFFSET pad_add_name(const char *name, HV* typestash, HV* ourstash, bool clone, bool state) =for hackers Found in file pad.c @@ -770,7 +724,7 @@ associated with the IVX field of a fake namesv. Note that pad_findlex() is recursive; it recurses up the chain of CVs, then comes back down, adding fake entries as it goes. It has to be this way -because fake namesvs in anon protoypes have to store in NVX the index into +because fake namesvs in anon protoypes have to store in xlow the index into the parent pad. PADOFFSET pad_findlex(const char *name, const CV* cv, U32 seq, int warn, SV** out_capture, SV** out_name_sv, int *out_flags) @@ -918,6 +872,92 @@ Found in file pad.c =back +=head1 Per-Interpreter Variables + +=over 8 + +=item PL_DBsingle +X + +When Perl is run in debugging mode, with the B<-d> switch, this SV is a +boolean which indicates whether subs are being single-stepped. +Single-stepping is automatically turned on after every step. This is the C +variable which corresponds to Perl's $DB::single variable. See +C. + + SV * PL_DBsingle + +=for hackers +Found in file intrpvar.h + +=item PL_DBsub +X + +When Perl is run in debugging mode, with the B<-d> switch, this GV contains +the SV which holds the name of the sub being debugged. This is the C +variable which corresponds to Perl's $DB::sub variable. See +C. + + GV * PL_DBsub + +=for hackers +Found in file intrpvar.h + +=item PL_DBtrace +X + +Trace variable used when Perl is run in debugging mode, with the B<-d> +switch. This is the C variable which corresponds to Perl's $DB::trace +variable. See C. + + SV * PL_DBtrace + +=for hackers +Found in file intrpvar.h + +=item PL_dowarn +X + +The C variable which corresponds to Perl's $^W warning variable. + + bool PL_dowarn + +=for hackers +Found in file intrpvar.h + +=item PL_last_in_gv +X + +The GV which was last used for a filehandle input operation. (C<< >>) + + GV* PL_last_in_gv + +=for hackers +Found in file intrpvar.h + +=item PL_ofs_sv +X + +The output field separator - C<$,> in Perl space. + + SV* PL_ofs_sv + +=for hackers +Found in file intrpvar.h + +=item PL_rs +X + +The input record separator - C<$/> in Perl space. + + SV* PL_rs + +=for hackers +Found in file intrpvar.h + + +=back + =head1 Stack Manipulation Macros =over 8 @@ -997,6 +1037,25 @@ Found in file sv.c =back +=head1 SV-Body Allocation + +=over 8 + +=item sv_2num +X + +Return an SV with the numeric value of the source SV, doing any necessary +reference or overload conversion. You must use the C macro to +access this function. + + SV* sv_2num(SV* sv) + +=for hackers +Found in file sv.c + + +=back + =head1 Unicode Support =over 8 @@ -1046,3 +1105,6 @@ document their functions. perlguts(1), perlapi(1) +=cut + + ex: set ro: