This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl 5.003_03: [patch introduction and re-organisation]
[perl5.git] / embed.h
diff --git a/embed.h b/embed.h
index 00bde73..494b2db 100644 (file)
--- a/embed.h
+++ b/embed.h
@@ -1,13 +1,27 @@
-/* This file is derived from global.sym and interp.sym */
+/* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+   This file is built by embed.pl from global.sym and interp.sym.
+   Any changes made here will be lost 
+*/
 
 /* (Doing namespace management portably in C is really gross.) */
 
+/*  EMBED has no run-time penalty, but helps keep the Perl namespace
+    from colliding with that used by other libraries pulled in
+    by extensions or by embedding perl.  Allow a cc -DNO_EMBED
+    override, however, to keep binary compatability with previous
+    versions of perl.
+*/
+#ifndef NO_EMBED
+#  define EMBED 1 
+#endif
+
 #ifdef EMBED
 
 /* globals we need to hide from the world */
 #define AMG_names      Perl_AMG_names
 #define No             Perl_No
 #define Sv             Perl_Sv
+#define He             Perl_He
 #define Xpv            Perl_Xpv
 #define Yes            Perl_Yes
 #define abs_amg                Perl_abs_amg
@@ -31,6 +45,7 @@
 #define comppad                Perl_comppad
 #define comppad_name   Perl_comppad_name
 #define comppad_name_fill      Perl_comppad_name_fill
+#define comppad_name_floor     Perl_comppad_name_floor
 #define concat_amg     Perl_concat_amg
 #define concat_ass_amg Perl_concat_ass_amg
 #define cop_seqmax     Perl_cop_seqmax
 #define cshlen         Perl_cshlen
 #define cshname                Perl_cshname
 #define curcop         Perl_curcop
+#define curcopdb       Perl_curcopdb
 #define curinterp      Perl_curinterp
 #define curpad         Perl_curpad
+#define cv_const_sv    Perl_cv_const_sv
 #define dc             Perl_dc
+#define debug          Perl_debug
 #define dec_amg                Perl_dec_amg
 #define di             Perl_di
 #define div_amg                Perl_div_amg
 #define div_ass_amg    Perl_div_ass_amg
+#define do_undump      Perl_do_undump
 #define ds             Perl_ds
 #define egid           Perl_egid
 #define envgv          Perl_envgv
 #define opargs         Perl_opargs
 #define origalen       Perl_origalen
 #define origenviron    Perl_origenviron
+#define osname         Perl_osname
 #define padix          Perl_padix
 #define patleave       Perl_patleave
 #define pow_amg                Perl_pow_amg
 #define ppaddr         Perl_ppaddr
 #define profiledata    Perl_profiledata
 #define provide_ref    Perl_provide_ref
+#define psig_ptr       Perl_psig_ptr
+#define psig_name      Perl_psig_name
 #define qrt_amg                Perl_qrt_amg
 #define rcsid          Perl_rcsid
 #define reall_srchlen  Perl_reall_srchlen
 #define regeol         Perl_regeol
 #define regfold                Perl_regfold
 #define reginput       Perl_reginput
+#define regkind                Perl_regkind
 #define reglastparen   Perl_reglastparen
 #define regmyendp      Perl_regmyendp
 #define regmyp_size    Perl_regmyp_size
 #define sle_amg                Perl_sle_amg
 #define slt_amg                Perl_slt_amg
 #define sne_amg                Perl_sne_amg
-#define stack          Perl_stack
 #define stack_base     Perl_stack_base
 #define stack_max      Perl_stack_max
 #define stack_sp       Perl_stack_sp
 #define cast_ulong     Perl_cast_ulong
 #define check_uni      Perl_check_uni
 #define checkcomma     Perl_checkcomma
-#define chsize         Perl_chsize
 #define ck_aelem       Perl_ck_aelem
 #define ck_concat      Perl_ck_concat
+#define ck_delete      Perl_ck_delete
 #define ck_eof         Perl_ck_eof
 #define ck_eval                Perl_ck_eval
 #define ck_exec                Perl_ck_exec
 #define ck_match       Perl_ck_match
 #define ck_null                Perl_ck_null
 #define ck_repeat      Perl_ck_repeat
+#define ck_require     Perl_ck_require
 #define ck_retarget    Perl_ck_retarget
+#define ck_rfun                Perl_ck_rfun
 #define ck_rvconst     Perl_ck_rvconst
 #define ck_select      Perl_ck_select
 #define ck_shift       Perl_ck_shift
 #define ck_spair       Perl_ck_spair
 #define ck_split       Perl_ck_split
 #define ck_subr                Perl_ck_subr
+#define ck_svconst     Perl_ck_svconst
 #define ck_trunc       Perl_ck_trunc
 #define convert                Perl_convert
 #define cpytill                Perl_cpytill
 #define gv_fullname    Perl_gv_fullname
 #define gv_init                Perl_gv_init
 #define gv_stashpv     Perl_gv_stashpv
+#define gv_stashpvn    Perl_gv_stashpvn
 #define gv_stashsv     Perl_gv_stashsv
 #define he_delayfree   Perl_he_delayfree
 #define he_free                Perl_he_free
 #define hoistmust      Perl_hoistmust
 #define hv_clear       Perl_hv_clear
 #define hv_delete      Perl_hv_delete
+#define hv_delete_ent  Perl_hv_delete_ent
 #define hv_exists      Perl_hv_exists
+#define hv_exists_ent  Perl_hv_exists_ent
 #define hv_fetch       Perl_hv_fetch
+#define hv_fetch_ent   Perl_hv_fetch_ent
 #define hv_iterinit    Perl_hv_iterinit
 #define hv_iterkey     Perl_hv_iterkey
+#define hv_iterkeysv   Perl_hv_iterkeysv
 #define hv_iternext    Perl_hv_iternext
 #define hv_iternextsv  Perl_hv_iternextsv
 #define hv_iterval     Perl_hv_iterval
 #define hv_magic       Perl_hv_magic
 #define hv_stashpv     Perl_hv_stashpv
 #define hv_store       Perl_hv_store
+#define hv_store_ent   Perl_hv_store_ent
 #define hv_undef       Perl_hv_undef
 #define ibcmp          Perl_ibcmp
 #define ingroup                Perl_ingroup
 #define looks_like_number      Perl_looks_like_number
 #define magic_clearenv Perl_magic_clearenv
 #define magic_clearpack        Perl_magic_clearpack
+#define magic_clearsig Perl_magic_clearsig
 #define magic_existspack       Perl_magic_existspack
 #define magic_get      Perl_magic_get
 #define magic_getarylen        Perl_magic_getarylen
 #define magic_getglob  Perl_magic_getglob
 #define magic_getpack  Perl_magic_getpack
 #define magic_getpos   Perl_magic_getpos
+#define magic_getsig   Perl_magic_getsig
 #define magic_gettaint Perl_magic_gettaint
 #define magic_getuvar  Perl_magic_getuvar
 #define magic_len      Perl_magic_len
 #define my             Perl_my
 #define my_bcopy       Perl_my_bcopy
 #define my_bzero       Perl_my_bzero
+#define my_chsize      Perl_my_chsize
 #define my_exit                Perl_my_exit
 #define my_htonl       Perl_my_htonl
 #define my_lstat       Perl_my_lstat
 #define pop_return     Perl_pop_return
 #define pop_scope      Perl_pop_scope
 #define pp_aassign     Perl_pp_aassign
+#define pp_abs         Perl_pp_abs
 #define pp_accept      Perl_pp_accept
 #define pp_add         Perl_pp_add
 #define pp_aelem       Perl_pp_aelem
 #define pp_alarm       Perl_pp_alarm
 #define pp_and         Perl_pp_and
 #define pp_andassign   Perl_pp_andassign
+#define pp_anoncode    Perl_pp_anoncode
 #define pp_anonhash    Perl_pp_anonhash
 #define pp_anonlist    Perl_pp_anonlist
 #define pp_aslice      Perl_pp_aslice
 #define pp_binmode     Perl_pp_binmode
 #define pp_bit_and     Perl_pp_bit_and
 #define pp_bit_or      Perl_pp_bit_or
+#define pp_bit_xor     Perl_pp_bit_xor
 #define pp_bless       Perl_pp_bless
 #define pp_caller      Perl_pp_caller
 #define pp_chdir       Perl_pp_chdir
 #define pp_chomp       Perl_pp_chomp
 #define pp_chop                Perl_pp_chop
 #define pp_chown       Perl_pp_chown
+#define pp_chr         Perl_pp_chr
 #define pp_chroot      Perl_pp_chroot
 #define pp_close       Perl_pp_close
 #define pp_closedir    Perl_pp_closedir
 #define pp_fttty       Perl_pp_fttty
 #define pp_ftzero      Perl_pp_ftzero
 #define pp_ge          Perl_pp_ge
+#define pp_gelem       Perl_pp_gelem
 #define pp_getc                Perl_pp_getc
 #define pp_getlogin    Perl_pp_getlogin
 #define pp_getpeername Perl_pp_getpeername
 #define pp_helem       Perl_pp_helem
 #define pp_hex         Perl_pp_hex
 #define pp_hslice      Perl_pp_hslice
+#define pp_i_add       Perl_pp_i_add
+#define pp_i_divide    Perl_pp_i_divide
+#define pp_i_eq                Perl_pp_i_eq
+#define pp_i_ge                Perl_pp_i_ge
+#define pp_i_gt                Perl_pp_i_gt
+#define pp_i_le                Perl_pp_i_le
+#define pp_i_lt                Perl_pp_i_lt
+#define pp_i_modulo    Perl_pp_i_modulo
+#define pp_i_multiply  Perl_pp_i_multiply
+#define pp_i_ncmp      Perl_pp_i_ncmp
+#define pp_i_ne                Perl_pp_i_ne
+#define pp_i_negate    Perl_pp_i_negate
+#define pp_i_subtract  Perl_pp_i_subtract
 #define pp_index       Perl_pp_index
 #define pp_indread     Perl_pp_indread
 #define pp_int         Perl_pp_int
 #define pp_lstat       Perl_pp_lstat
 #define pp_lt          Perl_pp_lt
 #define pp_map         Perl_pp_map
+#define pp_mapstart    Perl_pp_mapstart
+#define pp_mapwhile    Perl_pp_mapwhile
 #define pp_match       Perl_pp_match
 #define pp_method      Perl_pp_method
 #define pp_mkdir       Perl_pp_mkdir
 #define pp_orassign    Perl_pp_orassign
 #define pp_ord         Perl_pp_ord
 #define pp_pack                Perl_pp_pack
+#define pp_padany      Perl_pp_padany
 #define pp_padav       Perl_pp_padav
 #define pp_padhv       Perl_pp_padhv
 #define pp_padsv       Perl_pp_padsv
 #define pp_push                Perl_pp_push
 #define pp_pushmark    Perl_pp_pushmark
 #define pp_pushre      Perl_pp_pushre
+#define pp_quotemeta   Perl_pp_quotemeta
 #define pp_rand                Perl_pp_rand
 #define pp_range       Perl_pp_range
 #define pp_rcatline    Perl_pp_rcatline
 #define pp_sservent    Perl_pp_sservent
 #define pp_ssockopt    Perl_pp_ssockopt
 #define pp_stat                Perl_pp_stat
+#define pp_stringify   Perl_pp_stringify
 #define pp_stub                Perl_pp_stub
 #define pp_study       Perl_pp_study
 #define pp_subst       Perl_pp_subst
 #define pp_subtract    Perl_pp_subtract
 #define pp_symlink     Perl_pp_symlink
 #define pp_syscall     Perl_pp_syscall
+#define pp_sysopen     Perl_pp_sysopen
 #define pp_sysread     Perl_pp_sysread
 #define pp_system      Perl_pp_system
 #define pp_syswrite    Perl_pp_syswrite
 #define regprop                Perl_regprop
 #define repeatcpy      Perl_repeatcpy
 #define rninstr                Perl_rninstr
-#define run            Perl_run
+#define runops         Perl_runops
 #define same_dirent    Perl_same_dirent
 #define save_I32       Perl_save_I32
 #define save_aptr      Perl_save_aptr
 #define screaminstr    Perl_screaminstr
 #define setdefout      Perl_setdefout
 #define setenv_getix   Perl_setenv_getix
+#define sharepvn       Perl_sharepvn
 #define sighandler     Perl_sighandler
 #define skipspace      Perl_skipspace
 #define stack_grow     Perl_stack_grow
 #define too_few_arguments      Perl_too_few_arguments
 #define too_many_arguments     Perl_too_many_arguments
 #define unlnk          Perl_unlnk
+#define unsharepvn     Perl_unsharepvn
 #define utilize                Perl_utilize
 #define wait4pid       Perl_wait4pid
 #define warn           Perl_warn
 
 #ifdef MULTIPLICITY
 
+/* Undefine symbols that were defined by EMBED. Somewhat ugly */
+
+#undef curcop
+#undef curcopdb
+#undef envgv
+#undef siggv
+#undef tainting
+
 #define Argv           (curinterp->IArgv)
 #define Cmd            (curinterp->ICmd)
 #define DBgv           (curinterp->IDBgv)
 #define copline                (curinterp->Icopline)
 #define curblock       (curinterp->Icurblock)
 #define curcop         (curinterp->Icurcop)
+#define curcopdb       (curinterp->Icurcopdb)
 #define curcsv         (curinterp->Icurcsv)
 #define curpm          (curinterp->Icurpm)
+#define curstack       (curinterp->Icurstack)
 #define curstash       (curinterp->Icurstash)
 #define curstname      (curinterp->Icurstname)
 #define cxstack                (curinterp->Icxstack)
 #define debdelim       (curinterp->Idebdelim)
 #define debname                (curinterp->Idebname)
 #define debstash       (curinterp->Idebstash)
-#define debug          (curinterp->Idebug)
 #define defgv          (curinterp->Idefgv)
 #define defoutgv       (curinterp->Idefoutgv)
 #define defstash       (curinterp->Idefstash)
 #define dirty          (curinterp->Idirty)
 #define dlevel         (curinterp->Idlevel)
 #define dlmax          (curinterp->Idlmax)
-#define do_undump      (curinterp->Ido_undump)
 #define doextract      (curinterp->Idoextract)
 #define doswitches     (curinterp->Idoswitches)
 #define dowarn         (curinterp->Idowarn)
 #define leftgv         (curinterp->Ileftgv)
 #define lineary                (curinterp->Ilineary)
 #define localizing     (curinterp->Ilocalizing)
+#define localpatches   (curinterp->Ilocalpatches)
 #define main_cv                (curinterp->Imain_cv)
 #define main_root      (curinterp->Imain_root)
 #define main_start     (curinterp->Imain_start)
 #define origfilename   (curinterp->Iorigfilename)
 #define ors            (curinterp->Iors)
 #define orslen         (curinterp->Iorslen)
-#define pad            (curinterp->Ipad)
-#define padname                (curinterp->Ipadname)
 #define parsehook      (curinterp->Iparsehook)
 #define patchlevel     (curinterp->Ipatchlevel)
 #define perldb         (curinterp->Iperldb)
 #define sortstack      (curinterp->Isortstack)
 #define sortstash      (curinterp->Isortstash)
 #define splitstr       (curinterp->Isplitstr)
-#define stack          (curinterp->Istack)
 #define statcache      (curinterp->Istatcache)
 #define statgv         (curinterp->Istatgv)
 #define statname       (curinterp->Istatname)
 #define statusvalue    (curinterp->Istatusvalue)
 #define stdingv                (curinterp->Istdingv)
 #define strchop                (curinterp->Istrchop)
+#define strtab         (curinterp->Istrtab)
 #define sv_count       (curinterp->Isv_count)
 #define sv_objcount    (curinterp->Isv_objcount)
 #define sv_root                (curinterp->Isv_root)
 #define Icopline       copline
 #define Icurblock      curblock
 #define Icurcop                curcop
+#define Icurcopdb      curcopdb
 #define Icurcsv                curcsv
 #define Icurpm         curpm
+#define Icurstack      curstack
 #define Icurstash      curstash
 #define Icurstname     curstname
 #define Icxstack       cxstack
 #define Idebdelim      debdelim
 #define Idebname       debname
 #define Idebstash      debstash
-#define Idebug         debug
 #define Idefgv         defgv
 #define Idefoutgv      defoutgv
 #define Idefstash      defstash
 #define Idirty         dirty
 #define Idlevel                dlevel
 #define Idlmax         dlmax
-#define Ido_undump     do_undump
 #define Idoextract     doextract
 #define Idoswitches    doswitches
 #define Idowarn                dowarn
 #define Ileftgv                leftgv
 #define Ilineary       lineary
 #define Ilocalizing    localizing
+#define Ilocalpatches  localpatches
 #define Imain_cv       main_cv
 #define Imain_root     main_root
 #define Imain_start    main_start
 #define Iorigfilename  origfilename
 #define Iors           ors
 #define Iorslen                orslen
-#define Ipad           pad
-#define Ipadname       padname
 #define Iparsehook     parsehook
 #define Ipatchlevel    patchlevel
 #define Iperldb                perldb
 #define Isortstack     sortstack
 #define Isortstash     sortstash
 #define Isplitstr      splitstr
-#define Istack         stack
 #define Istatcache     statcache
 #define Istatgv                statgv
 #define Istatname      statname
 #define Istatusvalue   statusvalue
 #define Istdingv       stdingv
 #define Istrchop       strchop
+#define Istrtab                strtab
 #define Isv_count      sv_count
 #define Isv_objcount   sv_objcount
 #define Isv_root       sv_root