X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlguts.pod;h=5f1dd21a14091dfac3056b6e366068a237c49476;hb=1e6da01743571311bdbed539271d576c28f4c2ec;hp=58bcea3d1ab3f8a8f32498bdb911d9ef25b88a3c;hpb=2fa86c13816417d1d62616d1bb8114a5a9831c33;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlguts.pod b/pod/perlguts.pod index 58bcea3..5f1dd21 100644 --- a/pod/perlguts.pod +++ b/pod/perlguts.pod @@ -385,10 +385,10 @@ Beginning with version 5.004, the following functions are also supported: HE* hv_fetch_ent (HV* tb, SV* key, I32 lval, U32 hash); HE* hv_store_ent (HV* tb, SV* key, SV* val, U32 hash); - + bool hv_exists_ent (HV* tb, SV* key, U32 hash); SV* hv_delete_ent (HV* tb, SV* key, I32 flags, U32 hash); - + SV* hv_iterkeysv (HE* entry); Note that these functions take C keys, which simplifies writing @@ -398,14 +398,13 @@ you to stringify the keys (unlike the previous set of functions). They also return and accept whole hash entries (C), making their use more efficient (since the hash number for a particular string -doesn't have to be recomputed every time). See L later in -this document for detailed descriptions. +doesn't have to be recomputed every time). See L for detailed +descriptions. The following macros must always be used to access the contents of hash entries. Note that the arguments to these macros must be simple variables, since they may get evaluated more than once. See -L later in this document for detailed descriptions of these -macros. +L for detailed descriptions of these macros. HePV(HE* he, STRLEN len) HeVAL(HE* he) @@ -912,7 +911,7 @@ calling these functions, or by using one of the C or C functions. Similarly, generic C code must call the C macro to invoke any 'get' magic if they use an SV obtained from external sources in functions that don't handle magic. -L later in this document identifies such functions. +See L for a description of these functions. For example, calls to the C functions typically need to be followed by C, but they don't need a prior C since their implementation handles 'get' magic. @@ -1464,13 +1463,13 @@ C. =head2 Compile pass 1: check routines -The tree is created by the I while yacc code feeds it -the constructions it recognizes. Since yacc works bottom-up, so does +The tree is created by the compiler while I code feeds it +the constructions it recognizes. Since I works bottom-up, so does the first pass of perl compilation. What makes this pass interesting for perl developers is that some optimization may be performed on this pass. This is optimization by -so-called I. The correspondence between node names +so-called "check routines". The correspondence between node names and corresponding check routines is described in F (do not forget to run C if you modify this file). @@ -1524,9 +1523,6 @@ are subject to the same restrictions as in the pass 2. =head1 How multiple interpreters and concurrency are supported -WARNING: This information is subject to radical changes prior to -the Perl 5.6 release. Use with caution. - =head2 Background and PERL_IMPLICIT_CONTEXT The Perl interpreter can be regarded as a closed box: it has an API @@ -1560,8 +1556,8 @@ which will be private. All functions whose names begin C are private "Perl_", but just because a function begins with "Perl_" does not mean it is part of the API. The easiest way to be B a function is part of the API is to find its entry in L. If it exists in L, it's part -of the API. If it doesn't, and you think it should be (i.e., you need it fo -r your extension), send mail via L explaining why you think it +of the API. If it doesn't, and you think it should be (i.e., you need it for +your extension), send mail via L explaining why you think it should be. (L itself is generated by embed.pl, a Perl script that generates @@ -1669,7 +1665,7 @@ Thus, something like: sv_setsv(asv, bsv); -in your extesion will translate to this when PERL_IMPLICIT_CONTEXT is +in your extension will translate to this when PERL_IMPLICIT_CONTEXT is in effect: Perl_sv_setsv(Perl_get_context(), asv, bsv);