This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Note that various items in perlguts are documented
authorKarl Williamson <khw@cpan.org>
Sat, 31 Aug 2019 19:58:16 +0000 (13:58 -0600)
committerKarl Williamson <khw@cpan.org>
Tue, 3 Sep 2019 03:52:11 +0000 (21:52 -0600)
embed.fnc
pod/perlguts.pod

index a58a1fc..821a469 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -1514,8 +1514,8 @@ Amp       |void   |save_aelem     |NN AV* av|SSize_t idx|NN SV **sptr
 Ap     |void   |save_aelem_flags|NN AV* av|SSize_t idx|NN SV **sptr \
                                 |const U32 flags
 Ap     |I32    |save_alloc     |I32 size|I32 pad
 Ap     |void   |save_aelem_flags|NN AV* av|SSize_t idx|NN SV **sptr \
                                 |const U32 flags
 Ap     |I32    |save_alloc     |I32 size|I32 pad
-Ap     |void   |save_aptr      |NN AV** aptr
-Ap     |AV*    |save_ary       |NN GV* gv
+Apdh   |void   |save_aptr      |NN AV** aptr
+Apdh   |AV*    |save_ary       |NN GV* gv
 Ap     |void   |save_bool      |NN bool* boolp
 Ap     |void   |save_clearsv   |NN SV** svp
 Ap     |void   |save_delete    |NN HV *hv|NN char *key|I32 klen
 Ap     |void   |save_bool      |NN bool* boolp
 Ap     |void   |save_clearsv   |NN SV** svp
 Ap     |void   |save_delete    |NN HV *hv|NN char *key|I32 klen
@@ -1531,31 +1531,31 @@ Ap      |void   |save_generic_svref|NN SV** sptr
 Ap     |void   |save_generic_pvref|NN char** str
 Ap     |void   |save_shared_pvref|NN char** str
 Adp    |void   |save_gp        |NN GV* gv|I32 empty
 Ap     |void   |save_generic_pvref|NN char** str
 Ap     |void   |save_shared_pvref|NN char** str
 Adp    |void   |save_gp        |NN GV* gv|I32 empty
-Ap     |HV*    |save_hash      |NN GV* gv
+Apdh   |HV*    |save_hash      |NN GV* gv
 Ap     |void   |save_hints
 Amp    |void   |save_helem     |NN HV *hv|NN SV *key|NN SV **sptr
 Ap     |void   |save_helem_flags|NN HV *hv|NN SV *key|NN SV **sptr|const U32 flags
 Ap     |void   |save_hints
 Amp    |void   |save_helem     |NN HV *hv|NN SV *key|NN SV **sptr
 Ap     |void   |save_helem_flags|NN HV *hv|NN SV *key|NN SV **sptr|const U32 flags
-Ap     |void   |save_hptr      |NN HV** hptr
+Apdh   |void   |save_hptr      |NN HV** hptr
 Ap     |void   |save_I16       |NN I16* intp
 Ap     |void   |save_I32       |NN I32* intp
 Ap     |void   |save_I8        |NN I8* bytep
 Ap     |void   |save_int       |NN int* intp
 Apdh   |void   |save_item      |NN SV* item
 Ap     |void   |save_iv        |NN IV *ivp
 Ap     |void   |save_I16       |NN I16* intp
 Ap     |void   |save_I32       |NN I32* intp
 Ap     |void   |save_I8        |NN I8* bytep
 Ap     |void   |save_int       |NN int* intp
 Apdh   |void   |save_item      |NN SV* item
 Ap     |void   |save_iv        |NN IV *ivp
-AbpD   |void   |save_list      |NN SV** sarg|I32 maxsarg
+AbpDdh |void   |save_list      |NN SV** sarg|I32 maxsarg
 AbpD   |void   |save_long      |NN long* longp
 ApMb   |void   |save_mortalizesv|NN SV* sv
 AbpD   |void   |save_nogv      |NN GV* gv
 : Used in SAVEFREOP(), used in gv.c, op.c, perl.c, pp_ctl.c, pp_sort.c
 ApMb   |void   |save_op
 AbpD   |void   |save_long      |NN long* longp
 ApMb   |void   |save_mortalizesv|NN SV* sv
 AbpD   |void   |save_nogv      |NN GV* gv
 : Used in SAVEFREOP(), used in gv.c, op.c, perl.c, pp_ctl.c, pp_sort.c
 ApMb   |void   |save_op
-Ap     |SV*    |save_scalar    |NN GV* gv
+Apdh   |SV*    |save_scalar    |NN GV* gv
 Ap     |void   |save_pptr      |NN char** pptr
 Ap     |void   |save_vptr      |NN void *ptr
 Ap     |void   |save_re_context
 Ap     |void   |save_padsv_and_mortalize|PADOFFSET off
 Ap     |void   |save_sptr      |NN SV** sptr
 Xp     |void   |save_strlen    |NN STRLEN* ptr
 Ap     |void   |save_pptr      |NN char** pptr
 Ap     |void   |save_vptr      |NN void *ptr
 Ap     |void   |save_re_context
 Ap     |void   |save_padsv_and_mortalize|PADOFFSET off
 Ap     |void   |save_sptr      |NN SV** sptr
 Xp     |void   |save_strlen    |NN STRLEN* ptr
-Ap     |SV*    |save_svref     |NN SV** sptr
+Apdh   |SV*    |save_svref     |NN SV** sptr
 Axpo   |void   |savetmps
 Ap     |void   |save_pushptr   |NULLOK void *const ptr|const int type
 Ap     |void   |save_pushi32ptr|const I32 i|NULLOK void *const ptr|const int type
 Axpo   |void   |savetmps
 Ap     |void   |save_pushptr   |NULLOK void *const ptr|const int type
 Ap     |void   |save_pushi32ptr|const I32 i|NULLOK void *const ptr|const int type
index 75d1cfb..fb6701d 100644 (file)
@@ -548,6 +548,8 @@ is only valid for the duration of a single perl process.
 See L</Understanding the Magic of Tied Hashes and Arrays> for more
 information on how to use the hash access functions on tied hashes.
 
 See L</Understanding the Magic of Tied Hashes and Arrays> for more
 information on how to use the hash access functions on tied hashes.
 
+=for apidoc Amh|void|PERL_HASH|U32 hash|char *key|STRLEN klen
+
 =head2 Hash API Extensions
 
 Beginning with version 5.004, the following functions are also supported:
 =head2 Hash API Extensions
 
 Beginning with version 5.004, the following functions are also supported:
@@ -1652,12 +1654,18 @@ function takes C<int *>.
 
 =item C<SV* save_scalar(GV *gv)>
 
 
 =item C<SV* save_scalar(GV *gv)>
 
+=for apidoc save_scalar
+
 Equivalent to Perl code C<local $gv>.
 
 =item C<AV* save_ary(GV *gv)>
 
 Equivalent to Perl code C<local $gv>.
 
 =item C<AV* save_ary(GV *gv)>
 
+=for apidoc save_ary
+
 =item C<HV* save_hash(GV *gv)>
 
 =item C<HV* save_hash(GV *gv)>
 
+=for apidoc save_hash
+
 Similar to C<save_scalar>, but localize C<@gv> and C<%gv>.
 
 =item C<void save_item(SV *item)>
 Similar to C<save_scalar>, but localize C<@gv> and C<%gv>.
 
 =item C<void save_item(SV *item)>
@@ -1671,17 +1679,24 @@ magic is affected.
 
 =item C<void save_list(SV **sarg, I32 maxsarg)>
 
 
 =item C<void save_list(SV **sarg, I32 maxsarg)>
 
+=for apidoc save_list
+
 A variant of C<save_item> which takes multiple arguments via an array
 C<sarg> of C<SV*> of length C<maxsarg>.
 
 =item C<SV* save_svref(SV **sptr)>
 
 A variant of C<save_item> which takes multiple arguments via an array
 C<sarg> of C<SV*> of length C<maxsarg>.
 
 =item C<SV* save_svref(SV **sptr)>
 
+=for apidoc save_svref
+
 Similar to C<save_scalar>, but will reinstate an C<SV *>.
 
 =item C<void save_aptr(AV **aptr)>
 
 =item C<void save_hptr(HV **hptr)>
 
 Similar to C<save_scalar>, but will reinstate an C<SV *>.
 
 =item C<void save_aptr(AV **aptr)>
 
 =item C<void save_hptr(HV **hptr)>
 
+=for apidoc save_aptr
+=for apidoc save_hptr
+
 Similar to C<save_svref>, but localize C<AV *> and C<HV *>.
 
 =back
 Similar to C<save_svref>, but localize C<AV *> and C<HV *>.
 
 =back
@@ -2354,6 +2369,8 @@ please see F<miniperlmain.c> for usage details.  You may also need
 to use C<dVAR> in your coding to "declare the global variables"
 when you are using them.  dTHX does this for you automatically.
 
 to use C<dVAR> in your coding to "declare the global variables"
 when you are using them.  dTHX does this for you automatically.
 
+=for apidoc Amnh||dVAR
+
 To see whether you have non-const data you can use a BSD (or GNU)
 compatible C<nm>:
 
 To see whether you have non-const data you can use a BSD (or GNU)
 compatible C<nm>:
 
@@ -2415,6 +2432,12 @@ The first character could be 'p' for a B<p>rototype, 'a' for B<a>rgument,
 or 'd' for B<d>eclaration, so we have C<pTHX>, C<aTHX> and C<dTHX>, and
 their variants.
 
 or 'd' for B<d>eclaration, so we have C<pTHX>, C<aTHX> and C<dTHX>, and
 their variants.
 
+=for apidoc Amnh||aTHX
+=for apidoc Amnh||aTHX_
+=for apidoc Amnh||dTHX
+=for apidoc Amnh||pTHX
+=for apidoc Amnh||pTHX_
+
 When Perl is built without options that set PERL_IMPLICIT_CONTEXT, there is no
 first argument containing the interpreter's context.  The trailing underscore
 in the pTHX_ macro indicates that the macro expansion needs a comma
 When Perl is built without options that set PERL_IMPLICIT_CONTEXT, there is no
 first argument containing the interpreter's context.  The trailing underscore
 in the pTHX_ macro indicates that the macro expansion needs a comma
@@ -2461,6 +2484,8 @@ need only be aware of [pad]THX.
 
 =head2 So what happened to dTHR?
 
 
 =head2 So what happened to dTHR?
 
+=for apidoc Amnh||dTHR
+
 C<dTHR> was introduced in perl 5.005 to support the older thread model.
 The older thread model now uses the C<THX> mechanism to pass context
 pointers around, so C<dTHR> is not useful any more.  Perl 5.6.0 and
 C<dTHR> was introduced in perl 5.005 to support the older thread model.
 The older thread model now uses the C<THX> mechanism to pass context
 pointers around, so C<dTHR> is not useful any more.  Perl 5.6.0 and
@@ -2669,6 +2694,14 @@ following macros for portability
         NVff            NV %f-like
         NVgf            NV %g-like
 
         NVff            NV %f-like
         NVgf            NV %g-like
 
+=for apidoc Amnh||IVdf
+=for apidoc Amnh||UVuf
+=for apidoc Amnh||UVof
+=for apidoc Amnh||UVxf
+=for apidoc Amnh||NVef
+=for apidoc Amnh||NVff
+=for apidoc Amnh||NVgf
+
 These will take care of 64-bit integers and long doubles.
 For example:
 
 These will take care of 64-bit integers and long doubles.
 For example:
 
@@ -2706,6 +2739,11 @@ use the follow macros to do it right.
         PTR2NV(pointer)
         INT2PTR(pointertotype, integer)
 
         PTR2NV(pointer)
         INT2PTR(pointertotype, integer)
 
+=for apidoc Amh|void *|INT2PTR|type|int value
+=for apidoc Amh|UV|PTR2UV|void *
+=for apidoc Amh|IV|PTR2IV|void *
+=for apidoc Amh|NV|PTR2NV|void *
+
 For example:
 
         IV  iv = ...;
 For example:
 
         IV  iv = ...;