Have symbols for the IoTYPEs.
[p5sagit/p5-mst-13.2.git] / embed.pl
index 08e305b..3e4c7d5 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -1130,6 +1130,8 @@ sub docout ($$$) { # output the docs for one function
     my($fh, $name, $docref) = @_;
     my($flags, $docs, $ret, $file, @args) = @$docref;
 
+    $docs .= "NOTE: this function is experimental and may change or be
+removed without notice.\n\n" if $flags =~ /x/;
     $docs .= "NOTE: the perl_ form of this function is deprecated.\n\n" 
        if $flags =~ /p/;
 
@@ -1169,6 +1171,7 @@ walk_table {      # load documented functions into approriate hash
        if ($flags =~ /A/) {
            my $docref = delete $docfuncs{$func};
            warn "no docs for $func\n" unless $docref and @$docref;
+        $docref->[0].="x" if $flags =~ /M/;
            $apidocs{$func} = [$docref->[0] . 'A', $docref->[1], $retval,
                               $docref->[3], @args];
        } else {
@@ -1302,6 +1305,7 @@ __END__
 :       o              has no compatibility macro (#define foo Perl_foo)
 :       j              not a member of CPerlObj
 :       x              not exported
+:       M              may change
 :
 : Individual flags may be separated by whitespace.
 :
@@ -1384,17 +1388,17 @@ Ap      |HE*    |avhv_iternext  |AV *ar
 Ap     |SV*    |avhv_iterval   |AV *ar|HE* entry
 Ap     |HV*    |avhv_keys      |AV *ar
 Apd    |void   |av_clear       |AV* ar
-Ap     |SV*    |av_delete      |AV* ar|I32 key|I32 flags
-Ap     |bool   |av_exists      |AV* ar|I32 key
+Apd    |SV*    |av_delete      |AV* ar|I32 key|I32 flags
+Apd    |bool   |av_exists      |AV* ar|I32 key
 Apd    |void   |av_extend      |AV* ar|I32 key
-Ap     |AV*    |av_fake        |I32 size|SV** svp
+p      |AV*    |av_fake        |I32 size|SV** svp
 Apd    |SV**   |av_fetch       |AV* ar|I32 key|I32 lval
-Ap     |void   |av_fill        |AV* ar|I32 fill
+Apd    |void   |av_fill        |AV* ar|I32 fill
 Apd    |I32    |av_len         |AV* ar
 Apd    |AV*    |av_make        |I32 size|SV** svp
 Apd    |SV*    |av_pop         |AV* ar
 Apd    |void   |av_push        |AV* ar|SV* val
-Ap     |void   |av_reify       |AV* ar
+p      |void   |av_reify       |AV* ar
 Apd    |SV*    |av_shift       |AV* ar
 Apd    |SV**   |av_store       |AV* ar|I32 key|SV* val
 Apd    |void   |av_undef       |AV* ar
@@ -1541,6 +1545,7 @@ Ap        |GV*    |gv_autoload4   |HV* stash|const char* name|STRLEN len \
 Ap     |void   |gv_check       |HV* stash
 Ap     |void   |gv_efullname   |SV* sv|GV* gv
 Ap     |void   |gv_efullname3  |SV* sv|GV* gv|const char* prefix
+Ap     |void   |gv_efullname4  |SV* sv|GV* gv|const char* prefix|bool keepmain
 Ap     |GV*    |gv_fetchfile   |const char* name
 Apd    |GV*    |gv_fetchmeth   |HV* stash|const char* name|STRLEN len \
                                |I32 level
@@ -1550,6 +1555,7 @@ Apd       |GV*    |gv_fetchmethod_autoload|HV* stash|const char* name \
 Ap     |GV*    |gv_fetchpv     |const char* name|I32 add|I32 sv_type
 Ap     |void   |gv_fullname    |SV* sv|GV* gv
 Ap     |void   |gv_fullname3   |SV* sv|GV* gv|const char* prefix
+Ap     |void   |gv_fullname4   |SV* sv|GV* gv|const char* prefix|bool keepmain
 Ap     |void   |gv_init        |GV* gv|HV* stash|const char* name \
                                |STRLEN len|int multi
 Apd    |HV*    |gv_stashpv     |const char* name|I32 create
@@ -1966,7 +1972,7 @@ Ap        |NV     |sv_nv          |SV* sv
 Ap     |char*  |sv_pvn         |SV *sv|STRLEN *len
 Ap     |char*  |sv_pvutf8n     |SV *sv|STRLEN *len
 Ap     |char*  |sv_pvbyten     |SV *sv|STRLEN *len
-Ap     |I32    |sv_true        |SV *sv
+Apd    |I32    |sv_true        |SV *sv
 p      |void   |sv_add_arena   |char* ptr|U32 size|U32 flags
 Ap     |int    |sv_backoff     |SV* sv
 Apd    |SV*    |sv_bless       |SV* sv|HV* stash
@@ -1978,9 +1984,9 @@ Apd       |void   |sv_catsv       |SV* dsv|SV* ssv
 Apd    |void   |sv_chop        |SV* sv|char* ptr
 p      |void   |sv_clean_all
 p      |void   |sv_clean_objs
-Ap     |void   |sv_clear       |SV* sv
+Apd    |void   |sv_clear       |SV* sv
 Apd    |I32    |sv_cmp         |SV* sv1|SV* sv2
-Ap     |I32    |sv_cmp_locale  |SV* sv1|SV* sv2
+Apd    |I32    |sv_cmp_locale  |SV* sv1|SV* sv2
 #if defined(USE_LOCALE_COLLATE)
 Ap     |char*  |sv_collxfrm    |SV* sv|STRLEN* nxp
 #endif
@@ -1989,9 +1995,9 @@ Apd       |void   |sv_dec         |SV* sv
 Ap     |void   |sv_dump        |SV* sv
 Apd    |bool   |sv_derived_from|SV* sv|const char* name
 Apd    |I32    |sv_eq          |SV* sv1|SV* sv2
-Ap     |void   |sv_free        |SV* sv
+Apd    |void   |sv_free        |SV* sv
 p      |void   |sv_free_arenas
-Ap     |char*  |sv_gets        |SV* sv|PerlIO* fp|I32 append
+Apd    |char*  |sv_gets        |SV* sv|PerlIO* fp|I32 append
 Apd    |char*  |sv_grow        |SV* sv|STRLEN newlen
 Apd    |void   |sv_inc         |SV* sv
 Apd    |void   |sv_insert      |SV* bigsv|STRLEN offset|STRLEN len \
@@ -1999,7 +2005,7 @@ Apd       |void   |sv_insert      |SV* bigsv|STRLEN offset|STRLEN len \
 Apd    |int    |sv_isa         |SV* sv|const char* name
 Apd    |int    |sv_isobject    |SV* sv
 Apd    |STRLEN |sv_len         |SV* sv
-Ap     |STRLEN |sv_len_utf8    |SV* sv
+Apd    |STRLEN |sv_len_utf8    |SV* sv
 Apd    |void   |sv_magic       |SV* sv|SV* obj|int how|const char* name \
                                |I32 namlen
 Apd    |SV*    |sv_mortalcopy  |SV* oldsv
@@ -2008,11 +2014,11 @@ Ap      |SV*    |sv_newref      |SV* sv
 Ap     |char*  |sv_peek        |SV* sv
 Ap     |void   |sv_pos_u2b     |SV* sv|I32* offsetp|I32* lenp
 Ap     |void   |sv_pos_b2u     |SV* sv|I32* offsetp
-Ap     |char*  |sv_pvn_force   |SV* sv|STRLEN* lp
-Ap     |char*  |sv_pvutf8n_force|SV* sv|STRLEN* lp
+Apd    |char*  |sv_pvn_force   |SV* sv|STRLEN* lp
+Apd    |char*  |sv_pvutf8n_force|SV* sv|STRLEN* lp
 Ap     |char*  |sv_pvbyten_force|SV* sv|STRLEN* lp
-Ap     |char*  |sv_reftype     |SV* sv|int ob
-Ap     |void   |sv_replace     |SV* sv|SV* nsv
+Apd    |char*  |sv_reftype     |SV* sv|int ob
+Apd    |void   |sv_replace     |SV* sv|SV* nsv
 Ap     |void   |sv_report_used
 Ap     |void   |sv_reset       |char* s|HV* stash
 Afpd   |void   |sv_setpvf      |SV* sv|const char* pat|...
@@ -2031,7 +2037,7 @@ Apd       |void   |sv_setpvn      |SV* sv|const char* ptr|STRLEN len
 Apd    |void   |sv_setsv       |SV* dsv|SV* ssv
 Ap     |void   |sv_taint       |SV* sv
 Ap     |bool   |sv_tainted     |SV* sv
-Ap     |int    |sv_unmagic     |SV* sv|int type
+Apd    |int    |sv_unmagic     |SV* sv|int type
 Apd    |void   |sv_unref       |SV* sv
 Ap     |void   |sv_untaint     |SV* sv
 Apd    |bool   |sv_upgrade     |SV* sv|U32 mt
@@ -2060,18 +2066,18 @@ Ap      |void   |unlock_condpair|void* svv
 Ap     |void   |unsharepvn     |const char* sv|I32 len|U32 hash
 p      |void   |unshare_hek    |HEK* hek
 p      |void   |utilize        |int aver|I32 floor|OP* version|OP* id|OP* arg
-Ap     |U8*    |utf16_to_utf8  |U16* p|U8 *d|I32 bytelen
-Ap     |U8*    |utf16_to_utf8_reversed|U16* p|U8 *d|I32 bytelen
+Ap     |U8*    |utf16_to_utf8  |U8* p|U8 *d|I32 bytelen|I32 *newlen
+Ap     |U8*    |utf16_to_utf8_reversed|U8* p|U8 *d|I32 bytelen|I32 *newlen
 Ap     |I32    |utf8_distance  |U8 *a|U8 *b
 Ap     |U8*    |utf8_hop       |U8 *s|I32 off
-Ap     |U8*    |utf8_to_bytes  |U8 *s|STRLEN len
-Ap     |U8*    |bytes_to_utf8  |U8 *s|STRLEN *len
+ApM    |U8*    |utf8_to_bytes  |U8 *s|STRLEN len
+ApM    |U8*    |bytes_to_utf8  |U8 *s|STRLEN *len
 Ap     |UV     |utf8_to_uv     |U8 *s|I32* retlen
 Ap     |U8*    |uv_to_utf8     |U8 *d|UV uv
 p      |void   |vivify_defelem |SV* sv
 p      |void   |vivify_ref     |SV* sv|U32 to_what
 p      |I32    |wait4pid       |Pid_t pid|int* statusp|int flags
-p      |void   |report_closed_fh|GV *gv|IO *io|const char *func|const char *obj
+p      |void   |report_evil_fh |GV *gv|IO *io|I32 op
 p      |void   |report_uninit
 Afpd   |void   |warn           |const char* pat|...
 Ap     |void   |vwarn          |const char* pat|va_list* args
@@ -2153,13 +2159,13 @@ Ap      |char*  |sv_2pvbyte_nolen|SV* sv
 Ap     |char*  |sv_pv          |SV *sv
 Ap     |char*  |sv_pvutf8      |SV *sv
 Ap     |char*  |sv_pvbyte      |SV *sv
-Ap      |void   |sv_utf8_upgrade|SV *sv
-Ap      |bool   |sv_utf8_downgrade|SV *sv|bool fail_ok
-Ap      |void   |sv_utf8_encode |SV *sv
+Apd      |void   |sv_utf8_upgrade|SV *sv
+ApdM      |bool   |sv_utf8_downgrade|SV *sv|bool fail_ok
+ApdM      |void   |sv_utf8_encode |SV *sv
 Ap      |bool   |sv_utf8_decode |SV *sv
 Ap     |void   |sv_force_normal|SV *sv
 Ap     |void   |tmps_grow      |I32 n
-Ap     |SV*    |sv_rvweaken    |SV *sv
+Apd    |SV*    |sv_rvweaken    |SV *sv
 p      |int    |magic_killbackrefs|SV *sv|MAGIC *mg
 Ap     |OP*    |newANONATTRSUB |I32 floor|OP *proto|OP *attrs|OP *block
 Ap     |CV*    |newATTRSUB     |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
@@ -2474,7 +2480,7 @@ s |char*  |scan_trans     |char *start
 s      |char*  |scan_word      |char *s|char *dest|STRLEN destlen \
                                |int allow_package|STRLEN *slp
 s      |char*  |skipspace      |char *s
-s      |char*  |swallow_bom    |char *s
+s      |char*  |swallow_bom    |U8 *s
 s      |void   |checkcomma     |char *s|char *name|char *what
 s      |void   |force_ident    |char *s|int kind
 s      |void   |incline        |char *s