[asperl] integrate mainline changes
Gurusamy Sarathy [Wed, 8 Apr 1998 00:14:13 +0000 (00:14 +0000)]
p4raw-id: //depot/asperl@884

47 files changed:
1  2 
EXTERN.h
MANIFEST
ObjXSub.h
embed.h
embedvar.h
global.sym
gv.c
hv.c
installperl
interp.sym
intrpvar.h
lib/ExtUtils/MM_Unix.pm
lib/ExtUtils/Mksymlists.pm
mg.c
objpp.h
op.c
perl.c
perl.h
perldir.h
perllio.h
perlsock.h
perly.c
pp.c
pp.h
pp_ctl.c
pp_hot.c
pp_sys.c
proto.h
regcomp.c
regexec.c
scope.c
sv.c
toke.c
util.c
vms/vms.c
win32/Makefile
win32/config.bc
win32/config.gc
win32/config.vc
win32/config_H.bc
win32/config_H.gc
win32/config_H.vc
win32/makefile.mk
win32/win32.c
win32/win32.h
win32/win32sck.c
x2p/util.c

diff --cc EXTERN.h
+++ b/EXTERN.h
@@@ -23,7 -27,7 +27,7 @@@
  #  define EXTCONST globalref
  #  define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
  #else
- #  if defined(WIN32) && !defined(__GNUC__) && !defined(PERL_OBJECT)
 -#  if defined(WIN32) && !defined(PERL_STATIC_SYMS) && !defined(__GNUC__)
++#  if defined(WIN32) && !defined(PERL_STATIC_SYMS) && !defined(__GNUC__) && !defined(PERL_OBJECT)
  #    ifdef PERLDLL
  #      define EXT extern __declspec(dllexport)
  #      define dEXT 
diff --cc MANIFEST
Simple merge
diff --cc ObjXSub.h
index dca17e5,0000000..08446c8
mode 100644,000000..100644
--- /dev/null
+++ b/ObjXSub.h
@@@ -1,1981 -1,0 +1,1977 @@@
 +#ifndef __ObjXSub_h__
 +#define __ObjXSub_h__
 +
 +
 +/* Varibles */ 
 +#undef  Argv
 +#define Argv                  pPerl->Perl_Argv
 +#undef  Cmd
 +#define Cmd                   pPerl->Perl_Cmd
 +#undef  DBcv
 +#define DBcv                  pPerl->Perl_DBcv
 +#undef  DBgv
 +#define DBgv                  pPerl->Perl_DBgv
 +#undef  DBline
 +#define DBline                        pPerl->Perl_DBline
 +#undef  DBsignal
 +#define DBsignal              pPerl->Perl_DBsignal
 +#undef  DBsingle
 +#define DBsingle              pPerl->Perl_DBsingle
 +#undef  DBsub
 +#define DBsub                 pPerl->Perl_DBsub
 +#undef  DBtrace
 +#define DBtrace                       pPerl->Perl_DBtrace
 +#undef  No
 +#define No                    pPerl->Perl_No
 +#undef  Sv
 +#define Sv                    pPerl->Perl_Sv
 +#undef  Xpv
 +#define Xpv                   pPerl->Perl_Xpv
 +#undef  Yes
 +#define Yes                   pPerl->Perl_Yes
 +#undef  amagic_generation
 +#define amagic_generation     pPerl->Perl_amagic_generation
 +#undef  ampergv
 +#define ampergv                       pPerl->Perl_ampergv
 +#undef  an
 +#define an                    pPerl->Perl_an
 +#undef  archpat_auto
 +#define archpat_auto          pPerl->Perl_archpat_auto
 +#undef  argvgv
 +#define argvgv                        pPerl->Perl_argvgv
 +#undef  argvoutgv
 +#define argvoutgv             pPerl->Perl_argvoutgv
 +#undef  basetime
 +#define basetime              pPerl->Perl_basetime
 +#undef  beginav
 +#define beginav                       pPerl->Perl_beginav
 +#undef  bodytarget
 +#define bodytarget            pPerl->Perl_bodytarget
 +#undef  bostr
 +#define bostr                 pPerl->Perl_bostr
 +#undef  bufend
 +#define bufend                        pPerl->Perl_bufend
 +#undef  bufptr
 +#define bufptr                        pPerl->Perl_bufptr
 +#undef  cddir
 +#define cddir                 pPerl->Perl_cddir
 +#undef  chopset
 +#define chopset                       pPerl->Perl_chopset
 +#undef  collation_ix
 +#define collation_ix          pPerl->Perl_collation_ix
 +#undef  collation_name
 +#define collation_name                pPerl->Perl_collation_name
 +#undef  collation_standard
 +#define collation_standard    pPerl->Perl_collation_standard
 +#undef  collxfrm_base
 +#define collxfrm_base         pPerl->Perl_collxfrm_base
 +#undef  collxfrm_mult
 +#define collxfrm_mult         pPerl->Perl_collxfrm_mult
 +#undef  colors
 +#define colors                        pPerl->Perl_colors
 +#undef  colorset
 +#define colorset              pPerl->Perl_colorset
 +#undef  compcv
 +#define compcv                        pPerl->Perl_compcv
 +#undef  compiling
 +#define compiling             pPerl->Perl_compiling
 +#undef  comppad
 +#define comppad                       pPerl->Perl_comppad
 +#undef  comppad_name
 +#define comppad_name          pPerl->Perl_comppad_name
 +#undef  comppad_name_fill
 +#define comppad_name_fill     pPerl->Perl_comppad_name_fill
 +#undef  comppad_name_floor
 +#define comppad_name_floor    pPerl->Perl_comppad_name_floor
 +#undef  cop_seqmax
 +#define cop_seqmax            pPerl->Perl_cop_seqmax
 +#undef  copline
 +#define copline                       pPerl->Perl_copline
 +#undef  cryptseen
 +#define cryptseen             pPerl->Perl_cryptseen
 +#undef  cshlen
 +#define cshlen                        pPerl->Perl_cshlen
 +#undef  cshname
 +#define cshname                       pPerl->Perl_cshname
 +#undef  curcop
 +#define curcop                        pPerl->Perl_curcop
 +#undef  curcopdb
 +#define curcopdb              pPerl->Perl_curcopdb
 +#undef  curinterp
 +#define curinterp             pPerl->Perl_curinterp
 +#undef  curpad
 +#define curpad                        pPerl->Perl_curpad
 +#undef  curpm
 +#define curpm                 pPerl->Perl_curpm
 +#undef  curstack
 +#define curstack              pPerl->Perl_curstack
++#undef  curstackinfo
++#define curstackinfo          pPerl->Perl_curstackinfo
 +#undef  curstash
 +#define curstash              pPerl->Perl_curstash
 +#undef  curstname
 +#define curstname             pPerl->Perl_curstname
 +#undef  curthr
 +#define curthr                        pPerl->Perl_curthr
- #undef  cxstack
- #define cxstack                       pPerl->Perl_cxstack
- #undef  cxstack_ix
- #define cxstack_ix            pPerl->Perl_cxstack_ix
- #undef  cxstack_max
- #define cxstack_max           pPerl->Perl_cxstack_max
 +#undef  dbargs
 +#define dbargs                        pPerl->Perl_dbargs
 +#undef  debdelim
 +#define debdelim              pPerl->Perl_debdelim
 +#undef  debname
 +#define debname                       pPerl->Perl_debname
 +#undef  debstash
 +#define debstash              pPerl->Perl_debstash
 +#undef  debug
 +#define debug                 pPerl->Perl_debug
 +#undef  defgv
 +#define defgv                 pPerl->Perl_defgv
 +#undef  defoutgv
 +#define defoutgv              pPerl->Perl_defoutgv
 +#undef  defstash
 +#define defstash              pPerl->Perl_defstash
 +#undef  delaymagic
 +#define delaymagic            pPerl->Perl_delaymagic
 +#undef  diehook
 +#define diehook                       pPerl->Perl_diehook
 +#undef  dirty
 +#define dirty                 pPerl->Perl_dirty
 +#undef  dlevel
 +#define dlevel                        pPerl->Perl_dlevel
 +#undef  dlmax
 +#define dlmax                 pPerl->Perl_dlmax
 +#undef  do_undump
 +#define do_undump             pPerl->Perl_do_undump
 +#undef  doextract
 +#define doextract             pPerl->Perl_doextract
 +#undef  doswitches
 +#define doswitches            pPerl->Perl_doswitches
 +#undef  dowarn
 +#define dowarn                        pPerl->Perl_dowarn
 +#undef  dumplvl
 +#define dumplvl                       pPerl->Perl_dumplvl
 +#undef  e_fp
 +#define e_fp                  pPerl->Perl_e_fp
 +#undef  e_tmpname
 +#define e_tmpname             pPerl->Perl_e_tmpname
 +#undef  egid
 +#define egid                  pPerl->Perl_egid
 +#undef  endav
 +#define endav                 pPerl->Perl_endav
 +#undef  envgv
 +#define envgv                 pPerl->Perl_envgv
 +#undef  errgv
 +#define errgv                 pPerl->Perl_errgv
 +#undef  error_count
 +#define error_count           pPerl->Perl_error_count
 +#undef  euid
 +#define euid                  pPerl->Perl_euid
 +#undef  eval_cond
 +#define eval_cond             pPerl->Perl_eval_cond
 +#undef  eval_mutex
 +#define eval_mutex            pPerl->Perl_eval_mutex
 +#undef  eval_owner
 +#define eval_owner            pPerl->Perl_eval_owner
 +#undef  eval_root
 +#define eval_root             pPerl->Perl_eval_root
 +#undef  eval_start
 +#define eval_start            pPerl->Perl_eval_start
 +#undef  evalseq
 +#define evalseq                       pPerl->Perl_evalseq
 +#undef  expect
 +#define expect                        pPerl->Perl_expect
 +#undef  extralen
 +#define extralen              pPerl->Perl_extralen
 +#undef  fdpid
 +#define fdpid                 pPerl->Perl_fdpid
 +#undef  filemode
 +#define filemode              pPerl->Perl_filemode
 +#undef  firstgv
 +#define firstgv                       pPerl->Perl_firstgv
 +#undef  forkprocess
 +#define forkprocess           pPerl->Perl_forkprocess
 +#undef  formfeed
 +#define formfeed              pPerl->Perl_formfeed
 +#undef  formtarget
 +#define formtarget            pPerl->Perl_formtarget
 +#undef  generation
 +#define generation            pPerl->Perl_generation
 +#undef  gensym
 +#define gensym                        pPerl->Perl_gensym
 +#undef  gid
 +#define gid                   pPerl->Perl_gid
 +#undef  globalstash
 +#define globalstash           pPerl->Perl_globalstash
 +#undef  he_root
 +#define he_root                       pPerl->Perl_he_root
 +#undef  hexdigit
 +#define hexdigit              pPerl->Perl_hexdigit
 +#undef  hints
 +#define hints                 pPerl->Perl_hints
 +#undef  in_clean_all
 +#define in_clean_all          pPerl->Perl_in_clean_all
 +#undef  in_clean_objs
 +#define in_clean_objs         pPerl->Perl_in_clean_objs
 +#undef  in_eval
 +#define in_eval                       pPerl->Perl_in_eval
 +#undef  in_my
 +#define in_my                 pPerl->Perl_in_my
 +#undef  in_my_stash
 +#define in_my_stash           pPerl->Perl_in_my_stash
 +#undef  incgv
 +#define incgv                 pPerl->Perl_incgv
 +#undef  initav
 +#define initav                        pPerl->Perl_initav
 +#undef  inplace
 +#define inplace                       pPerl->Perl_inplace
 +#undef  last_in_gv
 +#define last_in_gv            pPerl->Perl_last_in_gv
 +#undef  last_lop
 +#define last_lop              pPerl->Perl_last_lop
 +#undef  last_lop_op
 +#define last_lop_op           pPerl->Perl_last_lop_op
 +#undef  last_uni
 +#define last_uni              pPerl->Perl_last_uni
 +#undef  lastfd
 +#define lastfd                        pPerl->Perl_lastfd
 +#undef  lastgotoprobe
 +#define lastgotoprobe         pPerl->Perl_lastgotoprobe
 +#undef  lastscream
 +#define lastscream            pPerl->Perl_lastscream
 +#undef  lastsize
 +#define lastsize              pPerl->Perl_lastsize
 +#undef  lastspbase
 +#define lastspbase            pPerl->Perl_lastspbase
 +#undef  laststatval
 +#define laststatval           pPerl->Perl_laststatval
 +#undef  laststype
 +#define laststype             pPerl->Perl_laststype
 +#undef  leftgv
 +#define leftgv                        pPerl->Perl_leftgv
 +#undef  lex_brackets
 +#define lex_brackets          pPerl->Perl_lex_brackets
 +#undef  lex_brackstack
 +#define lex_brackstack                pPerl->Perl_lex_brackstack
 +#undef  lex_casemods
 +#define lex_casemods          pPerl->Perl_lex_casemods
 +#undef  lex_casestack
 +#define lex_casestack         pPerl->Perl_lex_casestack
 +#undef  lex_defer
 +#define lex_defer             pPerl->Perl_lex_defer
 +#undef  lex_dojoin
 +#define lex_dojoin            pPerl->Perl_lex_dojoin
 +#undef  lex_expect
 +#define lex_expect            pPerl->Perl_lex_expect
 +#undef  lex_fakebrack
 +#define lex_fakebrack         pPerl->Perl_lex_fakebrack
 +#undef  lex_formbrack
 +#define lex_formbrack         pPerl->Perl_lex_formbrack
 +#undef  lex_inpat
 +#define lex_inpat             pPerl->Perl_lex_inpat
 +#undef  lex_inwhat
 +#define lex_inwhat            pPerl->Perl_lex_inwhat
 +#undef  lex_op
 +#define lex_op                        pPerl->Perl_lex_op
 +#undef  lex_repl
 +#define lex_repl              pPerl->Perl_lex_repl
 +#undef  lex_starts
 +#define lex_starts            pPerl->Perl_lex_starts
 +#undef  lex_state
 +#define lex_state             pPerl->Perl_lex_state
 +#undef  lex_stuff
 +#define lex_stuff             pPerl->Perl_lex_stuff
 +#undef  lineary
 +#define lineary                       pPerl->Perl_lineary
 +#undef  linestart
 +#define linestart             pPerl->Perl_linestart
 +#undef  linestr
 +#define linestr                       pPerl->Perl_linestr
 +#undef  localizing
 +#define localizing            pPerl->Perl_localizing
 +#undef  localpatches
 +#define localpatches          pPerl->Perl_localpatches
 +#undef  main_cv
 +#define main_cv                       pPerl->Perl_main_cv
 +#undef  main_root
 +#define main_root             pPerl->Perl_main_root
 +#undef  main_start
 +#define main_start            pPerl->Perl_main_start
 +#undef  mainstack
 +#define mainstack             pPerl->Perl_mainstack
 +#undef  malloc_mutex
 +#define malloc_mutex          pPerl->Perl_malloc_mutex
 +#undef  markstack
 +#define markstack             pPerl->Perl_markstack
 +#undef  markstack_max
 +#define markstack_max         pPerl->Perl_markstack_max
 +#undef  markstack_ptr
 +#define markstack_ptr         pPerl->Perl_markstack_ptr
 +#undef  max_intro_pending
 +#define max_intro_pending     pPerl->Perl_max_intro_pending
 +#undef  maxo
 +#define maxo                  pPerl->Perl_maxo
 +#undef  maxscream
 +#define maxscream             pPerl->Perl_maxscream
 +#undef  maxsysfd
 +#define maxsysfd              pPerl->Perl_maxsysfd
 +#undef  mess_sv
 +#define mess_sv                       pPerl->Perl_mess_sv
 +#undef  mh
 +#define mh                    pPerl->Perl_mh
 +#undef  min_intro_pending
 +#define min_intro_pending     pPerl->Perl_min_intro_pending
 +#undef  minus_F
 +#define minus_F                       pPerl->Perl_minus_F
 +#undef  minus_a
 +#define minus_a                       pPerl->Perl_minus_a
 +#undef  minus_c
 +#define minus_c                       pPerl->Perl_minus_c
 +#undef  minus_l
 +#define minus_l                       pPerl->Perl_minus_l
 +#undef  minus_n
 +#define minus_n                       pPerl->Perl_minus_n
 +#undef  minus_p
 +#define minus_p                       pPerl->Perl_minus_p
 +#undef  modcount
 +#define modcount              pPerl->Perl_modcount
 +#undef  multi_close
 +#define multi_close           pPerl->Perl_multi_close
 +#undef  multi_end
 +#define multi_end             pPerl->Perl_multi_end
 +#undef  multi_open
 +#define multi_open            pPerl->Perl_multi_open
 +#undef  multi_start
 +#define multi_start           pPerl->Perl_multi_start
 +#undef  multiline
 +#define multiline             pPerl->Perl_multiline
 +#undef  mystrk
 +#define mystrk                        pPerl->Perl_mystrk
 +#undef  na
 +#define na                    pPerl->Perl_na
 +#undef  nexttoke
 +#define nexttoke              pPerl->Perl_nexttoke
 +#undef  nexttype
 +#define nexttype              pPerl->Perl_nexttype
 +#undef  nextval
 +#define nextval                       pPerl->Perl_nextval
 +#undef  nice_chunk
 +#define nice_chunk            pPerl->Perl_nice_chunk
 +#undef  nice_chunk_size
 +#define nice_chunk_size               pPerl->Perl_nice_chunk_size
 +#undef  nomemok
 +#define nomemok                       pPerl->Perl_nomemok
 +#undef  nrs
 +#define nrs                   pPerl->Perl_nrs
 +#undef  nthreads
 +#define nthreads              pPerl->Perl_nthreads
 +#undef  nthreads_cond
 +#define nthreads_cond         pPerl->Perl_nthreads_cond
 +#undef  numeric_local
 +#define numeric_local         pPerl->Perl_numeric_local
 +#undef  numeric_name
 +#define numeric_name          pPerl->Perl_numeric_name
 +#undef  numeric_standard
 +#define numeric_standard      pPerl->Perl_numeric_standard
 +#undef  ofmt
 +#define ofmt                  pPerl->Perl_ofmt
 +#undef  ofs
 +#define ofs                   pPerl->Perl_ofs
 +#undef  ofslen
 +#define ofslen                        pPerl->Perl_ofslen
 +#undef  oldbufptr
 +#define oldbufptr             pPerl->Perl_oldbufptr
 +#undef  oldlastpm
 +#define oldlastpm             pPerl->Perl_oldlastpm
 +#undef  oldname
 +#define oldname                       pPerl->Perl_oldname
 +#undef  oldoldbufptr
 +#define oldoldbufptr          pPerl->Perl_oldoldbufptr
 +#undef  op
 +#define op                    pPerl->Perl_op
 +#undef  op_mask
 +#define op_mask                       pPerl->Perl_op_mask
 +#undef  op_seqmax
 +#define op_seqmax             pPerl->Perl_op_seqmax
 +#undef  opsave
 +#define opsave                        pPerl->Perl_opsave
 +#undef  origalen
 +#define origalen              pPerl->Perl_origalen
 +#undef  origargc
 +#define origargc              pPerl->Perl_origargc
 +#undef  origargv
 +#define origargv              pPerl->Perl_origargv
 +#undef  origenviron
 +#define origenviron           pPerl->Perl_origenviron
 +#undef  origfilename
 +#define origfilename          pPerl->Perl_origfilename
 +#undef  ors
 +#define ors                   pPerl->Perl_ors
 +#undef  orslen
 +#define orslen                        pPerl->Perl_orslen
 +#undef  osname
 +#define osname                        pPerl->Perl_osname
 +#undef  pad_reset_pending
 +#define pad_reset_pending     pPerl->Perl_pad_reset_pending
 +#undef  padix
 +#define padix                 pPerl->Perl_padix
 +#undef  padix_floor
 +#define padix_floor           pPerl->Perl_padix_floor
 +#undef  parsehook
 +#define parsehook             pPerl->Perl_parsehook
 +#undef  patchlevel
 +#define patchlevel            pPerl->Perl_patchlevel
 +#undef  patleave
 +#define patleave              pPerl->Perl_patleave
 +#undef  pending_ident
 +#define pending_ident         pPerl->Perl_pending_ident
 +#undef  perl_destruct_level
 +#define perl_destruct_level   pPerl->Perl_perl_destruct_level
 +#undef  perldb
 +#define perldb                        pPerl->Perl_perldb
 +#undef  pidstatus
 +#define pidstatus             pPerl->Perl_pidstatus
 +#undef  preambleav
 +#define preambleav            pPerl->Perl_preambleav
 +#undef  preambled
 +#define preambled             pPerl->Perl_preambled
 +#undef  preprocess
 +#define preprocess            pPerl->Perl_preprocess
 +#undef  profiledata
 +#define profiledata           pPerl->Perl_profiledata
 +#undef  reg_eval_set
 +#define reg_eval_set          pPerl->Perl_reg_eval_set
 +#undef  reg_flags
 +#define reg_flags             pPerl->Perl_reg_flags
 +#undef  reg_start_tmp
 +#define reg_start_tmp         pPerl->Perl_reg_start_tmp
 +#undef  reg_start_tmpl
 +#define reg_start_tmpl                pPerl->Perl_reg_start_tmpl
 +#undef  regbol
 +#define regbol                        pPerl->Perl_regbol
 +#undef  regcc
 +#define regcc                 pPerl->Perl_regcc
 +#undef  regcode
 +#define regcode                       pPerl->Perl_regcode
 +#undef  regdata
 +#define regdata                       pPerl->Perl_regdata
 +#undef  regdummy
 +#define regdummy              pPerl->Perl_regdummy
 +#undef  regendp
 +#define regendp                       pPerl->Perl_regendp
 +#undef  regeol
 +#define regeol                        pPerl->Perl_regeol
 +#undef  regflags
 +#define regflags              pPerl->Perl_regflags
 +#undef  regindent
 +#define regindent             pPerl->Perl_regindent
 +#undef  reginput
 +#define reginput              pPerl->Perl_reginput
 +#undef  reglastparen
 +#define reglastparen          pPerl->Perl_reglastparen
 +#undef  regnarrate
 +#define regnarrate            pPerl->Perl_regnarrate
 +#undef  regnaughty
 +#define regnaughty            pPerl->Perl_regnaughty
 +#undef  regnpar
 +#define regnpar                       pPerl->Perl_regnpar
 +#undef  regparse
 +#define regparse              pPerl->Perl_regparse
 +#undef  regprecomp
 +#define regprecomp            pPerl->Perl_regprecomp
 +#undef  regprev
 +#define regprev                       pPerl->Perl_regprev
 +#undef  regprogram
 +#define regprogram            pPerl->Perl_regprogram
 +#undef  regsawback
 +#define regsawback            pPerl->Perl_regsawback
 +#undef  regseen
 +#define regseen                       pPerl->Perl_regseen
 +#undef  regsize
 +#define regsize                       pPerl->Perl_regsize
 +#undef  regstartp
 +#define regstartp             pPerl->Perl_regstartp
 +#undef  regtill
 +#define regtill                       pPerl->Perl_regtill
 +#undef  regxend
 +#define regxend                       pPerl->Perl_regxend
 +#undef  restartop
 +#define restartop             pPerl->Perl_restartop
 +#undef  retstack
 +#define retstack              pPerl->Perl_retstack
 +#undef  retstack_ix
 +#define retstack_ix           pPerl->Perl_retstack_ix
 +#undef  retstack_max
 +#define retstack_max          pPerl->Perl_retstack_max
 +#undef  rightgv
 +#define rightgv                       pPerl->Perl_rightgv
 +#undef  rs
 +#define rs                    pPerl->Perl_rs
 +#undef  rsfp
 +#define rsfp                  pPerl->Perl_rsfp
 +#undef  rsfp_filters
 +#define rsfp_filters          pPerl->Perl_rsfp_filters
 +#undef  runops
 +#define runops                        pPerl->Perl_runops
 +#undef  rx
 +#define rx                    pPerl->Perl_rx
 +#undef  savestack
 +#define savestack             pPerl->Perl_savestack
 +#undef  savestack_ix
 +#define savestack_ix          pPerl->Perl_savestack_ix
 +#undef  savestack_max
 +#define savestack_max         pPerl->Perl_savestack_max
 +#undef  sawampersand
 +#define sawampersand          pPerl->Perl_sawampersand
 +#undef  sawstudy
 +#define sawstudy              pPerl->Perl_sawstudy
 +#undef  sawvec
 +#define sawvec                        pPerl->Perl_sawvec
 +#undef  scopestack
 +#define scopestack            pPerl->Perl_scopestack
 +#undef  scopestack_ix
 +#define scopestack_ix         pPerl->Perl_scopestack_ix
 +#undef  scopestack_max
 +#define scopestack_max                pPerl->Perl_scopestack_max
 +#undef  screamfirst
 +#define screamfirst           pPerl->Perl_screamfirst
 +#undef  screamnext
 +#define screamnext            pPerl->Perl_screamnext
 +#undef  scrgv
 +#define scrgv                 pPerl->Perl_scrgv
 +#undef  secondgv
 +#define secondgv              pPerl->Perl_secondgv
 +#undef  seen_zerolen
 +#define seen_zerolen          pPerl->Perl_seen_zerolen
 +#undef  sh_path
 +#define sh_path                       pPerl->Perl_sh_path
 +#undef  siggv
 +#define siggv                 pPerl->Perl_siggv
 +#undef  sighandlerp
 +#define sighandlerp           pPerl->Perl_sighandlerp
- #undef  signalstack
- #define signalstack           pPerl->Perl_signalstack
 +#undef  sortcop
 +#define sortcop                       pPerl->Perl_sortcop
 +#undef  sortcxix
 +#define sortcxix              pPerl->Perl_sortcxix
- #undef  sortstack
- #define sortstack             pPerl->Perl_sortstack
 +#undef  sortstash
 +#define sortstash             pPerl->Perl_sortstash
 +#undef  splitstr
 +#define splitstr              pPerl->Perl_splitstr
 +#undef  stack_base
 +#define stack_base            pPerl->Perl_stack_base
 +#undef  stack_max
 +#define stack_max             pPerl->Perl_stack_max
 +#undef  stack_sp
 +#define stack_sp              pPerl->Perl_stack_sp
 +#undef  start_env
 +#define start_env             pPerl->Perl_start_env
 +#undef  statbuf
 +#define statbuf                       pPerl->Perl_statbuf
 +#undef  statcache
 +#define statcache             pPerl->Perl_statcache
 +#undef  statgv
 +#define statgv                        pPerl->Perl_statgv
 +#undef  statname
 +#define statname              pPerl->Perl_statname
 +#undef  statusvalue
 +#define statusvalue           pPerl->Perl_statusvalue
 +#undef  statusvalue_vms
 +#define statusvalue_vms               pPerl->Perl_statusvalue_vms
 +#undef  stdingv
 +#define stdingv                       pPerl->Perl_stdingv
 +#undef  strchop
 +#define strchop                       pPerl->Perl_strchop
 +#undef  strtab
 +#define strtab                        pPerl->Perl_strtab
 +#undef  sub_generation
 +#define sub_generation                pPerl->Perl_sub_generation
 +#undef  sublex_info
 +#define sublex_info           pPerl->Perl_sublex_info
 +#undef  subline
 +#define subline                       pPerl->Perl_subline
 +#undef  subname
 +#define subname                       pPerl->Perl_subname
 +#undef  sv_arenaroot
 +#define sv_arenaroot          pPerl->Perl_sv_arenaroot
 +#undef  sv_count
 +#define sv_count              pPerl->Perl_sv_count
 +#undef  sv_mutex
 +#define sv_mutex              pPerl->Perl_sv_mutex
 +#undef  sv_no
 +#define sv_no                 pPerl->Perl_sv_no
 +#undef  sv_objcount
 +#define sv_objcount           pPerl->Perl_sv_objcount
 +#undef  sv_root
 +#define sv_root                       pPerl->Perl_sv_root
 +#undef  sv_undef
 +#define sv_undef              pPerl->Perl_sv_undef
 +#undef  sv_yes
 +#define sv_yes                        pPerl->Perl_sv_yes
 +#undef  tainted
 +#define tainted                       pPerl->Perl_tainted
 +#undef  tainting
 +#define tainting              pPerl->Perl_tainting
 +#undef  thisexpr
 +#define thisexpr              pPerl->Perl_thisexpr
 +#undef  thr_key
 +#define thr_key                       pPerl->Perl_thr_key
 +#undef  threadnum
 +#define threadnum             pPerl->Perl_threadnum
 +#undef  threads_mutex
 +#define threads_mutex         pPerl->Perl_threads_mutex
 +#undef  threadsv_names
 +#define threadsv_names                pPerl->Perl_threadsv_names
 +#undef  thrsv
 +#define thrsv                 pPerl->Perl_thrsv
 +#undef  timesbuf
 +#define timesbuf              pPerl->Perl_timesbuf
 +#undef  tmps_floor
 +#define tmps_floor            pPerl->Perl_tmps_floor
 +#undef  tmps_ix
 +#define tmps_ix                       pPerl->Perl_tmps_ix
 +#undef  tmps_max
 +#define tmps_max              pPerl->Perl_tmps_max
 +#undef  tmps_stack
 +#define tmps_stack            pPerl->Perl_tmps_stack
 +#undef  tokenbuf
 +#define tokenbuf              pPerl->Perl_tokenbuf
 +#undef  top_env
 +#define top_env                       pPerl->Perl_top_env
 +#undef  toptarget
 +#define toptarget             pPerl->Perl_toptarget
 +#undef  uid
 +#define uid                   pPerl->Perl_uid
 +#undef  unsafe
 +#define unsafe                        pPerl->Perl_unsafe
 +#undef  warnhook
 +#define warnhook              pPerl->Perl_warnhook
 +#undef  xiv_arenaroot
 +#define xiv_arenaroot         pPerl->Perl_xiv_arenaroot
 +#undef  xiv_root
 +#define xiv_root              pPerl->Perl_xiv_root
 +#undef  xnv_root
 +#define xnv_root              pPerl->Perl_xnv_root
 +#undef  xpv_root
 +#define xpv_root              pPerl->Perl_xpv_root
 +#undef  xrv_root
 +#define xrv_root              pPerl->Perl_xrv_root
 +
 +/* Functions */
 +
 +#undef  amagic_call
 +#define amagic_call         pPerl->Perl_amagic_call
 +#undef  Perl_GetVars
 +#define Perl_GetVars        pPerl->Perl_GetVars
 +#undef  Gv_AMupdate
 +#define Gv_AMupdate         pPerl->Perl_Gv_AMupdate
 +#undef  append_elem
 +#define append_elem         pPerl->Perl_append_elem
 +#undef  append_list
 +#define append_list         pPerl->Perl_append_list
 +#undef  apply
 +#define apply               pPerl->Perl_apply
 +#undef  assertref
 +#define assertref           pPerl->Perl_assertref
 +#undef  av_clear
 +#define av_clear            pPerl->Perl_av_clear
 +#undef  av_extend
 +#define av_extend           pPerl->Perl_av_extend
 +#undef  av_fake
 +#define av_fake             pPerl->Perl_av_fake
 +#undef  av_fetch
 +#define av_fetch            pPerl->Perl_av_fetch
 +#undef  av_fill
 +#define av_fill             pPerl->Perl_av_fill
 +#undef  av_len
 +#define av_len              pPerl->Perl_av_len
 +#undef  av_make
 +#define av_make             pPerl->Perl_av_make
 +#undef  av_pop
 +#define av_pop              pPerl->Perl_av_pop
 +#undef  av_push
 +#define av_push             pPerl->Perl_av_push
 +#undef  av_reify
 +#define av_reify            pPerl->Perl_av_reify
 +#undef  av_shift
 +#define av_shift            pPerl->Perl_av_shift
 +#undef  av_store
 +#define av_store            pPerl->Perl_av_store
 +#undef  av_undef
 +#define av_undef            pPerl->Perl_av_undef
 +#undef  av_unshift
 +#define av_unshift          pPerl->Perl_av_unshift
 +#undef  avhv_delete
 +#define avhv_delete         pPerl->Perl_avhv_delete
 +#undef  avhv_delete_ent
 +#define avhv_delete_ent     pPerl->Perl_avhv_delete_ent
 +#undef  avhv_exists
 +#define avhv_exists         pPerl->Perl_avhv_exists
 +#undef  avhv_exists_ent
 +#define avhv_exists_ent     pPerl->Perl_avhv_exists_ent
 +#undef  avhv_fetch
 +#define avhv_fetch          pPerl->Perl_avhv_fetch
 +#undef  avhv_fetch_ent
 +#define avhv_fetch_ent      pPerl->Perl_avhv_fetch_ent
 +#undef  avhv_iterinit
 +#define avhv_iterinit       pPerl->Perl_avhv_iterinit
 +#undef  avhv_iternext
 +#define avhv_iternext       pPerl->Perl_avhv_iternext
 +#undef  avhv_iternextsv
 +#define avhv_iternextsv     pPerl->Perl_avhv_iternextsv
 +#undef  avhv_iterval
 +#define avhv_iterval        pPerl->Perl_avhv_iterval
 +#undef  avhv_keys
 +#define avhv_keys           pPerl->Perl_avhv_keys
 +#undef  avhv_store
 +#define avhv_store          pPerl->Perl_avhv_store
 +#undef  avhv_store_ent
 +#define avhv_store_ent      pPerl->Perl_avhv_store_ent
 +#undef  bind_match
 +#define bind_match          pPerl->Perl_bind_match
 +#undef  block_end
 +#define block_end           pPerl->Perl_block_end
 +#undef  block_gimme
 +#define block_gimme         pPerl->Perl_block_gimme
 +#undef  block_start
 +#define block_start         pPerl->Perl_block_start
 +#undef  call_list
 +#define call_list           pPerl->Perl_call_list
 +#undef  cando
 +#define cando               pPerl->Perl_cando
 +#undef  cast_ulong
 +#define cast_ulong          pPerl->Perl_cast_ulong
 +#undef  checkcomma
 +#define checkcomma          pPerl->Perl_checkcomma
 +#undef  check_uni
 +#define check_uni           pPerl->Perl_check_uni
 +#undef  ck_concat
 +#define ck_concat           pPerl->Perl_ck_concat
 +#undef  ck_delete
 +#define ck_delete           pPerl->Perl_ck_delete
 +#undef  ck_eof
 +#define ck_eof              pPerl->Perl_ck_eof
 +#undef  ck_eval
 +#define ck_eval             pPerl->Perl_ck_eval
 +#undef  ck_exec
 +#define ck_exec             pPerl->Perl_ck_exec
 +#undef  ck_formline
 +#define ck_formline         pPerl->Perl_ck_formline
 +#undef  ck_ftst
 +#define ck_ftst             pPerl->Perl_ck_ftst
 +#undef  ck_fun
 +#define ck_fun              pPerl->Perl_ck_fun
 +#undef  ck_glob
 +#define ck_glob             pPerl->Perl_ck_glob
 +#undef  ck_grep
 +#define ck_grep             pPerl->Perl_ck_grep
 +#undef  ck_gvconst
 +#define ck_gvconst          pPerl->Perl_ck_gvconst
 +#undef  ck_index
 +#define ck_index            pPerl->Perl_ck_index
 +#undef  ck_lengthconst
 +#define ck_lengthconst      pPerl->Perl_ck_lengthconst
 +#undef  ck_lfun
 +#define ck_lfun             pPerl->Perl_ck_lfun
 +#undef  ck_listiob
 +#define ck_listiob          pPerl->Perl_ck_listiob
 +#undef  ck_match
 +#define ck_match            pPerl->Perl_ck_match
 +#undef  ck_null
 +#define ck_null             pPerl->Perl_ck_null
 +#undef  ck_repeat
 +#define ck_repeat           pPerl->Perl_ck_repeat
 +#undef  ck_require
 +#define ck_require          pPerl->Perl_ck_require
 +#undef  ck_retarget
 +#define ck_retarget         pPerl->Perl_ck_retarget
 +#undef  ck_rfun
 +#define ck_rfun             pPerl->Perl_ck_rfun
 +#undef  ck_rvconst
 +#define ck_rvconst          pPerl->Perl_ck_rvconst
 +#undef  ck_select
 +#define ck_select           pPerl->Perl_ck_select
 +#undef  ck_shift
 +#define ck_shift            pPerl->Perl_ck_shift
 +#undef  ck_sort
 +#define ck_sort             pPerl->Perl_ck_sort
 +#undef  ck_spair
 +#define ck_spair            pPerl->Perl_ck_spair
 +#undef  ck_split
 +#define ck_split            pPerl->Perl_ck_split
 +#undef  ck_subr
 +#define ck_subr             pPerl->Perl_ck_subr
 +#undef  ck_svconst
 +#define ck_svconst          pPerl->Perl_ck_svconst
 +#undef  ck_trunc
 +#define ck_trunc            pPerl->Perl_ck_trunc
 +#undef  condpair_magic
 +#define condpair_magic      pPerl->Perl_condpair_magic
 +#undef  convert
 +#define convert             pPerl->Perl_convert
 +#undef  cpytill
 +#define cpytill             pPerl->Perl_cpytill
 +#undef  croak
 +#define croak               pPerl->Perl_croak
 +#undef  cv_ckproto
 +#define cv_ckproto          pPerl->Perl_cv_ckproto
 +#undef  cv_clone
 +#define cv_clone            pPerl->Perl_cv_clone
 +#undef  cv_const_sv
 +#define cv_const_sv         pPerl->Perl_cv_const_sv
 +#undef  cv_undef
 +#define cv_undef            pPerl->Perl_cv_undef
 +#undef  cxinc
 +#define cxinc               pPerl->Perl_cxinc
 +#undef  deb
 +#define deb                 pPerl->Perl_deb
 +#undef  delimcpy
 +#define delimcpy            pPerl->Perl_delimcpy
 +#undef  deprecate
 +#define deprecate           pPerl->Perl_deprecate
 +#undef  die
 +#define die                 pPerl->Perl_die
 +#undef  die_where
 +#define die_where           pPerl->Perl_die_where
 +#undef  dopoptoeval
 +#define dopoptoeval         pPerl->Perl_dopoptoeval
 +#undef  dounwind
 +#define dounwind            pPerl->Perl_dounwind
 +#undef  do_aexec
 +#define do_aexec            pPerl->Perl_do_aexec
 +#undef  do_chomp
 +#define do_chomp            pPerl->Perl_do_chomp
 +#undef  do_chop
 +#define do_chop             pPerl->Perl_do_chop
 +#undef  do_close
 +#define do_close            pPerl->Perl_do_close
 +#undef  do_eof
 +#define do_eof              pPerl->Perl_do_eof
 +#undef  do_exec
 +#define do_exec             pPerl->Perl_do_exec
 +#undef  do_execfree
 +#define do_execfree         pPerl->Perl_do_execfree
 +#undef  do_join
 +#define do_join             pPerl->Perl_do_join
 +#undef  do_kv
 +#define do_kv               pPerl->Perl_do_kv
 +#undef  do_open
 +#define do_open             pPerl->Perl_do_open
 +#undef  do_pipe
 +#define do_pipe             pPerl->Perl_do_pipe
 +#undef  do_print
 +#define do_print            pPerl->Perl_do_print
 +#undef  do_readline
 +#define do_readline         pPerl->Perl_do_readline
 +#undef  do_seek
 +#define do_seek             pPerl->Perl_do_seek
 +#undef  do_sprintf
 +#define do_sprintf          pPerl->Perl_do_sprintf
 +#undef  do_sysseek
 +#define do_sysseek          pPerl->Perl_do_sysseek
 +#undef  do_tell
 +#define do_tell             pPerl->Perl_do_tell
 +#undef  do_trans
 +#define do_trans            pPerl->Perl_do_trans
 +#undef  do_vecset
 +#define do_vecset           pPerl->Perl_do_vecset
 +#undef  do_vop
 +#define do_vop              pPerl->Perl_do_vop
 +#undef  dowantarray
 +#define dowantarray         pPerl->Perl_dowantarray
 +#undef  dump_all
 +#define dump_all            pPerl->Perl_dump_all
 +#undef  fbm_compile
 +#define fbm_compile         pPerl->Perl_fbm_compile
 +#undef  fbm_instr
 +#define fbm_instr           pPerl->Perl_fbm_instr
 +#undef  filter_add
 +#define filter_add          pPerl->Perl_filter_add
 +#undef  filter_del
 +#define filter_del          pPerl->Perl_filter_del
 +#undef  filter_read
 +#define filter_read         pPerl->Perl_filter_read
 +#undef  find_threadsv
 +#define find_threadsv       pPerl->Perl_find_threadsv
 +#undef  force_ident
 +#define force_ident         pPerl->Perl_force_ident
 +#undef  force_list
 +#define force_list          pPerl->Perl_force_list
 +#undef  force_next
 +#define force_next          pPerl->Perl_force_next
 +#undef  force_word
 +#define force_word          pPerl->Perl_force_word
 +#undef  form
 +#define form                pPerl->Perl_form
 +#undef  fold_constants
 +#define fold_constants      pPerl->Perl_fold_constants
 +#undef  fprintf
 +#define fprintf             pPerl->fprintf
 +#undef  free_tmps
 +#define free_tmps           pPerl->Perl_free_tmps
 +#undef  gen_constant_list
 +#define gen_constant_list   pPerl->Perl_gen_constant_list
 +#undef  get_op_descs
 +#define get_op_descs        pPerl->Perl_get_op_descs
 +#undef  get_op_names
 +#define get_op_names        pPerl->Perl_get_op_names
 +#undef  gp_free
 +#define gp_free             pPerl->Perl_gp_free
 +#undef  gp_ref
 +#define gp_ref              pPerl->Perl_gp_ref
 +#undef  gv_AVadd
 +#define gv_AVadd            pPerl->Perl_gv_AVadd
 +#undef  gv_HVadd
 +#define gv_HVadd            pPerl->Perl_gv_HVadd
 +#undef  gv_IOadd
 +#define gv_IOadd            pPerl->Perl_gv_IOadd
 +#undef  gv_autoload4
 +#define gv_autoload4        pPerl->Perl_gv_autoload4
 +#undef  gv_check
 +#define gv_check            pPerl->Perl_gv_check
 +#undef  gv_efullname
 +#define gv_efullname        pPerl->Perl_gv_efullname
 +#undef  gv_efullname3
 +#define gv_efullname3       pPerl->Perl_gv_efullname3
 +#undef  gv_fetchfile
 +#define gv_fetchfile        pPerl->Perl_gv_fetchfile
 +#undef  gv_fetchmeth
 +#define gv_fetchmeth        pPerl->Perl_gv_fetchmeth
 +#undef  gv_fetchmethod
 +#define gv_fetchmethod      pPerl->Perl_gv_fetchmethod
 +#undef  gv_fetchmethod_autoload
 +#define gv_fetchmethod_autoload pPerl->Perl_gv_fetchmethod_autoload
 +#undef  gv_fetchpv
 +#define gv_fetchpv          pPerl->Perl_gv_fetchpv
 +#undef  gv_fullname
 +#define gv_fullname         pPerl->Perl_gv_fullname
 +#undef  gv_fullname3
 +#define gv_fullname3        pPerl->Perl_gv_fullname3
 +#undef  gv_init
 +#define gv_init             pPerl->Perl_gv_init
 +#undef  gv_stashpv
 +#define gv_stashpv          pPerl->Perl_gv_stashpv
 +#undef  gv_stashpvn
 +#define gv_stashpvn         pPerl->Perl_gv_stashpvn
 +#undef  gv_stashsv
 +#define gv_stashsv          pPerl->Perl_gv_stashsv
 +#undef  he_delayfree
 +#define he_delayfree        pPerl->Perl_he_delayfree
 +#undef  he_free
 +#define he_free             pPerl->Perl_he_free
 +#undef  hoistmust
 +#define hoistmust           pPerl->Perl_hoistmust
 +#undef  hv_clear
 +#define hv_clear            pPerl->Perl_hv_clear
 +#undef  hv_delayfree_ent
 +#define hv_delayfree_ent    pPerl->Perl_hv_delayfree_ent
 +#undef  hv_delete
 +#define hv_delete           pPerl->Perl_hv_delete
 +#undef  hv_delete_ent
 +#define hv_delete_ent       pPerl->Perl_hv_delete_ent
 +#undef  hv_exists
 +#define hv_exists           pPerl->Perl_hv_exists
 +#undef  hv_exists_ent
 +#define hv_exists_ent       pPerl->Perl_hv_exists_ent
 +#undef  hv_fetch
 +#define hv_fetch            pPerl->Perl_hv_fetch
 +#undef  hv_fetch_ent
 +#define hv_fetch_ent        pPerl->Perl_hv_fetch_ent
 +#undef  hv_free_ent
 +#define hv_free_ent         pPerl->Perl_hv_free_ent
 +#undef  hv_iterinit
 +#define hv_iterinit         pPerl->Perl_hv_iterinit
 +#undef  hv_iterkey
 +#define hv_iterkey          pPerl->Perl_hv_iterkey
 +#undef  hv_iterkeysv
 +#define hv_iterkeysv        pPerl->Perl_hv_iterkeysv
 +#undef  hv_iternext
 +#define hv_iternext         pPerl->Perl_hv_iternext
 +#undef  hv_iternextsv
 +#define hv_iternextsv       pPerl->Perl_hv_iternextsv
 +#undef  hv_iterval
 +#define hv_iterval          pPerl->Perl_hv_iterval
 +#undef  hv_ksplit
 +#define hv_ksplit           pPerl->Perl_hv_ksplit
 +#undef  hv_magic
 +#define hv_magic            pPerl->Perl_hv_magic
 +#undef  hv_store
 +#define hv_store            pPerl->Perl_hv_store
 +#undef  hv_store_ent
 +#define hv_store_ent        pPerl->Perl_hv_store_ent
 +#undef  hv_undef
 +#define hv_undef            pPerl->Perl_hv_undef
 +#undef  ibcmp
 +#define ibcmp               pPerl->Perl_ibcmp
 +#undef  ibcmp_locale
 +#define ibcmp_locale        pPerl->Perl_ibcmp_locale
 +#undef  incpush
 +#define incpush             pPerl->incpush
 +#undef  incline
 +#define incline             pPerl->incline
 +#undef  incl_perldb
 +#define incl_perldb         pPerl->incl_perldb
 +#undef  ingroup
 +#define ingroup             pPerl->Perl_ingroup
 +#undef  init_stacks
 +#define init_stacks         pPerl->Perl_init_stacks
 +#undef  instr
 +#define instr               pPerl->Perl_instr
 +#undef  intro_my
 +#define intro_my            pPerl->Perl_intro_my
 +#undef  intuit_method
 +#define intuit_method       pPerl->intuit_method
 +#undef  intuit_more
 +#define intuit_more         pPerl->Perl_intuit_more
 +#undef  invert
 +#define invert              pPerl->Perl_invert
 +#undef  io_close
 +#define io_close            pPerl->Perl_io_close
 +#undef  ioctl
 +#define ioctl               pPerl->ioctl
 +#undef  jmaybe
 +#define jmaybe              pPerl->Perl_jmaybe
 +#undef  keyword
 +#define keyword             pPerl->Perl_keyword
 +#undef  leave_scope
 +#define leave_scope         pPerl->Perl_leave_scope
 +#undef  lex_end
 +#define lex_end             pPerl->Perl_lex_end
 +#undef  lex_start
 +#define lex_start           pPerl->Perl_lex_start
 +#undef  linklist
 +#define linklist            pPerl->Perl_linklist
 +#undef  list
 +#define list                pPerl->Perl_list
 +#undef  listkids
 +#define listkids            pPerl->Perl_listkids
 +#undef  lop
 +#define lop                 pPerl->lop
 +#undef  localize
 +#define localize            pPerl->Perl_localize
 +#undef  looks_like_number
 +#define looks_like_number   pPerl->Perl_looks_like_number
 +#undef  magic_clear_all_env
 +#define magic_clear_all_env pPerl->Perl_magic_clear_all_env
 +#undef  magic_clearenv
 +#define magic_clearenv      pPerl->Perl_magic_clearenv
 +#undef  magic_clearpack
 +#define magic_clearpack     pPerl->Perl_magic_clearpack
 +#undef  magic_clearsig
 +#define magic_clearsig      pPerl->Perl_magic_clearsig
 +#undef  magic_existspack
 +#define magic_existspack    pPerl->Perl_magic_existspack
 +#undef  magic_freedefelem
 +#define magic_freedefelem   pPerl->Perl_magic_freedefelem
 +#undef  magic_freeregexp
 +#define magic_freeregexp    pPerl->Perl_magic_freeregexp
 +#undef  magic_get
 +#define magic_get           pPerl->Perl_magic_get
 +#undef  magic_getarylen
 +#define magic_getarylen     pPerl->Perl_magic_getarylen
 +#undef  magic_getdefelem
 +#define magic_getdefelem    pPerl->Perl_magic_getdefelem
 +#undef  magic_getpack
 +#define magic_getpack       pPerl->Perl_magic_getpack
 +#undef  magic_getglob
 +#define magic_getglob       pPerl->Perl_magic_getglob
 +#undef  magic_getpos
 +#define magic_getpos        pPerl->Perl_magic_getpos
 +#undef  magic_getsig
 +#define magic_getsig        pPerl->Perl_magic_getsig
 +#undef  magic_gettaint
 +#define magic_gettaint      pPerl->Perl_magic_gettaint
 +#undef  magic_getuvar
 +#define magic_getuvar       pPerl->Perl_magic_getuvar
 +#undef  magic_len
 +#define magic_len           pPerl->Perl_magic_len
 +#undef  magic_methpack
 +#define magic_methpack      pPerl->magic_methpack
 +#undef  magic_mutexfree
 +#define magic_mutexfree     pPerl->Perl_magic_mutexfree
 +#undef  magic_nextpack
 +#define magic_nextpack      pPerl->Perl_magic_nextpack
 +#undef  magic_set
 +#define magic_set           pPerl->Perl_magic_set
 +#undef  magic_set_all_env
 +#define magic_set_all_env   pPerl->Perl_magic_set_all_env
 +#undef  magic_setamagic
 +#define magic_setamagic     pPerl->Perl_magic_setamagic
 +#undef  magic_setarylen
 +#define magic_setarylen     pPerl->Perl_magic_setarylen
 +#undef  magic_setbm
 +#define magic_setbm         pPerl->Perl_magic_setbm
 +#undef  magic_setcollxfrm
 +#define magic_setcollxfrm   pPerl->Perl_magic_setcollxfrm
 +#undef  magic_setdbline
 +#define magic_setdbline     pPerl->Perl_magic_setdbline
 +#undef  magic_setdefelem
 +#define magic_setdefelem    pPerl->Perl_magic_setdefelem
 +#undef  magic_setenv
 +#define magic_setenv        pPerl->Perl_magic_setenv
 +#undef  magic_setfm
 +#define magic_setfm         pPerl->Perl_magic_setfm
 +#undef  magic_setisa
 +#define magic_setisa        pPerl->Perl_magic_setisa
 +#undef  magic_setglob
 +#define magic_setglob       pPerl->Perl_magic_setglob
 +#undef  magic_setmglob
 +#define magic_setmglob      pPerl->Perl_magic_setmglob
 +#undef  magic_setnkeys
 +#define magic_setnkeys      pPerl->Perl_magic_setnkeys
 +#undef  magic_setpack
 +#define magic_setpack       pPerl->Perl_magic_setpack
 +#undef  magic_setpos
 +#define magic_setpos        pPerl->Perl_magic_setpos
 +#undef  magic_setsig
 +#define magic_setsig        pPerl->Perl_magic_setsig
 +#undef  magic_setsubstr
 +#define magic_setsubstr     pPerl->Perl_magic_setsubstr
 +#undef  magic_settaint
 +#define magic_settaint      pPerl->Perl_magic_settaint
 +#undef  magic_setuvar
 +#define magic_setuvar       pPerl->Perl_magic_setuvar
 +#undef  magic_setvec
 +#define magic_setvec        pPerl->Perl_magic_setvec
 +#undef  magic_sizepack
 +#define magic_sizepack      pPerl->Perl_magic_sizepack
 +#undef  magic_wipepack
 +#define magic_wipepack      pPerl->Perl_magic_wipepack
 +#undef  magicname
 +#define magicname           pPerl->Perl_magicname
 +#undef  markstack_grow
 +#define markstack_grow      pPerl->Perl_markstack_grow
 +#undef  mem_collxfrm
 +#define mem_collxfrm        pPerl->Perl_mem_collxfrm
 +#undef  mess
 +#define mess                pPerl->Perl_mess
 +#undef  mg_clear
 +#define mg_clear            pPerl->Perl_mg_clear
 +#undef  mg_copy
 +#define mg_copy             pPerl->Perl_mg_copy
 +#undef  mg_find
 +#define mg_find             pPerl->Perl_mg_find
 +#undef  mg_free
 +#define mg_free             pPerl->Perl_mg_free
 +#undef  mg_get
 +#define mg_get              pPerl->Perl_mg_get
 +#undef  mg_magical
 +#define mg_magical          pPerl->Perl_mg_magical
 +#undef  mg_length
 +#define mg_length           pPerl->Perl_mg_length
 +#undef  mg_set
 +#define mg_set              pPerl->Perl_mg_set
 +#undef  mg_size
 +#define mg_size             pPerl->Perl_mg_size
 +#undef  missingterm
 +#define missingterm         pPerl->missingterm
 +#undef  mod
 +#define mod                 pPerl->Perl_mod
 +#undef  modkids
 +#define modkids             pPerl->Perl_modkids
 +#undef  moreswitches
 +#define moreswitches        pPerl->Perl_moreswitches
 +#undef  more_sv
 +#define more_sv             pPerl->more_sv
 +#undef  more_xiv
 +#define more_xiv            pPerl->more_xiv
 +#undef  more_xnv
 +#define more_xnv            pPerl->more_xnv
 +#undef  more_xpv
 +#define more_xpv            pPerl->more_xpv
 +#undef  more_xrv
 +#define more_xrv            pPerl->more_xrv
 +#undef  my
 +#define my                  pPerl->Perl_my
 +#undef  my_bcopy
 +#define my_bcopy            pPerl->Perl_my_bcopy
 +#undef  my_bzero
 +#define my_bzero            pPerl->Perl_my_bzero
 +#undef  my_chsize
 +#define my_chsize           pPerl->Perl_my_chsize
 +#undef  my_exit
 +#define my_exit             pPerl->Perl_my_exit
 +#undef  my_failure_exit
 +#define my_failure_exit     pPerl->Perl_my_failure_exit
 +#undef  my_htonl
 +#define my_htonl            pPerl->Perl_my_htonl
 +#undef  my_lstat
 +#define my_lstat            pPerl->Perl_my_lstat
 +#undef  my_memcmp
 +#define my_memcmp           pPerl->my_memcmp
 +#undef  my_ntohl
 +#define my_ntohl            pPerl->Perl_my_ntohl
 +#undef  my_pclose
 +#define my_pclose           pPerl->Perl_my_pclose
 +#undef  my_popen
 +#define my_popen            pPerl->Perl_my_popen
 +#undef  my_setenv
 +#define my_setenv           pPerl->Perl_my_setenv
 +#undef  my_stat
 +#define my_stat             pPerl->Perl_my_stat
 +#undef  my_swap
 +#define my_swap             pPerl->Perl_my_swap
 +#undef  my_unexec
 +#define my_unexec           pPerl->Perl_my_unexec
 +#undef  newANONLIST
 +#define newANONLIST         pPerl->Perl_newANONLIST
 +#undef  newANONHASH
 +#define newANONHASH         pPerl->Perl_newANONHASH
 +#undef  newANONSUB
 +#define newANONSUB          pPerl->Perl_newANONSUB
 +#undef  newASSIGNOP
 +#define newASSIGNOP         pPerl->Perl_newASSIGNOP
 +#undef  newCONDOP
 +#define newCONDOP           pPerl->Perl_newCONDOP
++#undef  newCONSTSUB
++#define newCONSTSUB         pPerl->Perl_newCONSTSUB
 +#undef  newFORM
 +#define newFORM             pPerl->Perl_newFORM
 +#undef  newFOROP
 +#define newFOROP            pPerl->Perl_newFOROP
 +#undef  newLOGOP
 +#define newLOGOP            pPerl->Perl_newLOGOP
 +#undef  newLOOPEX
 +#define newLOOPEX           pPerl->Perl_newLOOPEX
 +#undef  newLOOPOP
 +#define newLOOPOP           pPerl->Perl_newLOOPOP
 +#undef  newMETHOD
 +#define newMETHOD           pPerl->Perl_newMETHOD
 +#undef  newNULLLIST
 +#define newNULLLIST         pPerl->Perl_newNULLLIST
 +#undef  newOP
 +#define newOP               pPerl->Perl_newOP
 +#undef  newPROG
 +#define newPROG             pPerl->Perl_newPROG
 +#undef  newRANGE
 +#define newRANGE            pPerl->Perl_newRANGE
 +#undef  newSLICEOP
 +#define newSLICEOP          pPerl->Perl_newSLICEOP
 +#undef  newSTATEOP
 +#define newSTATEOP          pPerl->Perl_newSTATEOP
 +#undef  newSUB
 +#define newSUB              pPerl->Perl_newSUB
 +#undef  newXS
 +#define newXS               pPerl->Perl_newXS
 +#undef  newAV
 +#define newAV               pPerl->Perl_newAV
 +#undef  newAVREF
 +#define newAVREF            pPerl->Perl_newAVREF
 +#undef  newBINOP
 +#define newBINOP            pPerl->Perl_newBINOP
 +#undef  newCVREF
 +#define newCVREF            pPerl->Perl_newCVREF
 +#undef  newCVOP
 +#define newCVOP             pPerl->Perl_newCVOP
 +#undef  newGVOP
 +#define newGVOP             pPerl->Perl_newGVOP
 +#undef  newGVgen
 +#define newGVgen            pPerl->Perl_newGVgen
 +#undef  newGVREF
 +#define newGVREF            pPerl->Perl_newGVREF
 +#undef  newHVREF
 +#define newHVREF            pPerl->Perl_newHVREF
 +#undef  newHV
 +#define newHV               pPerl->Perl_newHV
 +#undef  newIO
 +#define newIO               pPerl->Perl_newIO
 +#undef  newLISTOP
 +#define newLISTOP           pPerl->Perl_newLISTOP
 +#undef  newPMOP
 +#define newPMOP             pPerl->Perl_newPMOP
 +#undef  newPVOP
 +#define newPVOP             pPerl->Perl_newPVOP
 +#undef  newRV
 +#define newRV               pPerl->Perl_newRV
 +#undef  newRV_noinc
 +#undef  Perl_newRV_noinc
 +#define newRV_noinc         pPerl->Perl_newRV_noinc
 +#undef  newSV
 +#define newSV               pPerl->Perl_newSV
 +#undef  newSVREF
 +#define newSVREF            pPerl->Perl_newSVREF
 +#undef  newSVOP
 +#define newSVOP             pPerl->Perl_newSVOP
 +#undef  newSViv
 +#define newSViv             pPerl->Perl_newSViv
 +#undef  newSVnv
 +#define newSVnv             pPerl->Perl_newSVnv
 +#undef  newSVpv
 +#define newSVpv             pPerl->Perl_newSVpv
 +#undef  newSVpvf
 +#define newSVpvf            pPerl->Perl_newSVpvf
 +#undef  newSVpvn
 +#define newSVpvn            pPerl->Perl_newSVpvn
 +#undef  newSVrv
 +#define newSVrv             pPerl->Perl_newSVrv
 +#undef  newSVsv
 +#define newSVsv             pPerl->Perl_newSVsv
 +#undef  newUNOP
 +#define newUNOP             pPerl->Perl_newUNOP
 +#undef  newWHILEOP
 +#define newWHILEOP          pPerl->Perl_newWHILEOP
 +#undef  new_struct_thread
 +#define new_struct_thread   pPerl->Perl_new_struct_thread
++#undef  new_stackinfo
++#define new_stackinfo       pPerl->Perl_new_stackinfo
 +#undef  new_sv
 +#define new_sv              pPerl->new_sv
 +#undef  new_xnv
 +#define new_xnv             pPerl->new_xnv
 +#undef  new_xpv
 +#define new_xpv             pPerl->new_xpv
 +#undef  nextargv
 +#define nextargv            pPerl->Perl_nextargv
 +#undef  nextchar
 +#define nextchar            pPerl->nextchar
 +#undef  ninstr
 +#define ninstr              pPerl->Perl_ninstr
 +#undef  no_fh_allowed
 +#define no_fh_allowed       pPerl->Perl_no_fh_allowed
 +#undef  no_op
 +#define no_op               pPerl->Perl_no_op
 +#undef  package
 +#define package             pPerl->Perl_package
 +#undef  pad_alloc
 +#define pad_alloc           pPerl->Perl_pad_alloc
 +#undef  pad_allocmy
 +#define pad_allocmy         pPerl->Perl_pad_allocmy
 +#undef  pad_findmy
 +#define pad_findmy          pPerl->Perl_pad_findmy
 +#undef  op_free
 +#define op_free             pPerl->Perl_op_free
 +#undef  oopsCV
 +#define oopsCV              pPerl->Perl_oopsCV
 +#undef  oopsAV
 +#define oopsAV              pPerl->Perl_oopsAV
 +#undef  oopsHV
 +#define oopsHV              pPerl->Perl_oopsHV
 +#undef  opendir
 +#define opendir             pPerl->opendir
 +#undef  pad_leavemy
 +#define pad_leavemy         pPerl->Perl_pad_leavemy
 +#undef  pad_sv
 +#define pad_sv              pPerl->Perl_pad_sv
 +#undef  pad_findlex
 +#define pad_findlex         pPerl->pad_findlex
 +#undef  pad_free
 +#define pad_free            pPerl->Perl_pad_free
 +#undef  pad_reset
 +#define pad_reset           pPerl->Perl_pad_reset
 +#undef  pad_swipe
 +#define pad_swipe           pPerl->Perl_pad_swipe
 +#undef  peep
 +#define peep                pPerl->Perl_peep
 +#undef  perl_call_argv
 +#define perl_call_argv      pPerl->perl_call_argv
 +#undef  perl_call_method
 +#define perl_call_method    pPerl->perl_call_method
 +#undef  perl_call_pv
 +#define perl_call_pv        pPerl->perl_call_pv
 +#undef  perl_call_sv
 +#define perl_call_sv        pPerl->perl_call_sv
 +#undef  perl_callargv
 +#define perl_callargv       pPerl->perl_callargv
 +#undef  perl_callpv
 +#define perl_callpv         pPerl->perl_callpv
 +#undef  perl_callsv
 +#define perl_callsv         pPerl->perl_callsv
 +#undef  perl_eval_pv
 +#define perl_eval_pv        pPerl->perl_eval_pv
 +#undef  perl_eval_sv
 +#define perl_eval_sv        pPerl->perl_eval_sv
 +#undef  perl_get_sv
 +#define perl_get_sv         pPerl->perl_get_sv
 +#undef  perl_get_av
 +#define perl_get_av         pPerl->perl_get_av
 +#undef  perl_get_hv
 +#define perl_get_hv         pPerl->perl_get_hv
 +#undef  perl_get_cv
 +#define perl_get_cv         pPerl->perl_get_cv
 +#undef  perl_init_i18nl10n
 +#define perl_init_i18nl10n  pPerl->perl_init_i18nl10n
 +#undef  perl_init_i18nl14n
 +#define perl_init_i18nl14n  pPerl->perl_init_i18nl14n
 +#undef  perl_new_collate
 +#define perl_new_collate    pPerl->perl_new_collate
 +#undef  perl_new_ctype
 +#define perl_new_ctype      pPerl->perl_new_ctype
 +#undef  perl_new_numeric
 +#define perl_new_numeric    pPerl->perl_new_numeric
 +#undef  perl_set_numeric_local
 +#define perl_set_numeric_local pPerl->perl_set_numeric_local
 +#undef  perl_set_numeric_standard
 +#define perl_set_numeric_standard pPerl->perl_set_numeric_standard
 +#undef  perl_require_pv
 +#define perl_require_pv     pPerl->perl_require_pv
 +#undef  pidgone
 +#define pidgone             pPerl->Perl_pidgone
 +#undef  pmflag
 +#define pmflag              pPerl->Perl_pmflag
 +#undef  pmruntime
 +#define pmruntime           pPerl->Perl_pmruntime
 +#undef  pmtrans
 +#define pmtrans             pPerl->Perl_pmtrans
 +#undef  pop_return
 +#define pop_return          pPerl->Perl_pop_return
 +#undef  pop_scope
 +#define pop_scope           pPerl->Perl_pop_scope
 +#undef  prepend_elem
 +#define prepend_elem        pPerl->Perl_prepend_elem
 +#undef  push_return
 +#define push_return         pPerl->Perl_push_return
 +#undef  push_scope
 +#define push_scope          pPerl->Perl_push_scope
 +#undef  pregcomp
 +#define pregcomp            pPerl->Perl_pregcomp
 +#undef  ref
 +#define ref                 pPerl->Perl_ref
 +#undef  refkids
 +#define refkids             pPerl->Perl_refkids
 +#undef  regexec_flags
 +#define regexec_flags       pPerl->Perl_regexec_flags
 +#undef  pregexec
 +#define pregexec            pPerl->Perl_pregexec
 +#undef  pregfree
 +#define pregfree            pPerl->Perl_pregfree
 +#undef  regnext
 +#define regnext             pPerl->Perl_regnext
 +#undef  regnoderegnext
 +#define regnoderegnext      pPerl->regnoderegnext
 +#undef  repeatcpy
 +#define repeatcpy           pPerl->Perl_repeatcpy
 +#undef  rninstr
 +#define rninstr             pPerl->Perl_rninstr
 +#undef  rsignal
 +#define rsignal             pPerl->Perl_rsignal
 +#undef  rsignal_restore
 +#define rsignal_restore     pPerl->Perl_rsignal_restore
 +#undef  rsignal_save
 +#define rsignal_save        pPerl->Perl_rsignal_save
 +#undef  rsignal_state
 +#define rsignal_state       pPerl->Perl_rsignal_state
 +#undef  run
 +#define run                 pPerl->Perl_run
 +#undef  rxres_free
 +#define rxres_free          pPerl->Perl_rxres_free
 +#undef  rxres_restore
 +#define rxres_restore       pPerl->Perl_rxres_restore
 +#undef  rxres_save
 +#define rxres_save          pPerl->Perl_rxres_save
 +#undef  safefree
 +#define safefree            pPerl->Perl_safefree
 +#undef  safecalloc
 +#define safecalloc          pPerl->Perl_safecalloc
 +#undef  safemalloc
 +#define safemalloc          pPerl->Perl_safemalloc
 +#undef  saferealloc
 +#define saferealloc         pPerl->Perl_saferealloc
 +#undef  safexcalloc
 +#define safexcalloc         pPerl->Perl_safexcalloc
 +#undef  safexfree
 +#define safexfree           pPerl->Perl_safexfree
 +#undef  safexmalloc
 +#define safexmalloc         pPerl->Perl_safexmalloc
 +#undef  safexrealloc
 +#define safexrealloc        pPerl->Perl_safexrealloc
 +#undef  same_dirent
 +#define same_dirent         pPerl->Perl_same_dirent
 +#undef  savepv
 +#define savepv              pPerl->Perl_savepv
 +#undef  savepvn
 +#define savepvn             pPerl->Perl_savepvn
 +#undef  savestack_grow
 +#define savestack_grow      pPerl->Perl_savestack_grow
 +#undef  save_aelem
 +#define save_aelem          pPerl->Perl_save_aelem
 +#undef  save_aptr
 +#define save_aptr           pPerl->Perl_save_aptr
 +#undef  save_ary
 +#define save_ary            pPerl->Perl_save_ary
 +#undef  save_clearsv
 +#define save_clearsv        pPerl->Perl_save_clearsv
 +#undef  save_delete
 +#define save_delete         pPerl->Perl_save_delete
 +#undef  save_destructor
 +#define save_destructor     pPerl->Perl_save_destructor
 +#undef  save_freesv
 +#define save_freesv         pPerl->Perl_save_freesv
 +#undef  save_freeop
 +#define save_freeop         pPerl->Perl_save_freeop
 +#undef  save_freepv
 +#define save_freepv         pPerl->Perl_save_freepv
 +#undef  save_gp
 +#define save_gp             pPerl->Perl_save_gp
 +#undef  save_hash
 +#define save_hash           pPerl->Perl_save_hash
 +#undef  save_helem
 +#define save_helem          pPerl->Perl_save_helem
 +#undef  save_hptr
 +#define save_hptr           pPerl->Perl_save_hptr
 +#undef  save_I16
 +#define save_I16            pPerl->Perl_save_I16
 +#undef  save_I32
 +#define save_I32            pPerl->Perl_save_I32
 +#undef  save_int
 +#define save_int            pPerl->Perl_save_int
 +#undef  save_item
 +#define save_item           pPerl->Perl_save_item
 +#undef  save_iv
 +#define save_iv             pPerl->Perl_save_iv
 +#undef  save_list
 +#define save_list           pPerl->Perl_save_list
 +#undef  save_long
 +#define save_long           pPerl->Perl_save_long
 +#undef  save_nogv
 +#define save_nogv           pPerl->Perl_save_nogv
 +#undef  save_op
 +#define save_op             pPerl->Perl_save_op
 +#undef  save_scalar
 +#define save_scalar         pPerl->Perl_save_scalar
 +#undef  save_pptr
 +#define save_pptr           pPerl->Perl_save_pptr
 +#undef  save_sptr
 +#define save_sptr           pPerl->Perl_save_sptr
 +#undef  save_svref
 +#define save_svref          pPerl->Perl_save_svref
 +#undef  save_threadsv
 +#define save_threadsv       pPerl->Perl_save_threadsv
 +#undef  sawparens
 +#define sawparens           pPerl->Perl_sawparens
 +#undef  scalar
 +#define scalar              pPerl->Perl_scalar
 +#undef  scalarkids
 +#define scalarkids          pPerl->Perl_scalarkids
 +#undef  scalarseq
 +#define scalarseq           pPerl->Perl_scalarseq
 +#undef  scalarvoid
 +#define scalarvoid          pPerl->Perl_scalarvoid
 +#undef  scan_const
 +#define scan_const          pPerl->Perl_scan_const
 +#undef  scan_formline
 +#define scan_formline       pPerl->Perl_scan_formline
 +#undef  scan_ident
 +#define scan_ident          pPerl->Perl_scan_ident
 +#undef  scan_inputsymbol
 +#define scan_inputsymbol    pPerl->Perl_scan_inputsymbol
 +#undef  scan_heredoc
 +#define scan_heredoc        pPerl->Perl_scan_heredoc
 +#undef  scan_hex
 +#define scan_hex            pPerl->Perl_scan_hex
 +#undef  scan_num
 +#define scan_num            pPerl->Perl_scan_num
 +#undef  scan_oct
 +#define scan_oct            pPerl->Perl_scan_oct
 +#undef  scan_pat
 +#define scan_pat            pPerl->Perl_scan_pat
 +#undef  scan_str
 +#define scan_str            pPerl->Perl_scan_str
 +#undef  scan_subst
 +#define scan_subst          pPerl->Perl_scan_subst
 +#undef  scan_trans
 +#define scan_trans          pPerl->Perl_scan_trans
 +#undef  scope
 +#define scope               pPerl->Perl_scope
 +#undef  screaminstr
 +#define screaminstr         pPerl->Perl_screaminstr
 +#undef  setdefout
 +#define setdefout           pPerl->Perl_setdefout
 +#undef  setenv_getix
 +#define setenv_getix        pPerl->Perl_setenv_getix
 +#undef  share_hek
 +#define share_hek           pPerl->Perl_share_hek
 +#undef  sharepvn
 +#define sharepvn            pPerl->Perl_sharepvn
 +#undef  sighandler
 +#define sighandler          pPerl->Perl_sighandler
 +#undef  skipspace
 +#define skipspace           pPerl->Perl_skipspace
 +#undef  stack_grow
 +#define stack_grow          pPerl->Perl_stack_grow
 +#undef  start_subparse
 +#define start_subparse      pPerl->Perl_start_subparse
 +#undef  sub_crush_depth
 +#define sub_crush_depth     pPerl->Perl_sub_crush_depth
 +#undef  sublex_done
 +#define sublex_done         pPerl->Perl_sublex_done
 +#undef  sublex_start
 +#define sublex_start        pPerl->Perl_sublex_start
 +#undef  sv_2bool
 +#define sv_2bool          pPerl->Perl_sv_2bool
 +#undef  sv_2cv
 +#define sv_2cv                    pPerl->Perl_sv_2cv
 +#undef  sv_2io
 +#define sv_2io                    pPerl->Perl_sv_2io
 +#undef  sv_2iv
 +#define sv_2iv                    pPerl->Perl_sv_2iv
 +#undef  sv_2mortal
 +#define sv_2mortal        pPerl->Perl_sv_2mortal
 +#undef  sv_2nv
 +#define sv_2nv                    pPerl->Perl_sv_2nv
 +#undef  sv_2pv
 +#define sv_2pv                    pPerl->Perl_sv_2pv
 +#undef  sv_2uv
 +#define sv_2uv                    pPerl->Perl_sv_2uv
 +#undef  sv_add_arena
 +#define sv_add_arena      pPerl->Perl_sv_add_arena
 +#undef  sv_backoff
 +#define sv_backoff        pPerl->Perl_sv_backoff
 +#undef  sv_bless
 +#define sv_bless          pPerl->Perl_sv_bless
 +#undef  sv_catpv
 +#define sv_catpv          pPerl->Perl_sv_catpv
 +#undef  sv_catpvf
 +#define sv_catpvf         pPerl->Perl_sv_catpvf
 +#undef  sv_catpvn
 +#define sv_catpvn         pPerl->Perl_sv_catpvn
 +#undef  sv_catsv
 +#define sv_catsv          pPerl->Perl_sv_catsv
 +#undef  sv_chop
 +#define sv_chop                   pPerl->Perl_sv_chop
 +#undef  sv_clean_all
 +#define sv_clean_all      pPerl->Perl_sv_clean_all
 +#undef  sv_clean_objs
 +#define sv_clean_objs     pPerl->Perl_sv_clean_objs
 +#undef  sv_clear
 +#define sv_clear          pPerl->Perl_sv_clear
 +#undef  sv_cmp
 +#define sv_cmp                    pPerl->Perl_sv_cmp
 +#undef  sv_cmp_locale
 +#define sv_cmp_locale     pPerl->Perl_sv_cmp_locale
 +#undef  sv_collxfrm
 +#define sv_collxfrm       pPerl->Perl_sv_collxfrm
 +#undef  sv_compile_2op
 +#define sv_compile_2op            pPerl->Perl_sv_compile_2op
 +#undef  sv_dec
 +#define sv_dec                    pPerl->Perl_sv_dec
 +#undef  sv_derived_from
 +#define sv_derived_from           pPerl->Perl_sv_derived_from
 +#undef  sv_dump
 +#define sv_dump                   pPerl->Perl_sv_dump
 +#undef  sv_eq
 +#define sv_eq             pPerl->Perl_sv_eq
 +#undef  sv_free
 +#define sv_free                   pPerl->Perl_sv_free
 +#undef  sv_free_arenas
 +#define sv_free_arenas            pPerl->Perl_sv_free_arenas
 +#undef  sv_gets
 +#define sv_gets                   pPerl->Perl_sv_gets
 +#undef  sv_grow
 +#define sv_grow                   pPerl->Perl_sv_grow
 +#undef  sv_inc
 +#define sv_inc                    pPerl->Perl_sv_inc
 +#undef  sv_insert
 +#define sv_insert         pPerl->Perl_sv_insert
 +#undef  sv_isa
 +#define sv_isa                    pPerl->Perl_sv_isa
 +#undef  sv_isobject
 +#define sv_isobject       pPerl->Perl_sv_isobject
 +#undef  sv_iv
 +#define sv_iv             pPerl->Perl_sv_iv
 +#undef  sv_len
 +#define sv_len                    pPerl->Perl_sv_len
 +#undef  sv_magic
 +#define sv_magic          pPerl->Perl_sv_magic
 +#undef  sv_mortalcopy
 +#define sv_mortalcopy     pPerl->Perl_sv_mortalcopy
 +#undef  sv_newmortal
 +#define sv_newmortal      pPerl->Perl_sv_newmortal
 +#undef  sv_newref
 +#define sv_newref         pPerl->Perl_sv_newref
 +#undef  sv_nv
 +#define sv_nv             pPerl->Perl_sv_nv
 +#undef  sv_pvn
 +#define sv_pvn                    pPerl->Perl_sv_pvn
 +#undef  sv_pvn_force
 +#define sv_pvn_force      pPerl->Perl_sv_pvn_force
 +#undef  sv_reftype
 +#define sv_reftype        pPerl->Perl_sv_reftype
 +#undef  sv_replace
 +#define sv_replace        pPerl->Perl_sv_replace
 +#undef  sv_report_used
 +#define sv_report_used            pPerl->Perl_sv_report_used
 +#undef  sv_reset
 +#define sv_reset          pPerl->Perl_sv_reset
 +#undef  sv_setiv
 +#define sv_setiv          pPerl->Perl_sv_setiv
 +#undef  sv_setnv
 +#define sv_setnv          pPerl->Perl_sv_setnv
 +#undef  sv_setpv
 +#define sv_setpv          pPerl->Perl_sv_setpv
 +#undef  sv_setpvf
 +#define sv_setpvf         pPerl->Perl_sv_setpvf
 +#undef  sv_setpviv
 +#define sv_setpviv        pPerl->Perl_sv_setpviv
 +#undef  sv_setpvn
 +#define sv_setpvn         pPerl->Perl_sv_setpvn
 +#undef  sv_setref_iv
 +#define sv_setref_iv      pPerl->Perl_sv_setref_iv
 +#undef  sv_setref_nv
 +#define sv_setref_nv      pPerl->Perl_sv_setref_nv
 +#undef  sv_setref_pv
 +#define sv_setref_pv      pPerl->Perl_sv_setref_pv
 +#undef  sv_setref_pvn
 +#define sv_setref_pvn     pPerl->Perl_sv_setref_pvn
 +#undef  sv_setsv
 +#define sv_setsv          pPerl->Perl_sv_setsv
 +#undef  sv_setuv
 +#define sv_setuv          pPerl->Perl_sv_setuv
 +#undef  sv_taint
 +#define sv_taint          pPerl->Perl_sv_taint
 +#undef  sv_tainted
 +#define sv_tainted        pPerl->Perl_sv_tainted
 +#undef  sv_true
 +#define sv_true                   pPerl->Perl_sv_true
 +#undef  sv_unmagic
 +#define sv_unmagic        pPerl->Perl_sv_unmagic
 +#undef  sv_unref
 +#define sv_unref          pPerl->Perl_sv_unref
 +#undef  sv_untaint
 +#define sv_untaint        pPerl->Perl_sv_untaint
 +#undef  sv_upgrade
 +#define sv_upgrade        pPerl->Perl_sv_upgrade
 +#undef  sv_usepvn
 +#define sv_usepvn         pPerl->Perl_sv_usepvn
 +#undef  sv_uv
 +#define sv_uv             pPerl->Perl_sv_uv
 +#undef  sv_vcatpvfn
 +#define sv_vcatpvfn       pPerl->Perl_sv_vcatpvfn
 +#undef  sv_vsetpvfn
 +#define sv_vsetpvfn       pPerl->Perl_sv_vsetpvfn
 +#undef  taint_env
 +#define taint_env         pPerl->Perl_taint_env
 +#undef  taint_not
 +#define taint_not         pPerl->Perl_taint_not
 +#undef  taint_proper
 +#define taint_proper      pPerl->Perl_taint_proper
 +#undef  too_few_arguments
 +#define too_few_arguments   pPerl->Perl_too_few_arguments
 +#undef  too_many_arguments
 +#define too_many_arguments  pPerl->Perl_too_many_arguments
 +#undef  unlnk
 +#define unlnk               pPerl->Perl_unlnk
 +#undef  unlock_condpair
 +#define unlock_condpair     pPerl->Perl_unlock_condpair
 +#undef  unshare_hek
 +#define unshare_hek         pPerl->Perl_unshare_hek
 +#undef  unsharepvn
 +#define unsharepvn          pPerl->Perl_unsharepvn
 +#undef  utilize
 +#define utilize             pPerl->Perl_utilize
 +#undef  vivify_defelem
 +#define vivify_defelem      pPerl->Perl_vivify_defelem
 +#undef  vivify_ref
 +#define vivify_ref          pPerl->Perl_vivify_ref
 +#undef  wait4pid
 +#define wait4pid            pPerl->Perl_wait4pid
 +#undef  warn
 +#define warn              pPerl->Perl_warn
 +#undef  whichsig
 +#define whichsig            pPerl->Perl_whichsig
 +#undef  yyerror
 +#define yyerror             pPerl->Perl_yyerror
 +#undef  yylex
 +#define yylex               pPerl->Perl_yylex
 +#undef  yyparse
 +#define yyparse             pPerl->Perl_yyparse
 +#undef  yywarn
 +#define yywarn              pPerl->Perl_yywarn
 +
 +
 +#undef piMem
 +#define piMem               (pPerl->piMem)
 +#undef piENV
 +#define piENV               (pPerl->piENV)
 +#undef piStdIO
 +#define piStdIO             (pPerl->piStdIO)
 +#undef piLIO
 +#define piLIO               (pPerl->piLIO)
 +#undef piDir
 +#define piDir               (pPerl->piDir)
 +#undef piSock
 +#define piSock              (pPerl->piSock)
 +#undef piProc
 +#define piProc              (pPerl->piProc)
 +
 +#ifndef NO_XSLOCKS
 +#undef closedir
 +#undef opendir
 +#undef stdin
 +#undef stdout
 +#undef stderr
 +#undef feof
 +#undef ferror
 +#undef fgetpos
 +#undef ioctl
 +#undef getlogin
 +#undef setjmp
 +#undef getc
 +#undef ungetc
 +#undef fileno
 +
 +#define mkdir PerlDir_mkdir
 +#define chdir PerlDir_chdir
 +#define rmdir PerlDir_rmdir
 +#define closedir PerlDir_close
 +#define opendir PerlDir_open
 +#define readdir PerlDir_read
 +#define rewinddir PerlDir_rewind
 +#define seekdir PerlDir_seek
 +#define telldir PerlDir_tell
 +#define putenv PerlEnv_putenv
 +#define getenv PerlEnv_getenv
 +#define stdin PerlIO_stdin()
 +#define stdout PerlIO_stdout()
 +#define stderr PerlIO_stderr()
 +#define fopen PerlIO_open
 +#define fclose PerlIO_close
 +#define feof PerlIO_eof
 +#define ferror PerlIO_error
 +#define fclearerr PerlIO_clearerr
 +#define getc PerlIO_getc
 +#define fputc(c, f) PerlIO_putc(f,c)
 +#define fputs(s, f) PerlIO_puts(f,s)
 +#define fflush PerlIO_flush
 +#define ungetc(c, f) PerlIO_ungetc((f),(c))
 +#define fileno PerlIO_fileno
 +#define fdopen PerlIO_fdopen
 +#define freopen PerlIO_reopen
 +#define fread(b,s,c,f) PerlIO_read((f),(b),(s*c))
 +#define fwrite(b,s,c,f) PerlIO_write((f),(b),(s*c))
 +#define setbuf PerlIO_setbuf
 +#define setvbuf PerlIO_setvbuf
 +#define setlinebuf PerlIO_setlinebuf
 +#define stdoutf PerlIO_stdoutf
 +#define vfprintf PerlIO_vprintf
 +#define ftell PerlIO_tell
 +#define fseek PerlIO_seek
 +#define fgetpos PerlIO_getpos
 +#define fsetpos PerlIO_setpos
 +#define frewind PerlIO_rewind
 +#define tmpfile PerlIO_tmpfile
 +#define access PerlLIO_access
 +#define chmod PerlLIO_chmod
 +#define chsize PerlLIO_chsize
 +#define close PerlLIO_close
 +#define dup PerlLIO_dup
 +#define dup2 PerlLIO_dup2
 +#define flock PerlLIO_flock
 +#define fstat PerlLIO_fstat
 +#define ioctl PerlLIO_ioctl
 +#define isatty PerlLIO_isatty
 +#define lseek PerlLIO_lseek
 +#define lstat PerlLIO_lstat
 +#define mktemp PerlLIO_mktemp
 +#define open PerlLIO_open
 +#define read PerlLIO_read
 +#define rename PerlLIO_rename
 +#define setmode PerlLIO_setmode
 +#define stat PerlLIO_stat
 +#define tmpnam PerlLIO_tmpnam
 +#define umask PerlLIO_umask
 +#define unlink PerlLIO_unlink
 +#define utime PerlLIO_utime
 +#define write PerlLIO_write
 +#define malloc PerlMem_malloc
 +#define realloc PerlMem_realloc
 +#define free PerlMem_free
 +#define abort PerlProc_abort
 +#define exit PerlProc_exit
 +#define _exit PerlProc__exit
 +#define execl PerlProc_execl
 +#define execv PerlProc_execv
 +#define execvp PerlProc_execvp
 +#define getuid PerlProc_getuid
 +#define geteuid PerlProc_geteuid
 +#define getgid PerlProc_getgid
 +#define getegid PerlProc_getegid
 +#define getlogin PerlProc_getlogin
 +#define kill PerlProc_kill
 +#define killpg PerlProc_killpg
 +#define pause PerlProc_pause
 +#define popen PerlProc_popen
 +#define pclose PerlProc_pclose
 +#define pipe PerlProc_pipe
 +#define setuid PerlProc_setuid
 +#define setgid PerlProc_setgid
 +#define sleep PerlProc_sleep
 +#define times PerlProc_times
 +#define wait PerlProc_wait
 +#define setjmp PerlProc_setjmp
 +#define longjmp PerlProc_longjmp
 +#define signal PerlProc_signal
 +#define htonl PerlSock_htonl
 +#define htons PerlSock_htons
 +#define ntohs PerlSock_ntohl
 +#define ntohl PerlSock_ntohs
 +#define accept PerlSock_accept
 +#define bind PerlSock_bind
 +#define connect PerlSock_connect
 +#define endhostent PerlSock_endhostent
 +#define endnetent PerlSock_endnetent
 +#define endprotoent PerlSock_endprotoent
 +#define endservent PerlSock_endservent
 +#define gethostbyaddr PerlSock_gethostbyaddr
 +#define gethostbyname PerlSock_gethostbyname
 +#define gethostent PerlSock_gethostent
 +#define gethostname PerlSock_gethostname
 +#define getnetbyaddr PerlSock_getnetbyaddr
 +#define getnetbyname PerlSock_getnetbyname
 +#define getnetent PerlSock_getnetent
 +#define getpeername PerlSock_getpeername
 +#define getprotobyname PerlSock_getprotobyname
 +#define getprotobynumber PerlSock_getprotobynumber
 +#define getprotoent PerlSock_getprotoent
 +#define getservbyname PerlSock_getservbyname
 +#define getservbyport PerlSock_getservbyport
 +#define getservent PerlSock_getservent
 +#define getsockname PerlSock_getsockname
 +#define getsockopt PerlSock_getsockopt
 +#define inet_addr PerlSock_inet_addr
 +#define inet_ntoa PerlSock_inet_ntoa
 +#define listen PerlSock_listen
 +#define recvfrom PerlSock_recvfrom
 +#define select PerlSock_select
 +#define send PerlSock_send
 +#define sendto PerlSock_sendto
 +#define sethostent PerlSock_sethostent
 +#define setnetent PerlSock_setnetent
 +#define setprotoent PerlSock_setprotoent
 +#define setservent PerlSock_setservent
 +#define setsockopt PerlSock_setsockopt
 +#define shutdown PerlSock_shutdown
 +#define socket PerlSock_socket
 +#define socketpair PerlSock_socketpair
 +#endif  /* NO_XSLOCKS */
 +
 +#undef  THIS
 +#define THIS pPerl
 +#undef  THIS_
 +#define THIS_ pPerl,
 +
 +#undef  SAVEDESTRUCTOR
 +#define SAVEDESTRUCTOR(f,p) \
 +      pPerl->Perl_save_destructor((FUNC_NAME_TO_PTR(f)),(p))
 +
 +#ifdef WIN32
 +
 +#ifndef WIN32IO_IS_STDIO
 +#undef        errno
 +#define errno                 ErrorNo()
 +#endif
 +
 +#undef  ErrorNo
 +#define ErrorNo                               pPerl->ErrorNo
 +#undef  NtCrypt
 +#define NtCrypt               pPerl->NtCrypt
 +#undef  NtGetLib
 +#define NtGetLib              pPerl->NtGetLib
 +#undef  NtGetArchLib
 +#define NtGetArchLib          pPerl->NtGetArchLib
 +#undef  NtGetSiteLib
 +#define NtGetSiteLib          pPerl->NtGetSiteLib
 +#undef  NtGetBin
 +#define NtGetBin              pPerl->NtGetBin
 +#undef  NtGetDebugScriptStr
 +#define NtGetDebugScriptStr   pPerl->NtGetDebugScriptStr
 +#endif /* WIN32 */
 +
 +#endif        /* __ObjXSub_h__ */ 
 +
diff --cc embed.h
Simple merge
diff --cc embedvar.h
  #define screamnext            (curinterp->Iscreamnext)
  #define secondgv              (curinterp->Isecondgv)
  #define siggv                 (curinterp->Isiggv)
- #define signalstack           (curinterp->Isignalstack)
  #define sortcop                       (curinterp->Isortcop)
 +#define sortcxix              (curinterp->Isortcxix)
- #define sortstack             (curinterp->Isortstack)
  #define sortstash             (curinterp->Isortstash)
  #define splitstr              (curinterp->Isplitstr)
  #define statcache             (curinterp->Istatcache)
  #define Iscreamfirst          screamfirst
  #define Iscreamnext           screamnext
  #define Isecondgv             secondgv
 +#define Iseen_zerolen         seen_zerolen
  #define Isiggv                        siggv
- #define Isignalstack          signalstack
  #define Isortcop              sortcop
 +#define Isortcxix             sortcxix
- #define Isortstack            sortstack
  #define Isortstash            sortstash
  #define Isplitstr             splitstr
  #define Istatcache            statcache
  #define screamfirst           Perl_screamfirst
  #define screamnext            Perl_screamnext
  #define secondgv              Perl_secondgv
 +#define seen_zerolen          Perl_seen_zerolen
  #define siggv                 Perl_siggv
- #define signalstack           Perl_signalstack
  #define sortcop                       Perl_sortcop
 +#define sortcxix              Perl_sortcxix
- #define sortstack             Perl_sortstack
  #define sortstash             Perl_sortstash
  #define splitstr              Perl_splitstr
  #define statcache             Perl_statcache
diff --cc global.sym
Simple merge
diff --cc gv.c
Simple merge
diff --cc hv.c
Simple merge
diff --cc installperl
@@@ -101,14 -112,25 +115,25 @@@ $perldll = 'perlcore.' . $dlext if $Con
  
  # Install the DLL
  
 -safe_unlink("$installbin/perl.$dlext");
 -copy("perl.$dlext", "$installbin/perl.$dlext");
 -chmod(0755, "$installbin/perl.$dlext");
 +safe_unlink("$installbin/$perldll");
 +copy("$perldll", "$installbin/$perldll");
 +chmod(0755, "$installbin/$perldll");
  }
  
+ # This will be used to store the packlist
+ $packlist = ExtUtils::Packlist->new("$installarchlib/.packlist");
  # First we install the version-numbered executables.
  
- if ($^O ne 'dos') {
+ if ($Is_VMS) {
+     safe_unlink("$installbin/perl$exe_ext");
+     copy("perl$exe_ext", "$installbin/perl$exe_ext");
+     chmod(0755, "$installbin/perl$exe_ext");
+     safe_unlink("$installbin/perlshr$exe_ext");
+     copy("perlshr$exe_ext", "$installbin/perlshr$exe_ext");
+     chmod(0755, "$installbin/perlshr$exe_ext");
+ }
+ elsif ($^O ne 'dos') {
      safe_unlink("$installbin/perl$ver$exe_ext");
      copy("perl$exe_ext", "$installbin/perl$ver$exe_ext");
      chmod(0755, "$installbin/perl$ver$exe_ext");
diff --cc interp.sym
@@@ -155,12 -110,8 +152,10 @@@ sawve
  screamfirst
  screamnext
  secondgv
 +seen_zerolen
  siggv
- signalstack
  sortcop
 +sortcxix
- sortstack
  sortstash
  splitstr
  start_env
diff --cc intrpvar.h
Simple merge
Simple merge
Simple merge
diff --cc mg.c
--- 1/mg.c
--- 2/mg.c
+++ b/mg.c
@@@ -972,7 -954,8 +972,8 @@@ magic_setnkeys(SV *sv, MAGIC *mg
      return 0;
  }          
  
+ /* caller is responsible for stack switching/cleanup */
 -static int
 +STATIC int
  magic_methcall(MAGIC *mg, char *meth, I32 flags, int n, SV *val)
  {
      dSP;
diff --cc objpp.h
index cdc6776,0000000..3042828
mode 100644,000000..100644
--- /dev/null
+++ b/objpp.h
@@@ -1,1437 -1,0 +1,1439 @@@
 +#ifndef __Objpp_h__
 +#define __Objpp_h__
 +
 +#undef  amagic_call
 +#define amagic_call       CPerlObj::Perl_amagic_call
 +#undef  Gv_AMupdate
 +#define Gv_AMupdate       CPerlObj::Perl_Gv_AMupdate
 +#undef  add_data
 +#define add_data          CPerlObj::add_data
 +#undef  ao
 +#define ao                CPerlObj::ao
 +#undef  append_elem
 +#define append_elem       CPerlObj::Perl_append_elem
 +#undef  append_list
 +#define append_list       CPerlObj::Perl_append_list
 +#undef  apply
 +#define apply             CPerlObj::Perl_apply
 +#undef  asIV
 +#define asIV              CPerlObj::asIV
 +#undef  asUV
 +#define asUV              CPerlObj::asUV
 +#undef  assertref
 +#define assertref         CPerlObj::Perl_assertref
 +#undef  av_clear
 +#define av_clear          CPerlObj::Perl_av_clear
 +#undef  av_extend
 +#define av_extend         CPerlObj::Perl_av_extend
 +#undef  av_fake
 +#define av_fake           CPerlObj::Perl_av_fake
 +#undef  av_fetch
 +#define av_fetch          CPerlObj::Perl_av_fetch
 +#undef  av_fill
 +#define av_fill           CPerlObj::Perl_av_fill
 +#undef  av_len
 +#define av_len            CPerlObj::Perl_av_len
 +#undef  av_make
 +#define av_make           CPerlObj::Perl_av_make
 +#undef  av_pop
 +#define av_pop            CPerlObj::Perl_av_pop
 +#undef  av_push
 +#define av_push           CPerlObj::Perl_av_push
 +#undef  av_shift
 +#define av_shift          CPerlObj::Perl_av_shift
 +#undef  av_reify
 +#define av_reify          CPerlObj::Perl_av_reify
 +#undef  av_store
 +#define av_store          CPerlObj::Perl_av_store
 +#undef  av_undef 
 +#define av_undef          CPerlObj::Perl_av_undef 
 +#undef  av_unshift
 +#define av_unshift        CPerlObj::Perl_av_unshift
 +#undef  avhv_keys
 +#define avhv_keys         CPerlObj::Perl_avhv_keys
 +#undef  avhv_fetch
 +#define avhv_fetch        CPerlObj::Perl_avhv_fetch
 +#undef  avhv_fetch_ent
 +#define avhv_fetch_ent    CPerlObj::Perl_avhv_fetch_ent
 +#undef  avhv_store
 +#define avhv_store        CPerlObj::Perl_avhv_store
 +#undef  avhv_store_ent
 +#define avhv_store_ent    CPerlObj::Perl_avhv_store_ent
 +#undef  avhv_exists_ent
 +#define avhv_exists_ent   CPerlObj::Perl_avhv_exists_ent
 +#undef  avhv_exists
 +#define avhv_exists       CPerlObj::Perl_avhv_exists
 +#undef  avhv_delete
 +#define avhv_delete       CPerlObj::Perl_avhv_delete
 +#undef  avhv_delete_ent
 +#define avhv_delete_ent   CPerlObj::Perl_avhv_delete_ent
 +#undef  avhv_iterinit
 +#define avhv_iterinit     CPerlObj::Perl_avhv_iterinit
 +#undef  avhv_iternext
 +#define avhv_iternext     CPerlObj::Perl_avhv_iternext
 +#undef  avhv_iterval
 +#define avhv_iterval      CPerlObj::Perl_avhv_iterval
 +#undef  avhv_iternextsv
 +#define avhv_iternextsv   CPerlObj::Perl_avhv_iternextsv
 +#undef  bad_type
 +#define bad_type          CPerlObj::bad_type
 +#undef  bind_match
 +#define bind_match        CPerlObj::Perl_bind_match
 +#undef  block_end
 +#define block_end         CPerlObj::Perl_block_end
 +#undef  block_gimme
 +#define block_gimme       CPerlObj::Perl_block_gimme
 +#undef  block_start
 +#define block_start       CPerlObj::Perl_block_start
 +#undef  bset_obj_store
 +#define bset_obj_store    CPerlObj::Perl_bset_obj_store
 +#undef  byterun
 +#define byterun           CPerlObj::Perl_byterun
 +#undef  call_list
 +#define call_list         CPerlObj::Perl_call_list
 +#undef  cando
 +#define cando             CPerlObj::Perl_cando
 +#undef  cast_ulong
 +#define cast_ulong        CPerlObj::cast_ulong
 +#undef  checkcomma
 +#define checkcomma        CPerlObj::Perl_checkcomma
 +#undef  check_uni
 +#define check_uni         CPerlObj::Perl_check_uni
 +#undef  ck_anoncode
 +#define ck_anoncode       CPerlObj::Perl_ck_anoncode
 +#undef  ck_bitop
 +#define ck_bitop          CPerlObj::Perl_ck_bitop
 +#undef  ck_concat
 +#define ck_concat         CPerlObj::Perl_ck_concat
 +#undef  ck_delete
 +#define ck_delete         CPerlObj::Perl_ck_delete
 +#undef  ck_eof
 +#define ck_eof            CPerlObj::Perl_ck_eof
 +#undef  ck_eval
 +#define ck_eval           CPerlObj::Perl_ck_eval
 +#undef  ck_exec
 +#define ck_exec           CPerlObj::Perl_ck_exec
 +#undef  ck_exists
 +#define ck_exists         CPerlObj::Perl_ck_exists
 +#undef  ck_formline
 +#define ck_formline       CPerlObj::Perl_ck_formline
 +#undef  ck_ftst
 +#define ck_ftst           CPerlObj::Perl_ck_ftst
 +#undef  ck_fun
 +#define ck_fun            CPerlObj::Perl_ck_fun
 +#undef  ck_fun_locale
 +#define ck_fun_locale     CPerlObj::Perl_ck_fun_locale
 +#undef  ck_glob
 +#define ck_glob           CPerlObj::Perl_ck_glob
 +#undef  ck_grep
 +#define ck_grep           CPerlObj::Perl_ck_grep
 +#undef  ck_gvconst
 +#define ck_gvconst        CPerlObj::Perl_ck_gvconst
 +#undef  ck_index
 +#define ck_index          CPerlObj::Perl_ck_index
 +#undef  ck_lengthconst
 +#define ck_lengthconst    CPerlObj::Perl_ck_lengthconst
 +#undef  ck_lfun
 +#define ck_lfun           CPerlObj::Perl_ck_lfun
 +#undef  ck_listiob
 +#define ck_listiob        CPerlObj::Perl_ck_listiob
 +#undef  ck_match
 +#define ck_match          CPerlObj::Perl_ck_match
 +#undef  ck_null
 +#define ck_null           CPerlObj::Perl_ck_null
 +#undef  ck_repeat
 +#define ck_repeat         CPerlObj::Perl_ck_repeat
 +#undef  ck_require
 +#define ck_require        CPerlObj::Perl_ck_require
 +#undef  ck_retarget
 +#define ck_retarget       CPerlObj::Perl_ck_retarget
 +#undef  ck_rfun
 +#define ck_rfun           CPerlObj::Perl_ck_rfun
 +#undef  ck_rvconst
 +#define ck_rvconst        CPerlObj::Perl_ck_rvconst
 +#undef  ck_scmp
 +#define ck_scmp           CPerlObj::Perl_ck_scmp
 +#undef  ck_select
 +#define ck_select         CPerlObj::Perl_ck_select
 +#undef  ck_shift
 +#define ck_shift          CPerlObj::Perl_ck_shift
 +#undef  ck_sort
 +#define ck_sort           CPerlObj::Perl_ck_sort
 +#undef  ck_spair
 +#define ck_spair          CPerlObj::Perl_ck_spair
 +#undef  ck_split
 +#define ck_split          CPerlObj::Perl_ck_split
 +#undef  ck_subr
 +#define ck_subr           CPerlObj::Perl_ck_subr
 +#undef  ck_svconst
 +#define ck_svconst        CPerlObj::Perl_ck_svconst
 +#undef  ck_trunc
 +#define ck_trunc          CPerlObj::Perl_ck_trunc
 +#undef  convert
 +#define convert           CPerlObj::Perl_convert
 +#undef  cpytill
 +#define cpytill           CPerlObj::Perl_cpytill
 +#undef  croak
 +#define croak             CPerlObj::Perl_croak
 +#undef  cv_ckproto
 +#define cv_ckproto        CPerlObj::Perl_cv_ckproto
 +#undef  cv_clone
 +#define cv_clone          CPerlObj::Perl_cv_clone
 +#undef  cv_clone2
 +#define cv_clone2         CPerlObj::cv_clone2
 +#undef  cv_const_sv
 +#define cv_const_sv       CPerlObj::Perl_cv_const_sv
 +#undef  cv_undef 
 +#define cv_undef          CPerlObj::Perl_cv_undef 
 +#undef  cx_dump
 +#define cx_dump           CPerlObj::Perl_cx_dump
 +#undef  cxinc
 +#define cxinc             CPerlObj::Perl_cxinc
 +#undef  deb
 +#define deb               CPerlObj::Perl_deb
 +#undef  deb_growlevel
 +#define deb_growlevel     CPerlObj::Perl_deb_growlevel
 +#undef  debop
 +#define debop             CPerlObj::Perl_debop
 +#undef  debstackptrs
 +#define debstackptrs      CPerlObj::Perl_debstackptrs
 +#undef  debprof
 +#define debprof           CPerlObj::debprof
 +#undef  debprofdump
 +#define debprofdump       CPerlObj::Perl_debprofdump
 +#undef  debstack
 +#define debstack          CPerlObj::Perl_debstack
 +#undef  del_sv
 +#define del_sv            CPerlObj::del_sv
 +#undef  del_xiv
 +#define del_xiv           CPerlObj::del_xiv
 +#undef  del_xnv
 +#define del_xnv           CPerlObj::del_xnv
 +#undef  del_xpv
 +#define del_xpv           CPerlObj::del_xpv
 +#undef  del_xrv
 +#define del_xrv           CPerlObj::del_xrv
 +#undef  delimcpy
 +#define delimcpy          CPerlObj::Perl_delimcpy
 +#undef  depcom
 +#define depcom            CPerlObj::depcom
 +#undef  deprecate
 +#define deprecate         CPerlObj::Perl_deprecate
 +#undef  die
 +#define die               CPerlObj::Perl_die
 +#undef  die_where
 +#define die_where         CPerlObj::Perl_die_where
 +#undef  div128
 +#define div128            CPerlObj::div128
 +#undef  doencodes
 +#define doencodes         CPerlObj::doencodes
 +#undef  doeval
 +#define doeval            CPerlObj::doeval
 +#undef  doform
 +#define doform            CPerlObj::doform
 +#undef  dofindlabel
 +#define dofindlabel       CPerlObj::Perl_dofindlabel
 +#undef  doparseform
 +#define doparseform       CPerlObj::doparseform
 +#undef  dopoptoeval
 +#define dopoptoeval       CPerlObj::Perl_dopoptoeval
 +#undef  dopoptolabel
 +#define dopoptolabel      CPerlObj::dopoptolabel
 +#undef  dopoptoloop
 +#define dopoptoloop       CPerlObj::dopoptoloop
 +#undef  dopoptosub
 +#define dopoptosub        CPerlObj::dopoptosub
 +#undef  dounwind
 +#define dounwind          CPerlObj::Perl_dounwind
 +#undef  do_aexec
 +#define do_aexec          CPerlObj::Perl_do_aexec
 +#undef  do_aspawn
 +#define do_aspawn         CPerlObj::do_aspawn
 +#undef  do_chop
 +#define do_chop           CPerlObj::Perl_do_chop
 +#undef  do_close
 +#define do_close          CPerlObj::Perl_do_close
 +#undef  do_eof
 +#define do_eof            CPerlObj::Perl_do_eof
 +#undef  do_exec
 +#define do_exec           CPerlObj::Perl_do_exec
 +#undef  do_execfree
 +#define do_execfree       CPerlObj::Perl_do_execfree
 +#undef  do_ipcctl
 +#define do_ipcctl         CPerlObj::Perl_do_ipcctl
 +#undef  do_ipcget
 +#define do_ipcget         CPerlObj::Perl_do_ipcget
 +#undef  do_join
 +#define do_join           CPerlObj::Perl_do_join
 +#undef  do_kv
 +#define do_kv             CPerlObj::Perl_do_kv
 +#undef  do_msgrcv
 +#define do_msgrcv         CPerlObj::Perl_do_msgrcv
 +#undef  do_msgsnd
 +#define do_msgsnd         CPerlObj::Perl_do_msgsnd
 +#undef  do_open
 +#define do_open           CPerlObj::Perl_do_open
 +#undef  do_pipe
 +#define do_pipe           CPerlObj::Perl_do_pipe
 +#undef  do_print
 +#define do_print          CPerlObj::Perl_do_print
 +#undef  do_readline
 +#define do_readline       CPerlObj::Perl_do_readline
 +#undef  do_chomp
 +#define do_chomp          CPerlObj::Perl_do_chomp
 +#undef  do_seek
 +#define do_seek           CPerlObj::Perl_do_seek
 +#undef  do_semop
 +#define do_semop          CPerlObj::Perl_do_semop
 +#undef  do_shmio
 +#define do_shmio          CPerlObj::Perl_do_shmio
 +#undef  do_sprintf
 +#define do_sprintf        CPerlObj::Perl_do_sprintf
 +#undef  do_sysseek
 +#define do_sysseek        CPerlObj::Perl_do_sysseek
 +#undef  do_tell
 +#define do_tell           CPerlObj::Perl_do_tell
 +#undef  do_trans
 +#define do_trans          CPerlObj::Perl_do_trans
 +#undef  do_vecset
 +#define do_vecset         CPerlObj::Perl_do_vecset
 +#undef  do_vop
 +#define do_vop            CPerlObj::Perl_do_vop
 +#undef  do_clean_all
 +#define do_clean_all      CPerlObj::do_clean_all
 +#undef  do_clean_named_objs
 +#define do_clean_named_objs   CPerlObj::do_clean_named_objs
 +#undef  do_clean_objs
 +#define do_clean_objs     CPerlObj::do_clean_objs
 +#undef  do_report_used
 +#define do_report_used    CPerlObj::do_report_used
 +#undef  docatch
 +#define docatch           CPerlObj::docatch
 +#undef  dowantarray
 +#define dowantarray       CPerlObj::Perl_dowantarray
 +#undef  dump
 +#define dump              CPerlObj::dump
 +#undef  dump_all
 +#define dump_all          CPerlObj::Perl_dump_all
 +#undef  dump_eval
 +#define dump_eval         CPerlObj::Perl_dump_eval
 +#undef  dump_fds
 +#define dump_fds          CPerlObj::Perl_dump_fds
 +#undef  dump_form
 +#define dump_form         CPerlObj::Perl_dump_form
 +#undef  dump_gv
 +#define dump_gv           CPerlObj::Perl_dump_gv
 +#undef  dump_op
 +#define dump_op           CPerlObj::Perl_dump_op
 +#undef  dump_pm
 +#define dump_pm           CPerlObj::Perl_dump_pm
 +#undef  dump_packsubs
 +#define dump_packsubs     CPerlObj::Perl_dump_packsubs
 +#undef  dump_sub
 +#define dump_sub          CPerlObj::Perl_dump_sub
 +#undef  dumpuntil
 +#define dumpuntil         CPerlObj::dumpuntil
 +#undef  fbm_compile
 +#define fbm_compile       CPerlObj::Perl_fbm_compile
 +#undef  fbm_instr
 +#define fbm_instr         CPerlObj::Perl_fbm_instr
 +#undef  filter_add
 +#define filter_add        CPerlObj::Perl_filter_add
 +#undef  filter_del
 +#define filter_del        CPerlObj::Perl_filter_del
 +#undef  filter_gets
 +#define filter_gets       CPerlObj::filter_gets
 +#undef  filter_read
 +#define filter_read       CPerlObj::Perl_filter_read
 +#undef  find_beginning
 +#define find_beginning    CPerlObj::find_beginning
 +#undef  forbid_setid
 +#define forbid_setid      CPerlObj::forbid_setid
 +#undef  force_ident
 +#define force_ident       CPerlObj::Perl_force_ident
 +#undef  force_list
 +#define force_list        CPerlObj::Perl_force_list
 +#undef  force_next
 +#define force_next        CPerlObj::Perl_force_next
 +#undef  force_word
 +#define force_word        CPerlObj::Perl_force_word
 +#undef  force_version
 +#define force_version     CPerlObj::force_version
 +#undef  form
 +#define form              CPerlObj::Perl_form
 +#undef  fold_constants
 +#define fold_constants    CPerlObj::Perl_fold_constants
 +#undef  fprintf
 +#define fprintf           CPerlObj::fprintf
 +#undef  free_tmps
 +#define free_tmps         CPerlObj::Perl_free_tmps
 +#undef  gen_constant_list
 +#define gen_constant_list CPerlObj::Perl_gen_constant_list
 +#undef  get_db_sub
 +#define get_db_sub        CPerlObj::get_db_sub
 +#undef  get_op_descs
 +#define get_op_descs      CPerlObj::Perl_get_op_descs
 +#undef  get_op_names
 +#define get_op_names      CPerlObj::Perl_get_op_names
 +#undef  getlogin
 +#define getlogin          CPerlObj::getlogin
 +#undef  gp_free
 +#define gp_free           CPerlObj::Perl_gp_free
 +#undef  gp_ref
 +#define gp_ref            CPerlObj::Perl_gp_ref
 +#undef  gv_autoload4
 +#define gv_autoload4      CPerlObj::Perl_gv_autoload4
 +#undef  gv_AVadd
 +#define gv_AVadd          CPerlObj::Perl_gv_AVadd
 +#undef  gv_HVadd
 +#define gv_HVadd          CPerlObj::Perl_gv_HVadd
 +#undef  gv_IOadd
 +#define gv_IOadd          CPerlObj::Perl_gv_IOadd
 +#undef  gv_check
 +#define gv_check          CPerlObj::Perl_gv_check
 +#undef  gv_efullname
 +#define gv_efullname      CPerlObj::Perl_gv_efullname
 +#undef  gv_efullname3
 +#define gv_efullname3     CPerlObj::Perl_gv_efullname3
 +#undef  gv_ename
 +#define gv_ename          CPerlObj::gv_ename
 +#undef  gv_fetchfile
 +#define gv_fetchfile      CPerlObj::Perl_gv_fetchfile
 +#undef  gv_fetchmeth
 +#define gv_fetchmeth      CPerlObj::Perl_gv_fetchmeth
 +#undef  gv_fetchmethod
 +#define gv_fetchmethod    CPerlObj::Perl_gv_fetchmethod
 +#undef  gv_fetchmethod_autoload
 +#define gv_fetchmethod_autoload  CPerlObj::Perl_gv_fetchmethod_autoload
 +#undef  gv_fetchpv
 +#define gv_fetchpv        CPerlObj::Perl_gv_fetchpv
 +#undef  gv_fullname
 +#define gv_fullname       CPerlObj::Perl_gv_fullname
 +#undef  gv_fullname3
 +#define gv_fullname3      CPerlObj::Perl_gv_fullname3
 +#undef  gv_init
 +#define gv_init           CPerlObj::Perl_gv_init
 +#undef  gv_init_sv
 +#define gv_init_sv        CPerlObj::gv_init_sv
 +#undef  gv_stashpv
 +#define gv_stashpv        CPerlObj::Perl_gv_stashpv
 +#undef  gv_stashpvn
 +#define gv_stashpvn       CPerlObj::Perl_gv_stashpvn
 +#undef  gv_stashsv
 +#define gv_stashsv        CPerlObj::Perl_gv_stashsv
 +#undef  he_delayfree
 +#define he_delayfree      CPerlObj::Perl_he_delayfree
 +#undef  he_free
 +#define he_free           CPerlObj::Perl_he_free
 +#undef  hfreeentries
 +#define hfreeentries      CPerlObj::hfreeentries
 +#undef  hoistmust
 +#define hoistmust         CPerlObj::Perl_hoistmust
 +#undef  hsplit
 +#define hsplit            CPerlObj::hsplit
 +#undef  hv_clear
 +#define hv_clear          CPerlObj::Perl_hv_clear
 +#undef  hv_delayfree_ent
 +#define hv_delayfree_ent  CPerlObj::Perl_hv_delayfree_ent
 +#undef  hv_delete
 +#define hv_delete         CPerlObj::Perl_hv_delete
 +#undef  hv_delete_ent
 +#define hv_delete_ent     CPerlObj::Perl_hv_delete_ent
 +#undef  hv_exists
 +#define hv_exists         CPerlObj::Perl_hv_exists
 +#undef  hv_exists_ent
 +#define hv_exists_ent     CPerlObj::Perl_hv_exists_ent
 +#undef  hv_free_ent
 +#define hv_free_ent       CPerlObj::Perl_hv_free_ent
 +#undef  hv_fetch
 +#define hv_fetch          CPerlObj::Perl_hv_fetch
 +#undef  hv_fetch_ent
 +#define hv_fetch_ent      CPerlObj::Perl_hv_fetch_ent
 +#undef  hv_iterinit
 +#define hv_iterinit       CPerlObj::Perl_hv_iterinit
 +#undef  hv_iterkey
 +#define hv_iterkey        CPerlObj::Perl_hv_iterkey
 +#undef  hv_iterkeysv
 +#define hv_iterkeysv      CPerlObj::Perl_hv_iterkeysv
 +#undef  hv_iternext
 +#define hv_iternext       CPerlObj::Perl_hv_iternext
 +#undef  hv_iternextsv
 +#define hv_iternextsv     CPerlObj::Perl_hv_iternextsv
 +#undef  hv_iterval
 +#define hv_iterval        CPerlObj::Perl_hv_iterval
 +#undef  hv_ksplit
 +#define hv_ksplit         CPerlObj::Perl_hv_ksplit
 +#undef  hv_magic
 +#define hv_magic          CPerlObj::Perl_hv_magic
 +#undef  hv_store
 +#define hv_store          CPerlObj::Perl_hv_store
 +#undef  hv_store_ent
 +#define hv_store_ent      CPerlObj::Perl_hv_store_ent
 +#undef  hv_undef 
 +#define hv_undef          CPerlObj::Perl_hv_undef 
 +#undef  ibcmp
 +#define ibcmp             CPerlObj::Perl_ibcmp
 +#undef  ibcmp_locale
 +#define ibcmp_locale      CPerlObj::Perl_ibcmp_locale
 +#undef  incpush
 +#define incpush           CPerlObj::incpush
 +#undef  incline
 +#define incline           CPerlObj::incline
 +#undef  incl_perldb
 +#define incl_perldb       CPerlObj::incl_perldb
 +#undef  ingroup
 +#define ingroup           CPerlObj::Perl_ingroup
 +#undef  init_debugger
 +#define init_debugger     CPerlObj::init_debugger
 +#undef  init_ids
 +#define init_ids          CPerlObj::init_ids
 +#undef  init_main_thread
 +#define init_main_thread  CPerlObj::init_main_thread
 +#undef  init_main_stash
 +#define init_main_stash   CPerlObj::init_main_stash
 +#undef  init_lexer
 +#define init_lexer        CPerlObj::init_lexer
 +#undef  init_perllib
 +#define init_perllib      CPerlObj::init_perllib
 +#undef  init_predump_symbols
 +#define init_predump_symbols  CPerlObj::init_predump_symbols
 +#undef  init_postdump_symbols
 +#define init_postdump_symbols  CPerlObj::init_postdump_symbols
 +#undef  init_stacks
 +#define init_stacks       CPerlObj::Perl_init_stacks
 +#undef  intro_my
 +#define intro_my          CPerlObj::Perl_intro_my
 +#undef  nuke_stacks
 +#define nuke_stacks       CPerlObj::nuke_stacks
 +#undef  instr
 +#define instr             CPerlObj::Perl_instr
 +#undef  intuit_method
 +#define intuit_method     CPerlObj::intuit_method
 +#undef  intuit_more
 +#define intuit_more       CPerlObj::Perl_intuit_more
 +#undef  invert
 +#define invert            CPerlObj::Perl_invert
 +#undef  io_close
 +#define io_close          CPerlObj::Perl_io_close
 +#undef  is_an_int
 +#define is_an_int         CPerlObj::is_an_int
 +#undef  isa_lookup
 +#define isa_lookup        CPerlObj::isa_lookup
 +#undef  jmaybe
 +#define jmaybe            CPerlObj::Perl_jmaybe
 +#undef  keyword
 +#define keyword           CPerlObj::Perl_keyword
 +#undef  leave_scope
 +#define leave_scope       CPerlObj::Perl_leave_scope
 +#undef  lex_end
 +#define lex_end           CPerlObj::Perl_lex_end
 +#undef  lex_start
 +#define lex_start         CPerlObj::Perl_lex_start
 +#undef  linklist
 +#define linklist          CPerlObj::Perl_linklist
 +#undef  list
 +#define list              CPerlObj::Perl_list
 +#undef  list_assignment
 +#define list_assignment   CPerlObj::list_assignment
 +#undef  listkids
 +#define listkids          CPerlObj::Perl_listkids
 +#undef  lop
 +#define lop               CPerlObj::lop
 +#undef  localize
 +#define localize          CPerlObj::Perl_localize
 +#undef  looks_like_number
 +#define looks_like_number CPerlObj::Perl_looks_like_number
 +#undef  magic_clearenv
 +#define magic_clearenv    CPerlObj::Perl_magic_clearenv
 +#undef  magic_clear_all_env
 +#define magic_clear_all_env CPerlObj::Perl_magic_clear_all_env
 +#undef  magic_clearpack
 +#define magic_clearpack   CPerlObj::Perl_magic_clearpack
 +#undef  magic_clearsig
 +#define magic_clearsig    CPerlObj::Perl_magic_clearsig
 +#undef  magic_existspack
 +#define magic_existspack  CPerlObj::Perl_magic_existspack
 +#undef  magic_freedefelem
 +#define magic_freedefelem CPerlObj::Perl_magic_freedefelem
 +#undef  magic_freeregexp
 +#define magic_freeregexp  CPerlObj::Perl_magic_freeregexp
 +#undef  magic_get
 +#define magic_get         CPerlObj::Perl_magic_get
 +#undef  magic_getarylen
 +#define magic_getarylen   CPerlObj::Perl_magic_getarylen
 +#undef  magic_getdefelem
 +#define magic_getdefelem  CPerlObj::Perl_magic_getdefelem
 +#undef  magic_getpack
 +#define magic_getpack     CPerlObj::Perl_magic_getpack
 +#undef  magic_getglob
 +#define magic_getglob     CPerlObj::Perl_magic_getglob
 +#undef  magic_getpos
 +#define magic_getpos      CPerlObj::Perl_magic_getpos
 +#undef  magic_getsig
 +#define magic_getsig      CPerlObj::Perl_magic_getsig
 +#undef  magic_gettaint
 +#define magic_gettaint    CPerlObj::Perl_magic_gettaint
 +#undef  magic_getuvar
 +#define magic_getuvar     CPerlObj::Perl_magic_getuvar
 +#undef  magic_len
 +#define magic_len         CPerlObj::Perl_magic_len
 +#undef  magic_methcall
 +#define magic_methcall    CPerlObj::magic_methcall
 +#undef  magic_methpack
 +#define magic_methpack    CPerlObj::magic_methpack
 +#undef  magic_nextpack
 +#define magic_nextpack    CPerlObj::Perl_magic_nextpack
 +#undef  magic_set
 +#define magic_set         CPerlObj::Perl_magic_set
 +#undef  magic_set_all_env
 +#define magic_set_all_env CPerlObj::Perl_magic_set_all_env
 +#undef  magic_setamagic
 +#define magic_setamagic   CPerlObj::Perl_magic_setamagic
 +#undef  magic_setarylen
 +#define magic_setarylen   CPerlObj::Perl_magic_setarylen
 +#undef  magic_setbm
 +#define magic_setbm       CPerlObj::Perl_magic_setbm
 +#undef  magic_setcollxfrm
 +#define magic_setcollxfrm CPerlObj::Perl_magic_setcollxfrm
 +#undef  magic_setdbline
 +#define magic_setdbline   CPerlObj::Perl_magic_setdbline
 +#undef  magic_setdefelem
 +#define magic_setdefelem  CPerlObj::Perl_magic_setdefelem
 +#undef  magic_setenv
 +#define magic_setenv      CPerlObj::Perl_magic_setenv
 +#undef  magic_setfm
 +#define magic_setfm       CPerlObj::Perl_magic_setfm
 +#undef  magic_setisa
 +#define magic_setisa      CPerlObj::Perl_magic_setisa
 +#undef  magic_setglob
 +#define magic_setglob     CPerlObj::Perl_magic_setglob
 +#undef  magic_setmglob
 +#define magic_setmglob    CPerlObj::Perl_magic_setmglob
 +#undef  magic_setnkeys
 +#define magic_setnkeys    CPerlObj::Perl_magic_setnkeys
 +#undef  magic_setpack
 +#define magic_setpack     CPerlObj::Perl_magic_setpack
 +#undef  magic_setpos
 +#define magic_setpos      CPerlObj::Perl_magic_setpos
 +#undef  magic_setsig
 +#define magic_setsig      CPerlObj::Perl_magic_setsig
 +#undef  magic_setsubstr
 +#define magic_setsubstr   CPerlObj::Perl_magic_setsubstr
 +#undef  magic_settaint
 +#define magic_settaint    CPerlObj::Perl_magic_settaint
 +#undef  magic_setuvar
 +#define magic_setuvar     CPerlObj::Perl_magic_setuvar
 +#undef  magic_setvec
 +#define magic_setvec      CPerlObj::Perl_magic_setvec
 +#undef  magic_sizepack
 +#define magic_sizepack    CPerlObj::Perl_magic_sizepack
 +#undef  magic_wipepack
 +#define magic_wipepack    CPerlObj::Perl_magic_wipepack
 +#undef  magicname
 +#define magicname         CPerlObj::Perl_magicname
 +#undef  markstack_grow
 +#define markstack_grow    CPerlObj::Perl_markstack_grow
 +#undef  markstack_ptr
 +#define markstack_ptr     CPerlObj::Perl_markstack_ptr
 +#undef  mess
 +#define mess              CPerlObj::Perl_mess
 +#undef  mess_alloc
 +#define mess_alloc        CPerlObj::mess_alloc
 +#undef  mem_collxfrm
 +#define mem_collxfrm      CPerlObj::Perl_mem_collxfrm
 +#undef  mg_clear
 +#define mg_clear          CPerlObj::Perl_mg_clear
 +#undef  mg_copy
 +#define mg_copy           CPerlObj::Perl_mg_copy
 +#undef  mg_find
 +#define mg_find           CPerlObj::Perl_mg_find
 +#undef  mg_free
 +#define mg_free           CPerlObj::Perl_mg_free
 +#undef  mg_get
 +#define mg_get            CPerlObj::Perl_mg_get
 +#undef  mg_length
 +#define mg_length         CPerlObj::Perl_mg_length
 +#undef  mg_magical
 +#define mg_magical        CPerlObj::Perl_mg_magical
 +#undef  mg_set
 +#define mg_set            CPerlObj::Perl_mg_set
 +#undef  mg_size
 +#define mg_size           CPerlObj::Perl_mg_size
 +#undef  missingterm
 +#define missingterm       CPerlObj::missingterm
 +#undef  mod
 +#define mod               CPerlObj::Perl_mod
 +#undef  modkids
 +#define modkids           CPerlObj::Perl_modkids
 +#undef  moreswitches
 +#define moreswitches      CPerlObj::Perl_moreswitches
 +#undef  more_sv
 +#define more_sv           CPerlObj::more_sv
 +#undef  more_xiv
 +#define more_xiv          CPerlObj::more_xiv
 +#undef  more_xnv
 +#define more_xnv          CPerlObj::more_xnv
 +#undef  more_xpv
 +#define more_xpv          CPerlObj::more_xpv
 +#undef  more_xrv
 +#define more_xrv          CPerlObj::more_xrv
 +#undef  mstats
 +#define mstats            CPerlObj::mstats
 +#undef  mul128
 +#define mul128            CPerlObj::mul128
 +#undef  my
 +#define my                CPerlObj::Perl_my
 +#undef  my_bcopy
 +#define my_bcopy          CPerlObj::Perl_my_bcopy
 +#undef  my_bzero
 +#define my_bzero          CPerlObj::Perl_my_bzero
 +#undef  my_exit
 +#define my_exit           CPerlObj::Perl_my_exit
 +#undef  my_exit_jump
 +#define my_exit_jump      CPerlObj::my_exit_jump
 +#undef  my_failure_exit
 +#define my_failure_exit   CPerlObj::Perl_my_failure_exit
 +#undef  my_lstat
 +#define my_lstat          CPerlObj::Perl_my_lstat
 +#undef  my_memcmp
 +#define my_memcmp         CPerlObj::my_memcmp
 +#undef  my_pclose
 +#define my_pclose         CPerlObj::Perl_my_pclose
 +#undef  my_popen
 +#define my_popen          CPerlObj::Perl_my_popen
 +#undef  my_safemalloc
 +#define my_safemalloc     CPerlObj::my_safemalloc
 +#undef  my_setenv
 +#define my_setenv         CPerlObj::Perl_my_setenv
 +#undef  my_stat
 +#define my_stat           CPerlObj::Perl_my_stat
 +#undef  my_swap
 +#define my_swap           CPerlObj::my_swap
 +#undef  my_htonl
 +#define my_htonl          CPerlObj::my_htonl
 +#undef  my_ntohl
 +#define my_ntohl          CPerlObj::my_ntohl
 +#undef  my_unexec
 +#define my_unexec         CPerlObj::Perl_my_unexec
 +#undef  newANONLIST
 +#define newANONLIST       CPerlObj::Perl_newANONLIST
 +#undef  newANONHASH
 +#define newANONHASH       CPerlObj::Perl_newANONHASH
 +#undef  newANONSUB
 +#define newANONSUB        CPerlObj::Perl_newANONSUB
 +#undef  newASSIGNOP
 +#define newASSIGNOP       CPerlObj::Perl_newASSIGNOP
 +#undef  newCONDOP
 +#define newCONDOP         CPerlObj::Perl_newCONDOP
++#undef  newCONSTSUB
++#define newCONSTSUB       CPerlObj::Perl_newCONSTSUB
 +#undef  newDEFSVOP
 +#define newDEFSVOP        CPerlObj::newDEFSVOP
 +#undef  newFORM
 +#define newFORM           CPerlObj::Perl_newFORM
 +#undef  newFOROP
 +#define newFOROP          CPerlObj::Perl_newFOROP
 +#undef  newLOGOP
 +#define newLOGOP          CPerlObj::Perl_newLOGOP
 +#undef  newLOOPEX
 +#define newLOOPEX         CPerlObj::Perl_newLOOPEX
 +#undef  newLOOPOP
 +#define newLOOPOP         CPerlObj::Perl_newLOOPOP
 +#undef  newMETHOD
 +#define newMETHOD         CPerlObj::Perl_newMETHOD
 +#undef  newNULLLIST
 +#define newNULLLIST       CPerlObj::Perl_newNULLLIST
 +#undef  newOP
 +#define newOP             CPerlObj::Perl_newOP
 +#undef  newPROG
 +#define newPROG           CPerlObj::Perl_newPROG
 +#undef  newRANGE
 +#define newRANGE          CPerlObj::Perl_newRANGE
 +#undef  newSLICEOP
 +#define newSLICEOP        CPerlObj::Perl_newSLICEOP
 +#undef  newSTATEOP
 +#define newSTATEOP        CPerlObj::Perl_newSTATEOP
 +#undef  newSUB
 +#define newSUB            CPerlObj::Perl_newSUB
 +#undef  newXS
 +#define newXS             CPerlObj::Perl_newXS
 +#undef  newXSUB
 +#define newXSUB           CPerlObj::Perl_newXSUB
 +#undef  newAV
 +#define newAV             CPerlObj::Perl_newAV
 +#undef  newAVREF
 +#define newAVREF          CPerlObj::Perl_newAVREF
 +#undef  newBINOP
 +#define newBINOP          CPerlObj::Perl_newBINOP
 +#undef  newCVREF
 +#define newCVREF          CPerlObj::Perl_newCVREF
 +#undef  newCVOP
 +#define newCVOP           CPerlObj::Perl_newCVOP
 +#undef  newGVOP
 +#define newGVOP           CPerlObj::Perl_newGVOP
 +#undef  newGVgen
 +#define newGVgen          CPerlObj::Perl_newGVgen
 +#undef  newGVREF
 +#define newGVREF          CPerlObj::Perl_newGVREF
 +#undef  newHVREF
 +#define newHVREF          CPerlObj::Perl_newHVREF
 +#undef  newHV
 +#define newHV             CPerlObj::Perl_newHV
 +#undef  newIO
 +#define newIO             CPerlObj::Perl_newIO
 +#undef  newLISTOP
 +#define newLISTOP         CPerlObj::Perl_newLISTOP
 +#undef  newPMOP
 +#define newPMOP           CPerlObj::Perl_newPMOP
 +#undef  newPVOP
 +#define newPVOP           CPerlObj::Perl_newPVOP
 +#undef  newRV
 +#define newRV             CPerlObj::Perl_newRV
 +#undef  Perl_newRV_noinc
 +#define Perl_newRV_noinc  CPerlObj::Perl_newRV_noinc
 +#undef  newSV
 +#define newSV             CPerlObj::Perl_newSV
 +#undef  newSVREF
 +#define newSVREF          CPerlObj::Perl_newSVREF
 +#undef  newSVOP
 +#define newSVOP           CPerlObj::Perl_newSVOP
 +#undef  newSViv
 +#define newSViv           CPerlObj::Perl_newSViv
 +#undef  newSVnv
 +#define newSVnv           CPerlObj::Perl_newSVnv
 +#undef  newSVpv
 +#define newSVpv           CPerlObj::Perl_newSVpv
 +#undef  newSVpvf
 +#define newSVpvf          CPerlObj::Perl_newSVpvf
 +#undef  newSVpvn
 +#define newSVpvn          CPerlObj::Perl_newSVpvn
 +#undef  newSVrv
 +#define newSVrv           CPerlObj::Perl_newSVrv
 +#undef  newSVsv
 +#define newSVsv           CPerlObj::Perl_newSVsv
 +#undef  newUNOP
 +#define newUNOP           CPerlObj::Perl_newUNOP
 +#undef  newWHILEOP
 +#define newWHILEOP        CPerlObj::Perl_newWHILEOP
 +#undef  new_logop
 +#define new_logop         CPerlObj::new_logop
 +#undef  new_sv
 +#define new_sv            CPerlObj::new_sv
 +#undef  new_xiv
 +#define new_xiv           CPerlObj::new_xiv
 +#undef  new_xnv
 +#define new_xnv           CPerlObj::new_xnv
 +#undef  new_xpv
 +#define new_xpv           CPerlObj::new_xpv
 +#undef  new_xrv
 +#define new_xrv           CPerlObj::new_xrv
 +#undef  nextargv
 +#define nextargv          CPerlObj::Perl_nextargv
 +#undef  nextchar
 +#define nextchar          CPerlObj::nextchar
 +#undef  ninstr
 +#define ninstr            CPerlObj::Perl_ninstr
 +#undef  not_a_number
 +#define not_a_number      CPerlObj::not_a_number
 +#undef  no_fh_allowed
 +#define no_fh_allowed     CPerlObj::Perl_no_fh_allowed
 +#undef  no_op
 +#define no_op             CPerlObj::Perl_no_op
 +#undef  null
 +#define null              CPerlObj::null
 +#undef  profiledata
 +#define profiledata       CPerlObj::Perl_profiledata
 +#undef  package
 +#define package           CPerlObj::Perl_package
 +#undef  pad_alloc
 +#define pad_alloc         CPerlObj::Perl_pad_alloc
 +#undef  pad_allocmy
 +#define pad_allocmy       CPerlObj::Perl_pad_allocmy
 +#undef  pad_findmy
 +#define pad_findmy        CPerlObj::Perl_pad_findmy
 +#undef  op_free
 +#define op_free           CPerlObj::Perl_op_free
 +#undef  oopsCV
 +#define oopsCV            CPerlObj::Perl_oopsCV
 +#undef  oopsAV
 +#define oopsAV            CPerlObj::Perl_oopsAV
 +#undef  oopsHV
 +#define oopsHV            CPerlObj::Perl_oopsHV
 +#undef  open_script
 +#define open_script       CPerlObj::open_script
 +#undef  pad_leavemy
 +#define pad_leavemy       CPerlObj::Perl_pad_leavemy
 +#undef  pad_sv
 +#define pad_sv            CPerlObj::Perl_pad_sv
 +#undef  pad_findlex
 +#define pad_findlex       CPerlObj::pad_findlex
 +#undef  pad_free
 +#define pad_free          CPerlObj::Perl_pad_free
 +#undef  pad_reset
 +#define pad_reset         CPerlObj::Perl_pad_reset
 +#undef  pad_swipe
 +#define pad_swipe         CPerlObj::Perl_pad_swipe
 +#undef  peep
 +#define peep              CPerlObj::Perl_peep
 +#undef  perl_call_argv
 +#define perl_call_argv    CPerlObj::perl_call_argv
 +#undef  perl_call_method
 +#define perl_call_method  CPerlObj::perl_call_method
 +#undef  perl_call_pv
 +#define perl_call_pv      CPerlObj::perl_call_pv
 +#undef  perl_call_sv
 +#define perl_call_sv      CPerlObj::perl_call_sv
 +#undef  perl_callargv
 +#define perl_callargv     CPerlObj::perl_callargv
 +#undef  perl_callpv
 +#define perl_callpv       CPerlObj::perl_callpv
 +#undef  perl_callsv
 +#define perl_callsv       CPerlObj::perl_callsv
 +#undef  perl_eval_pv
 +#define perl_eval_pv      CPerlObj::perl_eval_pv
 +#undef  perl_eval_sv
 +#define perl_eval_sv      CPerlObj::perl_eval_sv
 +#undef  perl_get_sv
 +#define perl_get_sv       CPerlObj::perl_get_sv
 +#undef  perl_get_av
 +#define perl_get_av       CPerlObj::perl_get_av
 +#undef  perl_get_hv
 +#define perl_get_hv       CPerlObj::perl_get_hv
 +#undef  perl_get_cv
 +#define perl_get_cv       CPerlObj::perl_get_cv
 +#undef  Perl_GetVars
 +#define Perl_GetVars      CPerlObj::Perl_GetVars
 +#undef  perl_init_fold
 +#define perl_init_fold    CPerlObj::perl_init_fold
 +#undef  perl_init_i18nl10n
 +#define perl_init_i18nl10n CPerlObj::perl_init_i18nl10n
 +#undef  perl_init_i18nl14n
 +#define perl_init_i18nl14n CPerlObj::perl_init_i18nl14n
 +#undef  perl_new_collate
 +#define perl_new_collate  CPerlObj::perl_new_collate
 +#undef  perl_new_ctype
 +#define perl_new_ctype    CPerlObj::perl_new_ctype
 +#undef  perl_new_numeric
 +#define perl_new_numeric  CPerlObj::perl_new_numeric
 +#undef  perl_set_numeric_standard
 +#define perl_set_numeric_standard CPerlObj::perl_set_numeric_standard
 +#undef  perl_set_numeric_local
 +#define perl_set_numeric_local CPerlObj::perl_set_numeric_local
 +#undef  perl_require_pv
 +#define perl_require_pv   CPerlObj::perl_require_pv
 +#undef  perl_thread
 +#define perl_thread       CPerlObj::perl_thread
 +#undef  pidgone
 +#define pidgone           CPerlObj::Perl_pidgone
 +#undef  pmflag
 +#define pmflag            CPerlObj::Perl_pmflag
 +#undef  pmruntime
 +#define pmruntime         CPerlObj::Perl_pmruntime
 +#undef  pmtrans
 +#define pmtrans           CPerlObj::Perl_pmtrans
 +#undef  pop_return
 +#define pop_return        CPerlObj::Perl_pop_return
 +#undef  pop_scope
 +#define pop_scope         CPerlObj::Perl_pop_scope
 +#undef  prepend_elem
 +#define prepend_elem      CPerlObj::Perl_prepend_elem
 +#undef  provide_ref
 +#define provide_ref       CPerlObj::Perl_provide_ref
 +#undef  push_return
 +#define push_return       CPerlObj::Perl_push_return
 +#undef  push_scope
 +#define push_scope        CPerlObj::Perl_push_scope
 +#undef  pregcomp
 +#define pregcomp          CPerlObj::Perl_pregcomp
 +#undef  qsortsv
 +#define qsortsv           CPerlObj::qsortsv
 +#undef  ref
 +#define ref               CPerlObj::Perl_ref
 +#undef  refkids
 +#define refkids           CPerlObj::Perl_refkids
 +#undef  regdump
 +#define regdump           CPerlObj::Perl_regdump
 +#undef  rsignal
 +#define rsignal           CPerlObj::Perl_rsignal
 +#undef  rsignal_restore
 +#define rsignal_restore   CPerlObj::Perl_rsignal_restore
 +#undef  rsignal_save
 +#define rsignal_save      CPerlObj::Perl_rsignal_save
 +#undef  rsignal_state
 +#define rsignal_state     CPerlObj::Perl_rsignal_state
 +#undef  pregexec
 +#define pregexec          CPerlObj::Perl_pregexec
 +#undef  pregfree
 +#define pregfree          CPerlObj::Perl_pregfree
 +#undef  re_croak2
 +#define re_croak2         CPerlObj::re_croak2
 +#undef  refto
 +#define refto             CPerlObj::refto
 +#undef  reg
 +#define reg               CPerlObj::reg
 +#undef  reg_node
 +#define reg_node          CPerlObj::reg_node
 +#undef  reganode
 +#define reganode          CPerlObj::reganode
 +#undef  regatom
 +#define regatom           CPerlObj::regatom
 +#undef  regbranch
 +#define regbranch         CPerlObj::regbranch
 +#undef  regc
 +#define regc              CPerlObj::regc
 +#undef  regcurly
 +#define regcurly          CPerlObj::regcurly
 +#undef  regcppush
 +#define regcppush         CPerlObj::regcppush
 +#undef  regcppop
 +#define regcppop          CPerlObj::regcppop
 +#undef  regclass
 +#define regclass          CPerlObj::regclass
 +#undef  regexec_flags
 +#define regexec_flags     CPerlObj::Perl_regexec_flags
 +#undef  reginclass
 +#define reginclass        CPerlObj::reginclass
 +#undef  reginsert
 +#define reginsert         CPerlObj::reginsert
 +#undef  regmatch
 +#define regmatch          CPerlObj::regmatch
 +#undef  regnext
 +#define regnext           CPerlObj::Perl_regnext
 +#undef  regoptail
 +#define regoptail         CPerlObj::regoptail
 +#undef  regpiece
 +#define regpiece          CPerlObj::regpiece
 +#undef  regprop
 +#define regprop           CPerlObj::Perl_regprop
 +#undef  regrepeat
 +#define regrepeat         CPerlObj::regrepeat
 +#undef  regrepeat_hard
 +#define regrepeat_hard    CPerlObj::regrepeat_hard
 +#undef  regset
 +#define regset            CPerlObj::regset
 +#undef  regtail
 +#define regtail           CPerlObj::regtail
 +#undef  regtry
 +#define regtry            CPerlObj::regtry
 +#undef  repeatcpy
 +#define repeatcpy         CPerlObj::Perl_repeatcpy
 +#undef  restore_expect
 +#define restore_expect    CPerlObj::restore_expect
 +#undef  restore_lex_expect
 +#define restore_lex_expect CPerlObj::restore_lex_expect
 +#undef  restore_magic
 +#define restore_magic     CPerlObj::restore_magic
 +#undef  restore_rsfp
 +#define restore_rsfp      CPerlObj::restore_rsfp
 +#undef  rninstr
 +#define rninstr           CPerlObj::Perl_rninstr
 +#undef  runops_standard
 +#define runops_standard   CPerlObj::Perl_runops_standard
 +#undef  runops_debug
 +#define runops_debug      CPerlObj::Perl_runops_debug
 +#undef  rxres_free
 +#define rxres_free        CPerlObj::Perl_rxres_free
 +#undef  rxres_restore
 +#define rxres_restore     CPerlObj::Perl_rxres_restore
 +#undef  rxres_save
 +#define rxres_save        CPerlObj::Perl_rxres_save
 +#ifndef MYMALLOC
 +#undef  safefree
 +#define safefree          CPerlObj::Perl_safefree
 +#undef  safecalloc
 +#define safecalloc        CPerlObj::Perl_safecalloc
 +#undef  safemalloc
 +#define safemalloc        CPerlObj::Perl_safemalloc
 +#undef  saferealloc
 +#define saferealloc       CPerlObj::Perl_saferealloc
 +#endif        /* MYMALLOC */
 +#undef  same_dirent
 +#define same_dirent       CPerlObj::same_dirent
 +#undef  savepv
 +#define savepv            CPerlObj::Perl_savepv
 +#undef  savepvn
 +#define savepvn           CPerlObj::Perl_savepvn
 +#undef  savestack_grow
 +#define savestack_grow    CPerlObj::Perl_savestack_grow
 +#undef  save_aelem
 +#define save_aelem        CPerlObj::Perl_save_aelem
 +#undef  save_aptr
 +#define save_aptr         CPerlObj::Perl_save_aptr
 +#undef  save_ary
 +#define save_ary          CPerlObj::Perl_save_ary
 +#undef  save_clearsv
 +#define save_clearsv      CPerlObj::Perl_save_clearsv
 +#undef  save_delete
 +#define save_delete       CPerlObj::Perl_save_delete
 +#undef  save_destructor
 +#define save_destructor   CPerlObj::Perl_save_destructor
 +#undef  save_freesv
 +#define save_freesv       CPerlObj::Perl_save_freesv
 +#undef  save_freeop
 +#define save_freeop       CPerlObj::Perl_save_freeop
 +#undef  save_freepv
 +#define save_freepv       CPerlObj::Perl_save_freepv
 +#undef  save_gp
 +#define save_gp           CPerlObj::Perl_save_gp
 +#undef  save_hash
 +#define save_hash         CPerlObj::Perl_save_hash
 +#undef  save_hek
 +#define save_hek          CPerlObj::save_hek
 +#undef  save_helem
 +#define save_helem        CPerlObj::Perl_save_helem
 +#undef  save_hptr
 +#define save_hptr         CPerlObj::Perl_save_hptr
 +#undef  save_I16
 +#define save_I16          CPerlObj::Perl_save_I16
 +#undef  save_I32
 +#define save_I32          CPerlObj::Perl_save_I32
 +#undef  save_int
 +#define save_int          CPerlObj::Perl_save_int
 +#undef  save_item
 +#define save_item         CPerlObj::Perl_save_item
 +#undef  save_iv
 +#define save_iv           CPerlObj::Perl_save_iv
 +#undef  save_lines
 +#define save_lines        CPerlObj::save_lines
 +#undef  save_list
 +#define save_list         CPerlObj::Perl_save_list
 +#undef  save_long
 +#define save_long         CPerlObj::Perl_save_long
 +#undef  save_magic
 +#define save_magic        CPerlObj::save_magic
 +#undef  save_nogv
 +#define save_nogv         CPerlObj::Perl_save_nogv
 +#undef  save_op
 +#define save_op           CPerlObj::Perl_save_op
 +#undef  save_scalar
 +#define save_scalar       CPerlObj::Perl_save_scalar
 +#undef  save_scalar_at
 +#define save_scalar_at    CPerlObj::save_scalar_at
 +#undef  save_pptr
 +#define save_pptr         CPerlObj::Perl_save_pptr
 +#undef  save_sptr
 +#define save_sptr         CPerlObj::Perl_save_sptr
 +#undef  save_svref
 +#define save_svref        CPerlObj::Perl_save_svref
 +#undef  save_threadsv
 +#define save_threadsv     CPerlObj::Perl_save_threadsv
 +#undef  sawparens
 +#define sawparens         CPerlObj::Perl_sawparens
 +#undef  scalar
 +#define scalar            CPerlObj::Perl_scalar
 +#undef  scalarboolean
 +#define scalarboolean     CPerlObj::scalarboolean
 +#undef  scalarkids
 +#define scalarkids        CPerlObj::Perl_scalarkids
 +#undef  scalarseq
 +#define scalarseq         CPerlObj::Perl_scalarseq
 +#undef  scalarvoid
 +#define scalarvoid        CPerlObj::Perl_scalarvoid
 +#undef  scan_commit
 +#define scan_commit       CPerlObj::scan_commit
 +#undef  scan_const
 +#define scan_const        CPerlObj::Perl_scan_const
 +#undef  scan_formline
 +#define scan_formline     CPerlObj::Perl_scan_formline
 +#undef  scan_ident
 +#define scan_ident        CPerlObj::Perl_scan_ident
 +#undef  scan_inputsymbol
 +#define scan_inputsymbol  CPerlObj::Perl_scan_inputsymbol
 +#undef  scan_heredoc
 +#define scan_heredoc      CPerlObj::Perl_scan_heredoc
 +#undef  scan_hex
 +#define scan_hex          CPerlObj::Perl_scan_hex
 +#undef  scan_num
 +#define scan_num          CPerlObj::Perl_scan_num
 +#undef  scan_oct
 +#define scan_oct          CPerlObj::Perl_scan_oct
 +#undef  scan_pat
 +#define scan_pat          CPerlObj::Perl_scan_pat
 +#undef  scan_str
 +#define scan_str          CPerlObj::Perl_scan_str
 +#undef  scan_subst
 +#define scan_subst        CPerlObj::Perl_scan_subst
 +#undef  scan_trans
 +#define scan_trans        CPerlObj::Perl_scan_trans
 +#undef  scan_word
 +#define scan_word         CPerlObj::Perl_scan_word
 +#undef  scope
 +#define scope             CPerlObj::Perl_scope
 +#undef  screaminstr
 +#define screaminstr       CPerlObj::Perl_screaminstr
 +#undef  seed
 +#define seed              CPerlObj::seed
 +#undef  setdefout
 +#define setdefout         CPerlObj::Perl_setdefout
 +#undef  setenv_getix
 +#define setenv_getix      CPerlObj::Perl_setenv_getix
 +#undef  sharepvn
 +#define sharepvn          CPerlObj::Perl_sharepvn
 +#undef  set_csh
 +#define set_csh           CPerlObj::set_csh
 +#undef  sighandler
 +#define sighandler        CPerlObj::Perl_sighandler
 +#undef  share_hek
 +#define share_hek         CPerlObj::Perl_share_hek
 +#undef  skipspace
 +#define skipspace         CPerlObj::Perl_skipspace
 +#undef  sortcv
 +#define sortcv            CPerlObj::sortcv
 +#ifndef PERL_OBJECT
 +#undef  stack_base
 +#define stack_base        CPerlObj::Perl_stack_base
 +#endif
 +#undef  stack_grow
 +#define stack_grow        CPerlObj::Perl_stack_grow
 +#undef  start_subparse
 +#define start_subparse    CPerlObj::Perl_start_subparse
 +#undef  study_chunk
 +#define study_chunk       CPerlObj::study_chunk
 +#undef  sub_crush_depth
 +#define sub_crush_depth   CPerlObj::Perl_sub_crush_depth
 +#undef  sublex_done
 +#define sublex_done       CPerlObj::sublex_done
 +#undef  sublex_push
 +#define sublex_push       CPerlObj::sublex_push
 +#undef  sublex_start
 +#define sublex_start      CPerlObj::sublex_start
 +#undef  sv_2bool
 +#define sv_2bool          CPerlObj::Perl_sv_2bool
 +#undef  sv_2cv
 +#define sv_2cv            CPerlObj::Perl_sv_2cv
 +#undef  sv_2io
 +#define sv_2io            CPerlObj::Perl_sv_2io
 +#undef  sv_2iv
 +#define sv_2iv            CPerlObj::Perl_sv_2iv
 +#undef  sv_2uv
 +#define sv_2uv            CPerlObj::Perl_sv_2uv
 +#undef  sv_2mortal
 +#define sv_2mortal        CPerlObj::Perl_sv_2mortal
 +#undef  sv_2nv
 +#define sv_2nv            CPerlObj::Perl_sv_2nv
 +#undef  sv_2pv
 +#define sv_2pv            CPerlObj::Perl_sv_2pv
 +#undef  sv_add_arena
 +#define sv_add_arena      CPerlObj::Perl_sv_add_arena
 +#undef  sv_backoff
 +#define sv_backoff        CPerlObj::Perl_sv_backoff
 +#undef  sv_bless
 +#define sv_bless          CPerlObj::Perl_sv_bless
 +#undef  sv_catpv
 +#define sv_catpv          CPerlObj::Perl_sv_catpv
 +#undef  sv_catpv_mg
 +#define sv_catpv_mg       CPerlObj::Perl_sv_catpv_mg
 +#undef  sv_catpvf
 +#define sv_catpvf         CPerlObj::Perl_sv_catpvf
 +#undef  sv_catpvf_mg
 +#define sv_catpvf_mg      CPerlObj::Perl_sv_catpvf_mg
 +#undef  sv_catpvn
 +#define sv_catpvn         CPerlObj::Perl_sv_catpvn
 +#undef  sv_catpvn_mg
 +#define sv_catpvn_mg      CPerlObj::Perl_sv_catpvn_mg
 +#undef  sv_catsv
 +#define sv_catsv          CPerlObj::Perl_sv_catsv
 +#undef  sv_catsv_mg
 +#define sv_catsv_mg       CPerlObj::Perl_sv_catsv_mg
 +#undef  sv_check_thinkfirst
 +#define sv_check_thinkfirst CPerlObj::sv_check_thinkfirst
 +#undef  sv_chop
 +#define sv_chop           CPerlObj::Perl_sv_chop
 +#undef  sv_clean_all
 +#define sv_clean_all      CPerlObj::Perl_sv_clean_all
 +#undef  sv_clean_objs
 +#define sv_clean_objs     CPerlObj::Perl_sv_clean_objs
 +#undef  sv_clear
 +#define sv_clear          CPerlObj::Perl_sv_clear
 +#undef  sv_cmp
 +#define sv_cmp            CPerlObj::Perl_sv_cmp
 +#undef  sv_cmp_locale
 +#define sv_cmp_locale     CPerlObj::Perl_sv_cmp_locale
 +#undef  sv_collxfrm
 +#define sv_collxfrm       CPerlObj::Perl_sv_collxfrm
 +#undef  sv_compile_2op
 +#define sv_compile_2op    CPerlObj::Perl_sv_compile_2op
 +#undef  sv_dec
 +#define sv_dec            CPerlObj::Perl_sv_dec
 +#undef  sv_derived_from
 +#define sv_derived_from   CPerlObj::Perl_sv_derived_from
 +#undef  sv_dump
 +#define sv_dump           CPerlObj::Perl_sv_dump
 +#undef  sv_eq
 +#define sv_eq             CPerlObj::Perl_sv_eq
 +#undef  sv_free
 +#define sv_free           CPerlObj::Perl_sv_free
 +#undef  sv_free_arenas
 +#define sv_free_arenas    CPerlObj::Perl_sv_free_arenas
 +#undef  sv_gets
 +#define sv_gets           CPerlObj::Perl_sv_gets
 +#undef  sv_grow
 +#define sv_grow           CPerlObj::Perl_sv_grow
 +#undef  sv_inc
 +#define sv_inc            CPerlObj::Perl_sv_inc
 +#undef  sv_insert
 +#define sv_insert         CPerlObj::Perl_sv_insert
 +#undef  sv_isa
 +#define sv_isa            CPerlObj::Perl_sv_isa
 +#undef  sv_isobject
 +#define sv_isobject       CPerlObj::Perl_sv_isobject
 +#undef  sv_iv
 +#define sv_iv             CPerlObj::Perl_sv_iv
 +#undef  sv_len
 +#define sv_len            CPerlObj::Perl_sv_len
 +#undef  sv_magic
 +#define sv_magic          CPerlObj::Perl_sv_magic
 +#undef  sv_mortalcopy
 +#define sv_mortalcopy     CPerlObj::Perl_sv_mortalcopy
 +#undef  sv_mortalgrow
 +#define sv_mortalgrow     CPerlObj::sv_mortalgrow
 +#undef  sv_newmortal
 +#define sv_newmortal      CPerlObj::Perl_sv_newmortal
 +#undef  sv_newref
 +#define sv_newref         CPerlObj::Perl_sv_newref
 +#undef  sv_nv
 +#define sv_nv             CPerlObj::Perl_sv_nv
 +#undef  sv_peek
 +#define sv_peek           CPerlObj::Perl_sv_peek
 +#undef  sv_pvn
 +#define sv_pvn            CPerlObj::Perl_sv_pvn
 +#undef  sv_pvn_force
 +#define sv_pvn_force      CPerlObj::Perl_sv_pvn_force
 +#undef  sv_reftype
 +#define sv_reftype        CPerlObj::Perl_sv_reftype
 +#undef  sv_replace
 +#define sv_replace        CPerlObj::Perl_sv_replace
 +#undef  sv_report_used
 +#define sv_report_used    CPerlObj::Perl_sv_report_used
 +#undef  sv_reset
 +#define sv_reset          CPerlObj::Perl_sv_reset
 +#undef  sv_setiv
 +#define sv_setiv          CPerlObj::Perl_sv_setiv
 +#undef  sv_setiv_mg
 +#define sv_setiv_mg       CPerlObj::Perl_sv_setiv_mg
 +#undef  sv_setnv
 +#define sv_setnv          CPerlObj::Perl_sv_setnv
 +#undef  sv_setnv_mg
 +#define sv_setnv_mg       CPerlObj::Perl_sv_setnv_mg
 +#undef  sv_setuv
 +#define sv_setuv          CPerlObj::Perl_sv_setuv
 +#undef  sv_setuv_mg
 +#define sv_setuv_mg       CPerlObj::Perl_sv_setuv_mg
 +#undef  sv_setref_iv
 +#define sv_setref_iv      CPerlObj::Perl_sv_setref_iv
 +#undef  sv_setref_nv
 +#define sv_setref_nv      CPerlObj::Perl_sv_setref_nv
 +#undef  sv_setref_pv
 +#define sv_setref_pv      CPerlObj::Perl_sv_setref_pv
 +#undef  sv_setref_pvn
 +#define sv_setref_pvn     CPerlObj::Perl_sv_setref_pvn
 +#undef  sv_setpv
 +#define sv_setpv          CPerlObj::Perl_sv_setpv
 +#undef  sv_setpv_mg
 +#define sv_setpv_mg       CPerlObj::Perl_sv_setpv_mg
 +#undef  sv_setpvf
 +#define sv_setpvf         CPerlObj::Perl_sv_setpvf
 +#undef  sv_setpvf_mg
 +#define sv_setpvf_mg      CPerlObj::Perl_sv_setpvf_mg
 +#undef  sv_setpviv
 +#define sv_setpviv        CPerlObj::Perl_sv_setpviv
 +#undef  sv_setpviv_mg
 +#define sv_setpviv_mg     CPerlObj::Perl_sv_setpviv_mg
 +#undef  sv_setpvn
 +#define sv_setpvn         CPerlObj::Perl_sv_setpvn
 +#undef  sv_setpvn_mg
 +#define sv_setpvn_mg      CPerlObj::Perl_sv_setpvn_mg
 +#undef  sv_setsv
 +#define sv_setsv          CPerlObj::Perl_sv_setsv
 +#undef  sv_setsv_mg
 +#define sv_setsv_mg       CPerlObj::Perl_sv_setsv_mg
 +#undef  sv_taint
 +#define sv_taint          CPerlObj::Perl_sv_taint
 +#undef  sv_tainted
 +#define sv_tainted        CPerlObj::Perl_sv_tainted
 +#undef  sv_true
 +#define sv_true           CPerlObj::Perl_sv_true
 +#undef  sv_unglob
 +#define sv_unglob         CPerlObj::sv_unglob
 +#undef  sv_unmagic
 +#define sv_unmagic        CPerlObj::Perl_sv_unmagic
 +#undef  sv_unref
 +#define sv_unref          CPerlObj::Perl_sv_unref
 +#undef  sv_untaint
 +#define sv_untaint        CPerlObj::Perl_sv_untaint
 +#undef  sv_upgrade
 +#define sv_upgrade        CPerlObj::Perl_sv_upgrade
 +#undef  sv_usepvn
 +#define sv_usepvn         CPerlObj::Perl_sv_usepvn
 +#undef  sv_usepvn_mg
 +#define sv_usepvn_mg      CPerlObj::Perl_sv_usepvn_mg
 +#undef  sv_uv
 +#define sv_uv             CPerlObj::Perl_sv_uv
 +#undef  sv_vcatpvfn
 +#define sv_vcatpvfn       CPerlObj::Perl_sv_vcatpvfn
 +#undef  sv_vsetpvfn
 +#define sv_vsetpvfn       CPerlObj::Perl_sv_vsetpvfn
 +#undef  taint_env
 +#define taint_env         CPerlObj::Perl_taint_env
 +#undef  taint_not
 +#define taint_not         CPerlObj::Perl_taint_not
 +#undef  taint_proper
 +#define taint_proper      CPerlObj::Perl_taint_proper
 +#undef  tokeq
 +#define tokeq             CPerlObj::tokeq
 +#undef  too_few_arguments
 +#define too_few_arguments CPerlObj::Perl_too_few_arguments
 +#undef  too_many_arguments
 +#define too_many_arguments CPerlObj::Perl_too_many_arguments
 +#undef  unlnk
 +#define unlnk             CPerlObj::unlnk
 +#undef  unsharepvn
 +#define unsharepvn        CPerlObj::Perl_unsharepvn
 +#undef  unshare_hek
 +#define unshare_hek       CPerlObj::Perl_unshare_hek
 +#undef  unwind_handler_stack
 +#define unwind_handler_stack CPerlObj::unwind_handler_stack
 +#undef  usage
 +#define usage             CPerlObj::usage
 +#undef  utilize
 +#define utilize           CPerlObj::Perl_utilize
 +#undef  validate_suid
 +#define validate_suid     CPerlObj::validate_suid
 +#undef  visit
 +#define visit             CPerlObj::visit
 +#undef  vivify_defelem
 +#define vivify_defelem    CPerlObj::Perl_vivify_defelem
 +#undef  vivify_ref
 +#define vivify_ref        CPerlObj::Perl_vivify_ref
 +#undef  wait4pid
 +#define wait4pid          CPerlObj::Perl_wait4pid
 +#undef  warn
 +#define warn              CPerlObj::Perl_warn
 +#undef  watch
 +#define watch             CPerlObj::Perl_watch
 +#undef  whichsig
 +#define whichsig          CPerlObj::Perl_whichsig
 +#undef  win32_textfilter
 +#define win32_textfilter  CPerlObj::win32_textfilter
 +#undef  yyerror
 +#define yyerror           CPerlObj::Perl_yyerror
 +#undef  yylex
 +#define yylex             CPerlObj::Perl_yylex
 +#undef  yyparse
 +#define yyparse           CPerlObj::Perl_yyparse
 +#undef  yywarn
 +#define yywarn            CPerlObj::Perl_yywarn
 +#undef  yydestruct
 +#define yydestruct        CPerlObj::Perl_yydestruct
 +
 +#define new_he            CPerlObj::new_he
 +#define more_he           CPerlObj::more_he
 +#define del_he            CPerlObj::del_he
 +
 +#if defined(WIN32) && !defined(WIN32IO_IS_STDIO)
 +#undef errno
 +#define errno             CPerlObj::ErrorNo()
 +
 +#endif /* WIN32 */
 +
 +#endif /* __Objpp_h__ */
diff --cc op.c
--- 1/op.c
--- 2/op.c
+++ b/op.c
@@@ -3522,8 -3516,35 +3522,35 @@@ newSUB(I32 floor, OP *o, OP *proto, OP 
      return cv;
  }
  
+ void
+ newCONSTSUB(HV *stash, char *name, SV *sv)
+ {
+     dTHR;
+     U32 oldhints = hints;
+     HV *old_cop_stash = curcop->cop_stash;
+     HV *old_curstash = curstash;
+     line_t oldline = curcop->cop_line;
+     curcop->cop_line = copline;
+     hints &= ~HINT_BLOCK_SCOPE;
+     if(stash)
+       curstash = curcop->cop_stash = stash;
+     newSUB(
+       start_subparse(FALSE, 0),
+       newSVOP(OP_CONST, 0, newSVpv(name,0)),
+       newSVOP(OP_CONST, 0, &sv_no),   /* SvPV(&sv_no) == "" -- GMB */
+       newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv))
+     );
+     hints = oldhints;
+     curcop->cop_stash = old_cop_stash;
+     curstash = old_curstash;
+     curcop->cop_line = oldline;
+ }
  CV *
 -newXS(char *name, void (*subaddr) (CV *), char *filename)
 +newXS(char *name, void (*subaddr) (CPERLproto_ CV *), char *filename)
  {
      dTHR;
      GV *gv = gv_fetchpv(name ? name : "__ANON__", GV_ADDMULTI, SVt_PVCV);
diff --cc perl.c
--- 1/perl.c
--- 2/perl.c
+++ b/perl.c
@@@ -600,9 -563,9 +604,10 @@@ perl_parse(PerlInterpreter *sv_interp, 
      char *validarg = "";
      I32 oldscope;
      AV* comppadlist;
+     int e_tmpfd = -1;
      dJMPENV;
      int ret;
 +    int fdscript = -1;
  
  #ifdef SETUID_SCRIPTS_ARE_SECURE_NOW
  #ifdef IAMSUID
@@@ -988,13 -972,9 +1017,13 @@@ print \"  \\@INC:\\n    @INC\\n\";")
  }
  
  int
 +#ifdef PERL_OBJECT
 +CPerlObj::perl_run(void)
 +#else
  perl_run(PerlInterpreter *sv_interp)
 +#endif
  {
-     dTHR;
+     dSP;
      I32 oldscope;
      dJMPENV;
      int ret;
@@@ -2500,7 -2482,9 +2532,9 @@@ init_stacks(ARGSproto
      }
  }
  
+ #undef REASONABLE
 -static void
 +STATIC void
  nuke_stacks(void)
  {
      dTHR;
@@@ -2996,10 -2976,10 +3038,10 @@@ my_failure_exit(void
      my_exit_jump();
  }
  
 -static void
 +STATIC void
  my_exit_jump(void)
  {
-     dTHR;
+     dSP;
      register PERL_CONTEXT *cx;
      I32 gimme;
      SV **newsp;
diff --cc perl.h
Simple merge
diff --cc perldir.h
+++ b/perldir.h
@@@ -2,21 -2,13 +2,25 @@@
  #define H_PERLDIR 1
  
  #ifdef PERL_OBJECT
 +
 +#include "ipdir.h"
 +
 +#define PerlDir_mkdir(name, mode) piDir->Makedir((name), (mode), ErrorNo())
 +#define PerlDir_chdir(name) piDir->Chdir((name), ErrorNo())
 +#define PerlDir_rmdir(name) piDir->Rmdir((name), ErrorNo())
 +#define PerlDir_close(dir) piDir->Close((dir), ErrorNo())
 +#define PerlDir_open(name) piDir->Open((name), ErrorNo())
 +#define PerlDir_read(dir) piDir->Read((dir), ErrorNo())
 +#define PerlDir_rewind(dir) piDir->Rewind((dir), ErrorNo())
 +#define PerlDir_seek(dir, loc) piDir->Seek((dir), (loc), ErrorNo())
 +#define PerlDir_tell(dir) piDir->Tell((dir), ErrorNo())
  #else
  #define PerlDir_mkdir(name, mode) Mkdir((name), (mode))
- #define PerlDir_chdir(name) chdir((name))
+ #ifdef VMS
+ #  define PerlDir_chdir(name) chdir(((name) && *(name)) ? (name) : "SYS$LOGIN")
+ #else 
+ #  define PerlDir_chdir(name) chdir((name))
+ #endif
  #define PerlDir_rmdir(name) rmdir((name))
  #define PerlDir_close(dir) closedir((dir))
  #define PerlDir_open(name) opendir((name))
diff --cc perllio.h
Simple merge
diff --cc perlsock.h
  #define PerlSock_accept(s, a, l) accept(s, a, l)
  #define PerlSock_bind(s, n, l) bind(s, n, l)
  #define PerlSock_connect(s, n, l) connect(s, n, l)
- #define PerlSock_endhostent() endhostent()
- #define PerlSock_endnetent() endnetent()
- #define PerlSock_endprotoent() endprotoent()
- #define PerlSock_endservent() endservent()
  #define PerlSock_gethostbyaddr(a, l, t) gethostbyaddr(a, l, t)
  #define PerlSock_gethostbyname(n) gethostbyname(n)
- #define PerlSock_gethostent() gethostent()
+ #define PerlSock_gethostent gethostent
+ #define PerlSock_endhostent endhostent
  #define PerlSock_gethostname(n, l) gethostname(n, l)
  #define PerlSock_getnetbyaddr(n, t) getnetbyaddr(n, t)
- #define PerlSock_getnetbyname(c) getnetbyname(c)
- #define PerlSock_getnetent() getnetent()
+ #define PerlSock_getnetbyname(n) getnetbyname(n)
+ #define PerlSock_getnetent getnetent
+ #define PerlSock_endnetent endnetent
 -
  #define PerlSock_getpeername(s, n, l) getpeername(s, n, l)
  #define PerlSock_getprotobyname(n) getprotobyname(n)
  #define PerlSock_getprotobynumber(n) getprotobynumber(n)
- #define PerlSock_getprotoent() getprotoent()
+ #define PerlSock_getprotoent getprotoent
+ #define PerlSock_endprotoent endprotoent
  #define PerlSock_getservbyname(n, p) getservbyname(n, p)
  #define PerlSock_getservbyport(port, p) getservbyport(port, p)
- #define PerlSock_getservent() getservent()
+ #define PerlSock_getservent getservent
+ #define PerlSock_endservent endservent
  #define PerlSock_getsockname(s, n, l) getsockname(s, n, l)
  #define PerlSock_getsockopt(s, l, n, v, i) getsockopt(s, l, n, v, i)
 +#define PerlSock_inet_addr(c) inet_addr(c)
 +#define PerlSock_inet_ntoa(i) inet_ntoa(i)
  #define PerlSock_listen(s, b) listen(s, b)
  #define PerlSock_recvfrom(s, b, l, f, from, fromlen) recvfrom(s, b, l, f, from, fromlen)
  #define PerlSock_select(n, r, w, e, t) select(n, r, w, e, t)
diff --cc perly.c
Simple merge
diff --cc pp.c
Simple merge
diff --cc pp.h
Simple merge
diff --cc pp_ctl.c
+++ b/pp_ctl.c
@@@ -742,10 -733,11 +735,10 @@@ PP(pp_sort
                    (void)SvREFCNT_inc(cv); /* in preparation for POPSUB */
            }
            sortcxix = cxstack_ix;
 -
 -          qsortsv(myorigmark+1, max, sortcv);
 +          qsortsv((myorigmark+1), max, FUNC_NAME_TO_PTR(sortcv));
  
            POPBLOCK(cx,curpm);
-           SWITCHSTACK(sortstack, oldstack);
+           POPSTACK();
            CATCH_SET(oldcatch);
        }
        LEAVE;
diff --cc pp_hot.c
Simple merge
diff --cc pp_sys.c
Simple merge
diff --cc proto.h
+++ b/proto.h
@@@ -302,336 -287,318 +302,338 @@@ I32  my_memcmp _((char* s1, char* s2, I3
  #if !defined(HAS_MEMSET)
  void* my_memset _((char* loc, I32 ch, I32 len));
  #endif
 -I32   my_pclose _((PerlIO* ptr));
 -PerlIO*       my_popen _((char* cmd, char* mode));
 -void  my_setenv _((char* nam, char* val));
 -I32   my_stat _((ARGSproto));
 +#ifndef PERL_OBJECT
 +VIRTUAL I32   my_pclose _((PerlIO* ptr));
 +VIRTUAL PerlIO*       my_popen _((char* cmd, char* mode));
 +#endif
 +VIRTUAL void  my_setenv _((char* nam, char* val));
 +VIRTUAL I32   my_stat _((ARGSproto));
  #ifdef MYSWAP
 -short my_swap _((short s));
 -long  my_htonl _((long l));
 -long  my_ntohl _((long l));
 -#endif
 -void  my_unexec _((void));
 -OP*   newANONLIST _((OP* o));
 -OP*   newANONHASH _((OP* o));
 -OP*   newANONSUB _((I32 floor, OP* proto, OP* block));
 -OP*   newASSIGNOP _((I32 flags, OP* left, I32 optype, OP* right));
 -OP*   newCONDOP _((I32 flags, OP* expr, OP* trueop, OP* falseop));
 -void  newCONSTSUB _((HV* stash, char* name, SV* sv));
 -void  newFORM _((I32 floor, OP* o, OP* block));
 -OP*   newFOROP _((I32 flags, char* label, line_t forline, OP* scalar, OP* expr, OP*block, OP*cont));
 -OP*   newLOGOP _((I32 optype, I32 flags, OP* left, OP* right));
 -OP*   newLOOPEX _((I32 type, OP* label));
 -OP*   newLOOPOP _((I32 flags, I32 debuggable, OP* expr, OP* block));
 -OP*   newNULLLIST _((void));
 -OP*   newOP _((I32 optype, I32 flags));
 -void  newPROG _((OP* o));
 -OP*   newRANGE _((I32 flags, OP* left, OP* right));
 -OP*   newSLICEOP _((I32 flags, OP* subscript, OP* list));
 -OP*   newSTATEOP _((I32 flags, char* label, OP* o));
 -CV*   newSUB _((I32 floor, OP* o, OP* proto, OP* block));
 -CV*   newXS _((char* name, void (*subaddr)(CV* cv), char* filename));
 -AV*   newAV _((void));
 -OP*   newAVREF _((OP* o));
 -OP*   newBINOP _((I32 type, I32 flags, OP* first, OP* last));
 -OP*   newCVREF _((I32 flags, OP* o));
 -OP*   newGVOP _((I32 type, I32 flags, GV* gv));
 -GV*   newGVgen _((char* pack));
 -OP*   newGVREF _((I32 type, OP* o));
 -OP*   newHVREF _((OP* o));
 -HV*   newHV _((void));
 -IO*   newIO _((void));
 -OP*   newLISTOP _((I32 type, I32 flags, OP* first, OP* last));
 -OP*   newPMOP _((I32 type, I32 flags));
 -OP*   newPVOP _((I32 type, I32 flags, char* pv));
 -SV*   newRV _((SV* ref));
 -#if !defined(__GNUC__) && (defined(CRIPPLED_CC) || defined(USE_THREADS))
 -SV*   newRV_noinc _((SV *));
 +VIRTUAL short my_swap _((short s));
 +VIRTUAL long  my_htonl _((long l));
 +VIRTUAL long  my_ntohl _((long l));
 +#endif
 +VIRTUAL void  my_unexec _((void));
 +VIRTUAL OP*   newANONLIST _((OP* o));
 +VIRTUAL OP*   newANONHASH _((OP* o));
 +VIRTUAL OP*   newANONSUB _((I32 floor, OP* proto, OP* block));
 +VIRTUAL OP*   newASSIGNOP _((I32 flags, OP* left, I32 optype, OP* right));
 +VIRTUAL OP*   newCONDOP _((I32 flags, OP* expr, OP* trueop, OP* falseop));
++VIRTUAL void  newCONSTSUB _((HV* stash, char* name, SV* sv));
 +VIRTUAL void  newFORM _((I32 floor, OP* o, OP* block));
 +VIRTUAL OP*   newFOROP _((I32 flags, char* label, line_t forline, OP* scalar, OP* expr, OP*block, OP*cont));
 +VIRTUAL OP*   newLOGOP _((I32 optype, I32 flags, OP* left, OP* right));
 +VIRTUAL OP*   newLOOPEX _((I32 type, OP* label));
 +VIRTUAL OP*   newLOOPOP _((I32 flags, I32 debuggable, OP* expr, OP* block));
 +VIRTUAL OP*   newNULLLIST _((void));
 +VIRTUAL OP*   newOP _((I32 optype, I32 flags));
 +VIRTUAL void  newPROG _((OP* o));
 +VIRTUAL OP*   newRANGE _((I32 flags, OP* left, OP* right));
 +VIRTUAL OP*   newSLICEOP _((I32 flags, OP* subscript, OP* list));
 +VIRTUAL OP*   newSTATEOP _((I32 flags, char* label, OP* o));
 +VIRTUAL CV*   newSUB _((I32 floor, OP* o, OP* proto, OP* block));
 +VIRTUAL CV*   newXS _((char* name, void (*subaddr)(CPERLproto_ CV* cv), char* filename));
 +VIRTUAL AV*   newAV _((void));
 +VIRTUAL OP*   newAVREF _((OP* o));
 +VIRTUAL OP*   newBINOP _((I32 type, I32 flags, OP* first, OP* last));
 +VIRTUAL OP*   newCVREF _((I32 flags, OP* o));
 +VIRTUAL OP*   newGVOP _((I32 type, I32 flags, GV* gv));
 +VIRTUAL GV*   newGVgen _((char* pack));
 +VIRTUAL OP*   newGVREF _((I32 type, OP* o));
 +VIRTUAL OP*   newHVREF _((OP* o));
 +VIRTUAL HV*   newHV _((void));
 +VIRTUAL IO*   newIO _((void));
 +VIRTUAL OP*   newLISTOP _((I32 type, I32 flags, OP* first, OP* last));
 +VIRTUAL OP*   newPMOP _((I32 type, I32 flags));
 +VIRTUAL OP*   newPVOP _((I32 type, I32 flags, char* pv));
 +VIRTUAL SV*   newRV _((SV* ref));
 +#if !defined(__GNUC__) && (defined(CRIPPLED_CC) || defined(USE_THREADS) || defined(PERL_OBJECT))
 +VIRTUAL SV*   newRV_noinc _((SV *));
  #endif
  #ifdef LEAKTEST
 -SV*   newSV _((I32 x, STRLEN len));
 +VIRTUAL SV*   newSV _((I32 x, STRLEN len));
  #else
 -SV*   newSV _((STRLEN len));
 -#endif
 -OP*   newSVREF _((OP* o));
 -OP*   newSVOP _((I32 type, I32 flags, SV* sv));
 -SV*   newSViv _((IV i));
 -SV*   newSVnv _((double n));
 -SV*   newSVpv _((char* s, STRLEN len));
 -SV*   newSVpvn _((char* s, STRLEN len));
 -SV*   newSVpvf _((const char* pat, ...));
 -SV*   newSVrv _((SV* rv, char* classname));
 -SV*   newSVsv _((SV* old));
 -OP*   newUNOP _((I32 type, I32 flags, OP* first));
 -OP*   newWHILEOP _((I32 flags, I32 debuggable, LOOP* loop,
 +VIRTUAL SV*   newSV _((STRLEN len));
 +#endif
 +VIRTUAL OP*   newSVREF _((OP* o));
 +VIRTUAL OP*   newSVOP _((I32 type, I32 flags, SV* sv));
 +VIRTUAL SV*   newSViv _((IV i));
 +VIRTUAL SV*   newSVnv _((double n));
 +VIRTUAL SV*   newSVpv _((char* s, STRLEN len));
 +VIRTUAL SV*   newSVpvf _((const char* pat, ...));
 +VIRTUAL SV*   newSVrv _((SV* rv, char* classname));
 +VIRTUAL SV*   newSVsv _((SV* old));
 +VIRTUAL OP*   newUNOP _((I32 type, I32 flags, OP* first));
 +VIRTUAL OP*   newWHILEOP _((I32 flags, I32 debuggable, LOOP* loop,
                      I32 whileline, OP* expr, OP* block, OP* cont));
  #ifdef USE_THREADS
 -struct perl_thread *  new_struct_thread _((struct perl_thread *t));
 -#endif
 -PERL_SI *     new_stackinfo _((I32 stitems, I32 cxitems));
 -PerlIO*       nextargv _((GV* gv));
 -char* ninstr _((char* big, char* bigend, char* little, char* lend));
 -OP*   oopsCV _((OP* o));
 -void  op_free _((OP* arg));
 -void  package _((OP* o));
 -PADOFFSET     pad_alloc _((I32 optype, U32 tmptype));
 -PADOFFSET     pad_allocmy _((char* name));
 -PADOFFSET     pad_findmy _((char* name));
 -OP*   oopsAV _((OP* o));
 -OP*   oopsHV _((OP* o));
 -void  pad_leavemy _((I32 fill));
 -SV*   pad_sv _((PADOFFSET po));
 -void  pad_free _((PADOFFSET po));
 -void  pad_reset _((void));
 -void  pad_swipe _((PADOFFSET po));
 -void  peep _((OP* o));
 +VIRTUAL struct perl_thread *  new_struct_thread _((struct perl_thread *t));
 +#endif
++VIRTUAL PERL_SI *     new_stackinfo _((I32 stitems, I32 cxitems));
 +VIRTUAL PerlIO*       nextargv _((GV* gv));
 +VIRTUAL char* ninstr _((char* big, char* bigend, char* little, char* lend));
 +VIRTUAL OP*   oopsCV _((OP* o));
 +VIRTUAL void  op_free _((OP* arg));
 +VIRTUAL void  package _((OP* o));
 +VIRTUAL PADOFFSET     pad_alloc _((I32 optype, U32 tmptype));
 +VIRTUAL PADOFFSET     pad_allocmy _((char* name));
 +VIRTUAL PADOFFSET     pad_findmy _((char* name));
 +VIRTUAL OP*   oopsAV _((OP* o));
 +VIRTUAL OP*   oopsHV _((OP* o));
 +VIRTUAL void  pad_leavemy _((I32 fill));
 +VIRTUAL SV*   pad_sv _((PADOFFSET po));
 +VIRTUAL void  pad_free _((PADOFFSET po));
 +VIRTUAL void  pad_reset _((void));
 +VIRTUAL void  pad_swipe _((PADOFFSET po));
 +VIRTUAL void  peep _((OP* o));
 +#ifndef PERL_OBJECT
  PerlInterpreter*      perl_alloc _((void));
 -I32   perl_call_argv _((char* subname, I32 flags, char** argv));
 -I32   perl_call_method _((char* methname, I32 flags));
 -I32   perl_call_pv _((char* subname, I32 flags));
 -I32   perl_call_sv _((SV* sv, I32 flags));
 +#endif
 +VIRTUAL I32   perl_call_argv _((char* subname, I32 flags, char** argv));
 +VIRTUAL I32   perl_call_method _((char* methname, I32 flags));
 +VIRTUAL I32   perl_call_pv _((char* subname, I32 flags));
 +VIRTUAL I32   perl_call_sv _((SV* sv, I32 flags));
 +#ifdef PERL_OBJECT
 +VIRTUAL void  perl_construct _((void));
 +VIRTUAL void  perl_destruct _((void));
 +#else
  void  perl_construct _((PerlInterpreter* sv_interp));
  void  perl_destruct _((PerlInterpreter* sv_interp));
 -SV*   perl_eval_pv _((char* p, I32 croak_on_error));
 -I32   perl_eval_sv _((SV* sv, I32 flags));
 +#endif
 +VIRTUAL SV*   perl_eval_pv _((char* p, I32 croak_on_error));
 +VIRTUAL I32   perl_eval_sv _((SV* sv, I32 flags));
 +#ifdef PERL_OBJECT
 +VIRTUAL void  perl_free _((void));
 +#else
  void  perl_free _((PerlInterpreter* sv_interp));
 -SV*   perl_get_sv _((char* name, I32 create));
 -AV*   perl_get_av _((char* name, I32 create));
 -HV*   perl_get_hv _((char* name, I32 create));
 -CV*   perl_get_cv _((char* name, I32 create));
 -int   perl_init_i18nl10n _((int printwarn));
 -int   perl_init_i18nl14n _((int printwarn));
 -void  perl_new_collate _((char* newcoll));
 -void  perl_new_ctype _((char* newctype));
 -void  perl_new_numeric _((char* newcoll));
 -void  perl_set_numeric_local _((void));
 -void  perl_set_numeric_standard _((void));
 +#endif
 +VIRTUAL SV*   perl_get_sv _((char* name, I32 create));
 +VIRTUAL AV*   perl_get_av _((char* name, I32 create));
 +VIRTUAL HV*   perl_get_hv _((char* name, I32 create));
 +VIRTUAL CV*   perl_get_cv _((char* name, I32 create));
 +VIRTUAL int   perl_init_i18nl10n _((int printwarn));
 +VIRTUAL int   perl_init_i18nl14n _((int printwarn));
 +VIRTUAL void  perl_new_collate _((char* newcoll));
 +VIRTUAL void  perl_new_ctype _((char* newctype));
 +VIRTUAL void  perl_new_numeric _((char* newcoll));
 +VIRTUAL void  perl_set_numeric_local _((void));
 +VIRTUAL void  perl_set_numeric_standard _((void));
 +#ifdef PERL_OBJECT
 +VIRTUAL int   perl_parse _((void(*xsinit)(CPerlObj*), int argc, char** argv, char** env));
 +#else
  int   perl_parse _((PerlInterpreter* sv_interp, void(*xsinit)(void), int argc, char** argv, char** env));
 -void  perl_require_pv _((char* pv));
 +#endif
 +VIRTUAL void  perl_require_pv _((char* pv));
  #define perl_requirepv perl_require_pv
 +#ifdef PERL_OBJECT
 +VIRTUAL int   perl_run _((void));
 +#else
  int   perl_run _((PerlInterpreter* sv_interp));
 -void  pidgone _((int pid, int status));
 -void  pmflag _((U16* pmfl, int ch));
 -OP*   pmruntime _((OP* pm, OP* expr, OP* repl));
 -OP*   pmtrans _((OP* o, OP* expr, OP* repl));
 -OP*   pop_return _((void));
 -void  pop_scope _((void));
 -OP*   prepend_elem _((I32 optype, OP* head, OP* tail));
 -void  push_return _((OP* o));
 -void  push_scope _((void));
 -regexp*       pregcomp _((char* exp, char* xend, PMOP* pm));
 -OP*   ref _((OP* o, I32 type));
 -OP*   refkids _((OP* o, I32 type));
 +#endif
 +VIRTUAL void  pidgone _((int pid, int status));
 +VIRTUAL void  pmflag _((U16* pmfl, int ch));
 +VIRTUAL OP*   pmruntime _((OP* pm, OP* expr, OP* repl));
 +VIRTUAL OP*   pmtrans _((OP* o, OP* expr, OP* repl));
 +VIRTUAL OP*   pop_return _((void));
 +VIRTUAL void  pop_scope _((void));
 +VIRTUAL OP*   prepend_elem _((I32 optype, OP* head, OP* tail));
 +VIRTUAL void  push_return _((OP* o));
 +VIRTUAL void  push_scope _((void));
 +VIRTUAL regexp*       pregcomp _((char* exp, char* xend, PMOP* pm));
 +VIRTUAL OP*   ref _((OP* o, I32 type));
 +VIRTUAL OP*   refkids _((OP* o, I32 type));
 +#ifdef DEBUGGING
  void  regdump _((regexp* r));
 -I32   pregexec _((regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave));
 -I32   regexec_flags _((regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags));
 -  void        pregfree _((struct regexp* r));
 -regnode*regnext _((regnode* p));
 +#endif
 +VIRTUAL I32   pregexec _((regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave));
 +VIRTUAL I32   regexec_flags _((regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags));
 +VIRTUAL void  pregfree _((struct regexp* r));
 +VIRTUAL regnode*regnext _((regnode* p));
 +#ifdef DEBUGGING
  void  regprop _((SV* sv, regnode* o));
 -void  repeatcpy _((char* to, char* from, I32 len, I32 count));
 -char* rninstr _((char* big, char* bigend, char* little, char* lend));
 -Sighandler_t rsignal _((int, Sighandler_t));
 -int   rsignal_restore _((int, Sigsave_t*));
 -int   rsignal_save _((int, Sighandler_t, Sigsave_t*));
 -Sighandler_t rsignal_state _((int));
 -void  rxres_free _((void** rsp));
 -void  rxres_restore _((void** rsp, REGEXP* rx));
 -void  rxres_save _((void** rsp, REGEXP* rx));
 +#endif
 +VIRTUAL void  repeatcpy _((char* to, char* from, I32 len, I32 count));
 +VIRTUAL char* rninstr _((char* big, char* bigend, char* little, char* lend));
 +VIRTUAL Sighandler_t rsignal _((int, Sighandler_t));
 +VIRTUAL int   rsignal_restore _((int, Sigsave_t*));
 +VIRTUAL int   rsignal_save _((int, Sighandler_t, Sigsave_t*));
 +VIRTUAL Sighandler_t rsignal_state _((int));
 +VIRTUAL void  rxres_free _((void** rsp));
 +VIRTUAL void  rxres_restore _((void** rsp, REGEXP* rx));
 +VIRTUAL void  rxres_save _((void** rsp, REGEXP* rx));
  #ifndef HAS_RENAME
 -I32   same_dirent _((char* a, char* b));
 -#endif
 -char* savepv _((char* sv));
 -char* savepvn _((char* sv, I32 len));
 -void  savestack_grow _((void));
 -void  save_aelem _((AV* av, I32 idx, SV **sptr));
 -void  save_aptr _((AV** aptr));
 -AV*   save_ary _((GV* gv));
 -void  save_clearsv _((SV** svp));
 -void  save_delete _((HV* hv, char* key, I32 klen));
 +VIRTUAL I32   same_dirent _((char* a, char* b));
 +#endif
 +VIRTUAL char* savepv _((char* sv));
 +VIRTUAL char* savepvn _((char* sv, I32 len));
 +VIRTUAL void  savestack_grow _((void));
 +VIRTUAL void  save_aelem _((AV* av, I32 idx, SV **sptr));
 +VIRTUAL void  save_aptr _((AV** aptr));
 +VIRTUAL AV*   save_ary _((GV* gv));
 +VIRTUAL void  save_clearsv _((SV** svp));
 +VIRTUAL void  save_delete _((HV* hv, char* key, I32 klen));
  #ifndef titan  /* TitanOS cc can't handle this */
 +#ifdef PERL_OBJECT
 +typedef void (CPerlObj::*DESTRUCTORFUNC) _((void*));
 +VIRTUAL void  save_destructor _((DESTRUCTORFUNC f, void* p));
 +#else
  void  save_destructor _((void (*f)(void*), void* p));
 +#endif
  #endif /* titan */
 -void  save_freesv _((SV* sv));
 -void  save_freeop _((OP* o));
 -void  save_freepv _((char* pv));
 -void  save_gp _((GV* gv, I32 empty));
 -HV*   save_hash _((GV* gv));
 -void  save_helem _((HV* hv, SV *key, SV **sptr));
 -void  save_hptr _((HV** hptr));
 -void  save_I16 _((I16* intp));
 -void  save_I32 _((I32* intp));
 -void  save_int _((int* intp));
 -void  save_item _((SV* item));
 -void  save_iv _((IV* iv));
 -void  save_list _((SV** sarg, I32 maxsarg));
 -void  save_long _((long* longp));
 -void  save_nogv _((GV* gv));
 -void  save_op _((void));
 -SV*   save_scalar _((GV* gv));
 -void  save_pptr _((char** pptr));
 -void  save_sptr _((SV** sptr));
 -SV*   save_svref _((SV** sptr));
 -SV**  save_threadsv _((PADOFFSET i));
 -OP*   sawparens _((OP* o));
 -OP*   scalar _((OP* o));
 -OP*   scalarkids _((OP* o));
 -OP*   scalarseq _((OP* o));
 -OP*   scalarvoid _((OP* o));
 -UV    scan_hex _((char* start, I32 len, I32* retlen));
 -char* scan_num _((char* s));
 -UV    scan_oct _((char* start, I32 len, I32* retlen));
 -OP*   scope _((OP* o));
 -char* screaminstr _((SV* bigsv, SV* littlesv, I32 start_shift, I32 end_shift, I32 *state, I32 last));
 +VIRTUAL void  save_freesv _((SV* sv));
 +VIRTUAL void  save_freeop _((OP* o));
 +VIRTUAL void  save_freepv _((char* pv));
 +VIRTUAL void  save_gp _((GV* gv, I32 empty));
 +VIRTUAL HV*   save_hash _((GV* gv));
 +VIRTUAL void  save_helem _((HV* hv, SV *key, SV **sptr));
 +VIRTUAL void  save_hptr _((HV** hptr));
 +VIRTUAL void  save_I16 _((I16* intp));
 +VIRTUAL void  save_I32 _((I32* intp));
 +VIRTUAL void  save_int _((int* intp));
 +VIRTUAL void  save_item _((SV* item));
 +VIRTUAL void  save_iv _((IV* iv));
 +VIRTUAL void  save_list _((SV** sarg, I32 maxsarg));
 +VIRTUAL void  save_long _((long* longp));
 +VIRTUAL void  save_nogv _((GV* gv));
 +VIRTUAL void  save_op _((void));
 +VIRTUAL SV*   save_scalar _((GV* gv));
 +VIRTUAL void  save_pptr _((char** pptr));
 +VIRTUAL void  save_sptr _((SV** sptr));
 +VIRTUAL SV*   save_svref _((SV** sptr));
 +VIRTUAL SV**  save_threadsv _((PADOFFSET i));
 +VIRTUAL OP*   sawparens _((OP* o));
 +VIRTUAL OP*   scalar _((OP* o));
 +VIRTUAL OP*   scalarkids _((OP* o));
 +VIRTUAL OP*   scalarseq _((OP* o));
 +VIRTUAL OP*   scalarvoid _((OP* o));
 +VIRTUAL UV    scan_hex _((char* start, I32 len, I32* retlen));
 +VIRTUAL char* scan_num _((char* s));
 +VIRTUAL UV    scan_oct _((char* start, I32 len, I32* retlen));
 +VIRTUAL OP*   scope _((OP* o));
 +VIRTUAL char* screaminstr _((SV* bigsv, SV* littlesv, I32 start_shift, I32 end_shift, I32 *state, I32 last));
  #ifndef VMS
 -I32   setenv_getix _((char* nam));
 -#endif
 -void  setdefout _((GV* gv));
 -char* sharepvn _((char* sv, I32 len, U32 hash));
 -HEK*  share_hek _((char* sv, I32 len, U32 hash));
 -Signal_t sighandler _((int sig));
 -SV**  stack_grow _((SV** sp, SV**p, int n));
 -I32   start_subparse _((I32 is_format, U32 flags));
 -void  sub_crush_depth _((CV* cv));
 -bool  sv_2bool _((SV* sv));
 -CV*   sv_2cv _((SV* sv, HV** st, GV** gvp, I32 lref));
 -IO*   sv_2io _((SV* sv));
 -IV    sv_2iv _((SV* sv));
 -SV*   sv_2mortal _((SV* sv));
 -double        sv_2nv _((SV* sv));
 -char* sv_2pv _((SV* sv, STRLEN* lp));
 -UV    sv_2uv _((SV* sv));
 -IV    sv_iv _((SV* sv));
 -UV    sv_uv _((SV* sv));
 -double        sv_nv _((SV* sv));
 -char *        sv_pvn _((SV *, STRLEN *));
 -I32   sv_true _((SV *));
 -void  sv_add_arena _((char* ptr, U32 size, U32 flags));
 -int   sv_backoff _((SV* sv));
 -SV*   sv_bless _((SV* sv, HV* stash));
 -void  sv_catpvf _((SV* sv, const char* pat, ...));
 -void  sv_catpvf_mg _((SV* sv, const char* pat, ...));
 -void  sv_catpv _((SV* sv, char* ptr));
 -void  sv_catpv_mg _((SV* sv, char* ptr));
 -void  sv_catpvn _((SV* sv, char* ptr, STRLEN len));
 -void  sv_catpvn_mg _((SV* sv, char* ptr, STRLEN len));
 -void  sv_catsv _((SV* dsv, SV* ssv));
 -void  sv_catsv_mg _((SV* dsv, SV* ssv));
 -void  sv_chop _((SV* sv, char* ptr));
 -void  sv_clean_all _((void));
 -void  sv_clean_objs _((void));
 -void  sv_clear _((SV* sv));
 -I32   sv_cmp _((SV* sv1, SV* sv2));
 -I32   sv_cmp_locale _((SV* sv1, SV* sv2));
 +VIRTUAL I32   setenv_getix _((char* nam));
 +#endif
 +VIRTUAL void  setdefout _((GV* gv));
 +VIRTUAL char* sharepvn _((char* sv, I32 len, U32 hash));
 +VIRTUAL HEK*  share_hek _((char* sv, I32 len, U32 hash));
 +VIRTUAL Signal_t sighandler _((int sig));
 +VIRTUAL SV**  stack_grow _((SV** sp, SV**p, int n));
 +VIRTUAL I32   start_subparse _((I32 is_format, U32 flags));
 +VIRTUAL void  sub_crush_depth _((CV* cv));
 +VIRTUAL bool  sv_2bool _((SV* sv));
 +VIRTUAL CV*   sv_2cv _((SV* sv, HV** st, GV** gvp, I32 lref));
 +VIRTUAL IO*   sv_2io _((SV* sv));
 +VIRTUAL IV    sv_2iv _((SV* sv));
 +VIRTUAL SV*   sv_2mortal _((SV* sv));
 +VIRTUAL double        sv_2nv _((SV* sv));
 +VIRTUAL char* sv_2pv _((SV* sv, STRLEN* lp));
 +VIRTUAL UV    sv_2uv _((SV* sv));
 +VIRTUAL IV    sv_iv _((SV* sv));
 +VIRTUAL UV    sv_uv _((SV* sv));
 +VIRTUAL double        sv_nv _((SV* sv));
 +VIRTUAL char *        sv_pvn _((SV *, STRLEN *));
 +VIRTUAL I32   sv_true _((SV *));
 +VIRTUAL void  sv_add_arena _((char* ptr, U32 size, U32 flags));
 +VIRTUAL int   sv_backoff _((SV* sv));
 +VIRTUAL SV*   sv_bless _((SV* sv, HV* stash));
 +VIRTUAL void  sv_catpvf _((SV* sv, const char* pat, ...));
 +VIRTUAL void  sv_catpv _((SV* sv, char* ptr));
 +VIRTUAL void  sv_catpvn _((SV* sv, char* ptr, STRLEN len));
 +VIRTUAL void  sv_catsv _((SV* dsv, SV* ssv));
 +VIRTUAL void  sv_chop _((SV* sv, char* ptr));
 +VIRTUAL void  sv_clean_all _((void));
 +VIRTUAL void  sv_clean_objs _((void));
 +VIRTUAL void  sv_clear _((SV* sv));
 +VIRTUAL I32   sv_cmp _((SV* sv1, SV* sv2));
 +VIRTUAL I32   sv_cmp_locale _((SV* sv1, SV* sv2));
  #ifdef USE_LOCALE_COLLATE
 -char* sv_collxfrm _((SV* sv, STRLEN* nxp));
 -#endif
 -OP*   sv_compile_2op _((SV* sv, OP** startp, char* code, AV** avp));
 -void  sv_dec _((SV* sv));
 -void  sv_dump _((SV* sv));
 -bool  sv_derived_from _((SV* sv, char* name));
 -I32   sv_eq _((SV* sv1, SV* sv2));
 -void  sv_free _((SV* sv));
 -void  sv_free_arenas _((void));
 -char* sv_gets _((SV* sv, PerlIO* fp, I32 append));
 +VIRTUAL char* sv_collxfrm _((SV* sv, STRLEN* nxp));
 +#endif
 +VIRTUAL OP*   sv_compile_2op _((SV* sv, OP** startp, char* code, AV** avp));
 +VIRTUAL void  sv_dec _((SV* sv));
 +VIRTUAL void  sv_dump _((SV* sv));
 +VIRTUAL bool  sv_derived_from _((SV* sv, char* name));
 +VIRTUAL I32   sv_eq _((SV* sv1, SV* sv2));
 +VIRTUAL void  sv_free _((SV* sv));
 +VIRTUAL void  sv_free_arenas _((void));
 +VIRTUAL char* sv_gets _((SV* sv, PerlIO* fp, I32 append));
  #ifndef DOSISH
 -char* sv_grow _((SV* sv, I32 newlen));
 +VIRTUAL char* sv_grow _((SV* sv, I32 newlen));
  #else
 -char* sv_grow _((SV* sv, unsigned long newlen));
 -#endif
 -void  sv_inc _((SV* sv));
 -void  sv_insert _((SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen));
 -int   sv_isa _((SV* sv, char* name));
 -int   sv_isobject _((SV* sv));
 -STRLEN        sv_len _((SV* sv));
 -void  sv_magic _((SV* sv, SV* obj, int how, char* name, I32 namlen));
 -SV*   sv_mortalcopy _((SV* oldsv));
 -SV*   sv_newmortal _((void));
 -SV*   sv_newref _((SV* sv));
 +VIRTUAL char* sv_grow _((SV* sv, unsigned long newlen));
 +#endif
 +VIRTUAL void  sv_inc _((SV* sv));
 +VIRTUAL void  sv_insert _((SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen));
 +VIRTUAL int   sv_isa _((SV* sv, char* name));
 +VIRTUAL int   sv_isobject _((SV* sv));
 +VIRTUAL STRLEN        sv_len _((SV* sv));
 +VIRTUAL void  sv_magic _((SV* sv, SV* obj, int how, char* name, I32 namlen));
 +VIRTUAL SV*   sv_mortalcopy _((SV* oldsv));
 +VIRTUAL SV*   sv_newmortal _((void));
 +VIRTUAL SV*   sv_newref _((SV* sv));
 +#ifdef DEBUGGING
  char* sv_peek _((SV* sv));
 -char* sv_pvn_force _((SV* sv, STRLEN* lp));
 -char* sv_reftype _((SV* sv, int ob));
 -void  sv_replace _((SV* sv, SV* nsv));
 -void  sv_report_used _((void));
 -void  sv_reset _((char* s, HV* stash));
 -void  sv_setpvf _((SV* sv, const char* pat, ...));
 -void  sv_setpvf_mg _((SV* sv, const char* pat, ...));
 -void  sv_setiv _((SV* sv, IV num));
 -void  sv_setiv_mg _((SV* sv, IV num));
 -void  sv_setpviv _((SV* sv, IV num));
 -void  sv_setpviv_mg _((SV* sv, IV num));
 -void  sv_setuv _((SV* sv, UV num));
 -void  sv_setuv_mg _((SV* sv, UV num));
 -void  sv_setnv _((SV* sv, double num));
 -void  sv_setnv_mg _((SV* sv, double num));
 -SV*   sv_setref_iv _((SV* rv, char* classname, IV iv));
 -SV*   sv_setref_nv _((SV* rv, char* classname, double nv));
 -SV*   sv_setref_pv _((SV* rv, char* classname, void* pv));
 -SV*   sv_setref_pvn _((SV* rv, char* classname, char* pv, I32 n));
 -void  sv_setpv _((SV* sv, const char* ptr));
 -void  sv_setpv_mg _((SV* sv, const char* ptr));
 -void  sv_setpvn _((SV* sv, const char* ptr, STRLEN len));
 -void  sv_setpvn_mg _((SV* sv, const char* ptr, STRLEN len));
 -void  sv_setsv _((SV* dsv, SV* ssv));
 -void  sv_setsv_mg _((SV* dsv, SV* ssv));
 -void  sv_taint _((SV* sv));
 -bool  sv_tainted _((SV* sv));
 -int   sv_unmagic _((SV* sv, int type));
 -void  sv_unref _((SV* sv));
 -void  sv_untaint _((SV* sv));
 -bool  sv_upgrade _((SV* sv, U32 mt));
 -void  sv_usepvn _((SV* sv, char* ptr, STRLEN len));
 -void  sv_usepvn_mg _((SV* sv, char* ptr, STRLEN len));
 -void  sv_vcatpvfn _((SV* sv, const char* pat, STRLEN patlen,
 +#endif
 +VIRTUAL char* sv_pvn_force _((SV* sv, STRLEN* lp));
 +VIRTUAL char* sv_reftype _((SV* sv, int ob));
 +VIRTUAL void  sv_replace _((SV* sv, SV* nsv));
 +VIRTUAL void  sv_report_used _((void));
 +VIRTUAL void  sv_reset _((char* s, HV* stash));
 +VIRTUAL void  sv_setpvf _((SV* sv, const char* pat, ...));
 +VIRTUAL void  sv_setiv _((SV* sv, IV num));
 +VIRTUAL void  sv_setpviv _((SV* sv, IV num));
 +VIRTUAL void  sv_setuv _((SV* sv, UV num));
 +VIRTUAL void  sv_setnv _((SV* sv, double num));
 +VIRTUAL SV*   sv_setref_iv _((SV* rv, char* classname, IV iv));
 +VIRTUAL SV*   sv_setref_nv _((SV* rv, char* classname, double nv));
 +VIRTUAL SV*   sv_setref_pv _((SV* rv, char* classname, void* pv));
 +VIRTUAL SV*   sv_setref_pvn _((SV* rv, char* classname, char* pv, I32 n));
 +VIRTUAL void  sv_setpv _((SV* sv, const char* ptr));
 +VIRTUAL void  sv_setpvn _((SV* sv, const char* ptr, STRLEN len));
 +VIRTUAL void  sv_setsv _((SV* dsv, SV* ssv));
 +VIRTUAL void  sv_taint _((SV* sv));
 +VIRTUAL bool  sv_tainted _((SV* sv));
 +VIRTUAL int   sv_unmagic _((SV* sv, int type));
 +VIRTUAL void  sv_unref _((SV* sv));
 +VIRTUAL void  sv_untaint _((SV* sv));
 +VIRTUAL bool  sv_upgrade _((SV* sv, U32 mt));
 +VIRTUAL void  sv_usepvn _((SV* sv, char* ptr, STRLEN len));
 +VIRTUAL void  sv_vcatpvfn _((SV* sv, const char* pat, STRLEN patlen,
                       va_list* args, SV** svargs, I32 svmax,
                       bool *used_locale));
 -void  sv_vsetpvfn _((SV* sv, const char* pat, STRLEN patlen,
 +VIRTUAL void  sv_vsetpvfn _((SV* sv, const char* pat, STRLEN patlen,
                       va_list* args, SV** svargs, I32 svmax,
                       bool *used_locale));
 -void  taint_env _((void));
 -void  taint_proper _((const char* f, char* s));
 +VIRTUAL void  taint_env _((void));
 +VIRTUAL void  taint_proper _((const char* f, char* s));
  #ifdef UNLINK_ALL_VERSIONS
 -I32   unlnk _((char* f));
 +VIRTUAL I32   unlnk _((char* f));
  #endif
  #ifdef USE_THREADS
 -void  unlock_condpair _((void* svv));
 -#endif
 -void  unsharepvn _((char* sv, I32 len, U32 hash));
 -void  unshare_hek _((HEK* hek));
 -void  utilize _((int aver, I32 floor, OP* version, OP* id, OP* arg));
 -void  vivify_defelem _((SV* sv));
 -void  vivify_ref _((SV* sv, U32 to_what));
 -I32   wait4pid _((int pid, int* statusp, int flags));
 -void  warn _((const char* pat,...));
 +VIRTUAL void  unlock_condpair _((void* svv));
 +#endif
 +VIRTUAL void  unsharepvn _((char* sv, I32 len, U32 hash));
 +VIRTUAL void  unshare_hek _((HEK* hek));
 +VIRTUAL void  utilize _((int aver, I32 floor, OP* version, OP* id, OP* arg));
 +VIRTUAL void  vivify_defelem _((SV* sv));
 +VIRTUAL void  vivify_ref _((SV* sv, U32 to_what));
 +VIRTUAL I32   wait4pid _((int pid, int* statusp, int flags));
 +VIRTUAL void  warn _((const char* pat,...));
 +#ifdef DEBUGGING
  void  watch _((char** addr));
 -I32   whichsig _((char* sig));
 -int   yyerror _((char* s));
 -int   yylex _((void));
 -int   yyparse _((void));
 -int   yywarn _((char* s));
 +#endif
 +VIRTUAL I32   whichsig _((char* sig));
 +VIRTUAL int   yyerror _((char* s));
 +VIRTUAL int   yylex _((void));
 +VIRTUAL int   yyparse _((void));
 +VIRTUAL int   yywarn _((char* s));
  
  #ifndef MYMALLOC
 -Malloc_t safemalloc _((MEM_SIZE nbytes));
 -Malloc_t safecalloc _((MEM_SIZE elements, MEM_SIZE size));
 -Malloc_t saferealloc _((Malloc_t where, MEM_SIZE nbytes));
 -Free_t   safefree _((Malloc_t where));
 +VIRTUAL Malloc_t safemalloc _((MEM_SIZE nbytes));
 +VIRTUAL Malloc_t safecalloc _((MEM_SIZE elements, MEM_SIZE size));
 +VIRTUAL Malloc_t saferealloc _((Malloc_t where, MEM_SIZE nbytes));
 +VIRTUAL Free_t   safefree _((Malloc_t where));
  #endif
  
  #ifdef LEAKTEST
diff --cc regcomp.c
Simple merge
diff --cc regexec.c
Simple merge
diff --cc scope.c
Simple merge
diff --cc sv.c
--- 1/sv.c
--- 2/sv.c
+++ b/sv.c
@@@ -342,11 -332,22 +342,22 @@@ do_clean_objs(SV *sv
  }
  
  #ifndef DISABLE_DESTRUCTOR_KLUDGE
 -static void
 +STATIC void
  do_clean_named_objs(SV *sv)
  {
-     if (SvTYPE(sv) == SVt_PVGV && GvSV(sv))
-       do_clean_objs(GvSV(sv));
+     if (SvTYPE(sv) == SVt_PVGV) {
+       if ( SvOBJECT(GvSV(sv)) ||
+            GvAV(sv) && SvOBJECT(GvAV(sv)) ||
+            GvHV(sv) && SvOBJECT(GvHV(sv)) ||
+            GvIO(sv) && SvOBJECT(GvIO(sv)) ||
+            GvCV(sv) && SvOBJECT(GvCV(sv)) )
+       {
+           DEBUG_D((PerlIO_printf(Perl_debug_log, "Cleaning named glob object:\n "), sv_dump(sv));)
+           SvREFCNT_dec(sv);
+       }
+       else if (GvSV(sv))
+           do_clean_objs(GvSV(sv));
+     }
  }
  #endif
  
@@@ -2732,24 -2742,24 +2748,24 @@@ sv_clear(register SV *sv
        if (defstash) {         /* Still have a symbol table? */
            djSP;
            GV* destructor;
-           HV* stash;
 -          SV ref;
 +          SV tmpref;
  
 -          Zero(&ref, 1, SV);
 -          sv_upgrade(&ref, SVt_RV);
 -          SvROK_on(&ref);
 -          SvREADONLY_on(&ref);        /* DESTROY() could be naughty */
 -          SvREFCNT(&ref) = 1;
 +          Zero(&tmpref, 1, SV);
 +          sv_upgrade(&tmpref, SVt_RV);
 +          SvROK_on(&tmpref);
 +          SvREADONLY_on(&tmpref);     /* DESTROY() could be naughty */
 +          SvREFCNT(&tmpref) = 1;
  
            do {
                stash = SvSTASH(sv);
                destructor = gv_fetchmethod(SvSTASH(sv), "DESTROY");
                if (destructor) {
                    ENTER;
+                   PUSHSTACK(SI_DESTROY);
 -                  SvRV(&ref) = SvREFCNT_inc(sv);
 +                  SvRV(&tmpref) = SvREFCNT_inc(sv);
                    EXTEND(SP, 2);
                    PUSHMARK(SP);
 -                  PUSHs(&ref);
 +                  PUSHs(&tmpref);
                    PUTBACK;
                    perl_call_sv((SV*)GvCV(destructor),
                                 G_DISCARD|G_EVAL|G_KEEPERR);
diff --cc toke.c
Simple merge
diff --cc util.c
Simple merge
diff --cc vms/vms.c
Simple merge
diff --cc win32/Makefile
Simple merge
diff --cc win32/config.bc
@@@ -458,12 -476,12 +476,12 @@@ shmattype='void *
  shortsize='2'
  shrpenv=''
  shsharp='true'
- sig_name='ZERO INT ILL FPE SEGV TERM USR1 USR2 USR3 BREAK ABRT'
- sig_name_init='"ZERO", "INT", "ILL", "FPE", "SEGV", "TERM", "USR1", "USR2", "USR3", "BREAK", "ABRT", 0'
- sig_num='0, 2, 4, 8, 11, 15, 16, 17, 20, 21, 22, 0'
+ sig_name='ZERO INT QUIT ILL FPE KILL SEGV PIPE ALRM TERM USR1 USR2 CHLD USR3 BREAK ABRT STOP CONT CLD'
+ sig_name_init='"ZERO", "INT", "QUIT", "ILL", "FPE", "KILL", "SEGV", "PIPE", "ALRM", "TERM", "USR1", "USR2", "CHLD", "USR3", "BREAK", "ABRT", "STOP", "CONT", "CLD", 0'
+ sig_num='0, 2, 3, 4, 8, 9, 11, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 25, 18, 0'
  signal_t='void'
 -sitearch='~INST_TOP~\lib\site\~archname~'
 -sitearchexp='~INST_TOP~\lib\site\~archname~'
 +sitearch=''
 +sitearchexp=''
  sitelib='~INST_TOP~\lib\site'
  sitelibexp='~INST_TOP~\lib\site'
  sizetype='size_t'
diff --cc win32/config.gc
@@@ -458,12 -476,12 +476,12 @@@ shmattype='void *
  shortsize='2'
  shrpenv=''
  shsharp='true'
- sig_name='ZERO INT ILL FPE SEGV TERM BREAK ABRT'
- sig_name_init='"ZERO", "INT", "ILL", "FPE", "SEGV", "TERM", "BREAK", "ABRT", 0'
- sig_num='0, 2, 4, 8, 11, 15, 21, 22, 0'
+ sig_name='ZERO INT QUIT ILL FPE KILL SEGV PIPE ALRM TERM CHLD BREAK ABRT STOP CONT CLD'
+ sig_name_init='"ZERO", "INT", "QUIT", "ILL", "FPE", "KILL", "SEGV", "PIPE", "ALRM", "TERM", "CHLD", "BREAK", "ABRT", "STOP", "CONT", "CLD", 0'
+ sig_num='0, 2, 3, 4, 8, 9, 11, 13, 14, 15, 20, 21, 22, 23, 25, 20, 0'
  signal_t='void'
 -sitearch='~INST_TOP~\lib\site\~archname~'
 -sitearchexp='~INST_TOP~\lib\site\~archname~'
 +sitearch=''
 +sitearchexp=''
  sitelib='~INST_TOP~\lib\site'
  sitelibexp='~INST_TOP~\lib\site'
  sizetype='size_t'
diff --cc win32/config.vc
@@@ -458,14 -476,14 +476,14 @@@ shmattype='void *
  shortsize='2'
  shrpenv=''
  shsharp='true'
- sig_name='ZERO INT ILL FPE SEGV TERM BREAK ABRT'
- sig_name_init='"ZERO", "INT", "ILL", "FPE", "SEGV", "TERM", "BREAK", "ABRT", 0'
- sig_num='0, 2, 4, 8, 11, 15, 21, 22, 0'
+ sig_name='ZERO INT QUIT ILL FPE KILL SEGV PIPE ALRM TERM CHLD BREAK ABRT STOP CONT CLD'
+ sig_name_init='"ZERO", "INT", "QUIT", "ILL", "FPE", "KILL", "SEGV", "PIPE", "ALRM", "TERM", "CHLD", "BREAK", "ABRT", "STOP", "CONT", "CLD", 0'
+ sig_num='0, 2, 3, 4, 8, 9, 11, 13, 14, 15, 20, 21, 22, 23, 25, 20, 0'
  signal_t='void'
 -sitearch='~INST_TOP~\lib\site\~archname~'
 -sitearchexp='~INST_TOP~\lib\site\~archname~'
 -sitelib='~INST_TOP~\lib\site'
 -sitelibexp='~INST_TOP~\lib\site'
 +sitearch=''
 +sitearchexp=''
 +sitelib='~INST_TOP~\..\site\~VERSION~\lib'
 +sitelibexp='~INST_TOP~\..\site\~VERSION~\lib'
  sizetype='size_t'
  sleep=''
  smail=''
  /* MYMALLOC:
   *    This symbol, if defined, indicates that we're using our own malloc.
   */
 -#define MYMALLOC                      /**/
 +/*#define MYMALLOC                    /**/
  
- /* Mode_t:
-  *    This symbol holds the type used to declare file modes 
-  *    for systems calls.  It is usually mode_t, but may be
-  *    int or unsigned short.  It may be necessary to include <sys/types.h>
-  *    to get any typedef'ed information.
-  */
- #define Mode_t mode_t  /* file mode parameter for system calls */
- /* Pid_t:
-  *    This symbol holds the type used to declare process ids in the kernel.
-  *    It can be int, uint, pid_t, etc... It may be necessary to include
-  *    <sys/types.h> to get any typedef'ed information.
-  */
- #define Pid_t int             /* PID type */
  /* CAN_PROTOTYPE:
   *    If defined, this macro indicates that the C compiler can handle
   *    function prototypes.
   *    in programs that are not prepared to deal with ~ expansion at run-time.
   */
  #define PRIVLIB "c:\\perl5004.5x\\lib"                /**/
 -#define PRIVLIB_EXP (win32_perllib_path(NULL))        /**/
 +#define PRIVLIB_EXP (win32_get_stdlib(patchlevel))    /**/
  
- /* SIG_NAME:
-  *    This symbol contains a list of signal names in order of
-  *    signal number. This is intended
-  *    to be used as a static array initialization, like this:
-  *            char *sig_name[] = { SIG_NAME };
-  *    The signals in the list are separated with commas, and each signal
-  *    is surrounded by double quotes. There is no leading SIG in the signal
-  *    name, i.e. SIGQUIT is known as "QUIT".
-  *    Gaps in the signal numbers (up to NSIG) are filled in with NUMnn,
-  *    etc., where nn is the actual signal number (e.g. NUM37).
-  *    The signal number for sig_name[i] is stored in sig_num[i].
-  *    The last element is 0 to terminate the list with a NULL.  This
-  *    corresponds to the 0 at the end of the sig_num list.
-  */
- /* SIG_NUM:
-  *    This symbol contains a list of signal numbers, in the same order as the
-  *    SIG_NAME list. It is suitable for static array initialization, as in:
-  *            int sig_num[] = { SIG_NUM };
-  *    The signals in the list are separated with commas, and the indices
-  *    within that list and the SIG_NAME list match, so it's easy to compute
-  *    the signal name from a number or vice versa at the price of a small
-  *    dynamic linear lookup. 
-  *    Duplicates are allowed, but are moved to the end of the list.
-  *    The signal number corresponding to sig_name[i] is sig_number[i].
-  *    if (i < NSIG) then sig_number[i] == i.  
-  *    The last element is 0, corresponding to the 0 at the end of
-  *    the sig_name list.
-  */
- #define SIG_NAME "ZERO", "INT", "ILL", "FPE", "SEGV", "TERM", "USR1", "USR2", "USR3", "BREAK", "ABRT", 0              /**/
- #define SIG_NUM  0, 2, 4, 8, 11, 15, 16, 17, 20, 21, 22, 0                    /**/
  /* SITEARCH:
   *    This symbol contains the name of the private library for this package.
   *    The library is private in the sense that it needn't be in anyone's
  /* MYMALLOC:
   *    This symbol, if defined, indicates that we're using our own malloc.
   */
 -#define MYMALLOC                      /**/
 +/*#define MYMALLOC                    /**/
  
- /* Mode_t:
-  *    This symbol holds the type used to declare file modes 
-  *    for systems calls.  It is usually mode_t, but may be
-  *    int or unsigned short.  It may be necessary to include <sys/types.h>
-  *    to get any typedef'ed information.
-  */
- #define Mode_t mode_t  /* file mode parameter for system calls */
- /* Pid_t:
-  *    This symbol holds the type used to declare process ids in the kernel.
-  *    It can be int, uint, pid_t, etc... It may be necessary to include
-  *    <sys/types.h> to get any typedef'ed information.
-  */
- #define Pid_t int             /* PID type */
  /* CAN_PROTOTYPE:
   *    If defined, this macro indicates that the C compiler can handle
   *    function prototypes.
   *    in programs that are not prepared to deal with ~ expansion at run-time.
   */
  #define PRIVLIB "c:\\perl5004.5x\\lib"                /**/
 -#define PRIVLIB_EXP (win32_perllib_path(NULL))        /**/
 +#define PRIVLIB_EXP (win32_get_stdlib(patchlevel))    /**/
  
- /* SIG_NAME:
-  *    This symbol contains a list of signal names in order of
-  *    signal number. This is intended
-  *    to be used as a static array initialization, like this:
-  *            char *sig_name[] = { SIG_NAME };
-  *    The signals in the list are separated with commas, and each signal
-  *    is surrounded by double quotes. There is no leading SIG in the signal
-  *    name, i.e. SIGQUIT is known as "QUIT".
-  *    Gaps in the signal numbers (up to NSIG) are filled in with NUMnn,
-  *    etc., where nn is the actual signal number (e.g. NUM37).
-  *    The signal number for sig_name[i] is stored in sig_num[i].
-  *    The last element is 0 to terminate the list with a NULL.  This
-  *    corresponds to the 0 at the end of the sig_num list.
-  */
- /* SIG_NUM:
-  *    This symbol contains a list of signal numbers, in the same order as the
-  *    SIG_NAME list. It is suitable for static array initialization, as in:
-  *            int sig_num[] = { SIG_NUM };
-  *    The signals in the list are separated with commas, and the indices
-  *    within that list and the SIG_NAME list match, so it's easy to compute
-  *    the signal name from a number or vice versa at the price of a small
-  *    dynamic linear lookup. 
-  *    Duplicates are allowed, but are moved to the end of the list.
-  *    The signal number corresponding to sig_name[i] is sig_number[i].
-  *    if (i < NSIG) then sig_number[i] == i.  
-  *    The last element is 0, corresponding to the 0 at the end of
-  *    the sig_name list.
-  */
- #define SIG_NAME "ZERO", "INT", "ILL", "FPE", "SEGV", "TERM", "BREAK", "ABRT", 0              /**/
- #define SIG_NUM  0, 2, 4, 8, 11, 15, 21, 22, 0                        /**/
  /* SITEARCH:
   *    This symbol contains the name of the private library for this package.
   *    The library is private in the sense that it needn't be in anyone's
  /* MYMALLOC:
   *    This symbol, if defined, indicates that we're using our own malloc.
   */
 -#define MYMALLOC                      /**/
 +/*#define MYMALLOC                    /**/
  
- /* Mode_t:
-  *    This symbol holds the type used to declare file modes 
-  *    for systems calls.  It is usually mode_t, but may be
-  *    int or unsigned short.  It may be necessary to include <sys/types.h>
-  *    to get any typedef'ed information.
-  */
- #define Mode_t mode_t  /* file mode parameter for system calls */
- /* Pid_t:
-  *    This symbol holds the type used to declare process ids in the kernel.
-  *    It can be int, uint, pid_t, etc... It may be necessary to include
-  *    <sys/types.h> to get any typedef'ed information.
-  */
- #define Pid_t int             /* PID type */
  /* CAN_PROTOTYPE:
   *    If defined, this macro indicates that the C compiler can handle
   *    function prototypes.
   *    in programs that are not prepared to deal with ~ expansion at run-time.
   */
  #define PRIVLIB "c:\\perl5004.5x\\lib"                /**/
 -#define PRIVLIB_EXP (win32_perllib_path(NULL))        /**/
 +#define PRIVLIB_EXP (win32_get_stdlib(patchlevel))    /**/
  
- /* SIG_NAME:
-  *    This symbol contains a list of signal names in order of
-  *    signal number. This is intended
-  *    to be used as a static array initialization, like this:
-  *            char *sig_name[] = { SIG_NAME };
-  *    The signals in the list are separated with commas, and each signal
-  *    is surrounded by double quotes. There is no leading SIG in the signal
-  *    name, i.e. SIGQUIT is known as "QUIT".
-  *    Gaps in the signal numbers (up to NSIG) are filled in with NUMnn,
-  *    etc., where nn is the actual signal number (e.g. NUM37).
-  *    The signal number for sig_name[i] is stored in sig_num[i].
-  *    The last element is 0 to terminate the list with a NULL.  This
-  *    corresponds to the 0 at the end of the sig_num list.
-  */
- /* SIG_NUM:
-  *    This symbol contains a list of signal numbers, in the same order as the
-  *    SIG_NAME list. It is suitable for static array initialization, as in:
-  *            int sig_num[] = { SIG_NUM };
-  *    The signals in the list are separated with commas, and the indices
-  *    within that list and the SIG_NAME list match, so it's easy to compute
-  *    the signal name from a number or vice versa at the price of a small
-  *    dynamic linear lookup. 
-  *    Duplicates are allowed, but are moved to the end of the list.
-  *    The signal number corresponding to sig_name[i] is sig_number[i].
-  *    if (i < NSIG) then sig_number[i] == i.  
-  *    The last element is 0, corresponding to the 0 at the end of
-  *    the sig_name list.
-  */
- #define SIG_NAME "ZERO", "INT", "ILL", "FPE", "SEGV", "TERM", "BREAK", "ABRT", 0              /**/
- #define SIG_NUM  0, 2, 4, 8, 11, 15, 21, 22, 0                        /**/
  /* SITEARCH:
   *    This symbol contains the name of the private library for this package.
   *    The library is private in the sense that it needn't be in anyone's
Simple merge
diff --cc win32/win32.c
@@@ -155,213 -128,29 +167,213 @@@ IsWinNT(void) 
      return (os_id() == VER_PLATFORM_WIN32_NT);
  }
  
 +char*
 +GetRegStrFromKey(HKEY hkey, const char *lpszValueName, char** ptr, DWORD* lpDataLen)
 +{   /* Retrieve a REG_SZ or REG_EXPAND_SZ from the registry */
 +    HKEY handle;
 +    DWORD type;
 +    const char *subkey = "Software\\Perl";
 +    long retval;
 +
 +    retval = RegOpenKeyEx(hkey, subkey, 0, KEY_READ, &handle);
-     if(retval == ERROR_SUCCESS){
++    if (retval == ERROR_SUCCESS){
 +      retval = RegQueryValueEx(handle, lpszValueName, 0, &type, NULL, lpDataLen);
-       if(retval == ERROR_SUCCESS && type == REG_SZ) {
-           if(*ptr != NULL) {
++      if (retval == ERROR_SUCCESS && type == REG_SZ) {
++          if (*ptr != NULL) {
 +              Renew(*ptr, *lpDataLen, char);
 +          }
 +          else {
 +              New(1312, *ptr, *lpDataLen, char);
 +          }
 +          retval = RegQueryValueEx(handle, lpszValueName, 0, NULL, (PBYTE)*ptr, lpDataLen);
-           if(retval != ERROR_SUCCESS) {
++          if (retval != ERROR_SUCCESS) {
 +              Safefree(ptr);
 +              ptr = NULL;
 +          }
 +      }
 +      RegCloseKey(handle);
 +    }
 +    return *ptr;
 +}
 +
 +char*
 +GetRegStr(const char *lpszValueName, char** ptr, DWORD* lpDataLen)
 +{
 +    *ptr = GetRegStrFromKey(HKEY_CURRENT_USER, lpszValueName, ptr, lpDataLen);
-     if(*ptr == NULL)
++    if (*ptr == NULL)
 +    {
 +      *ptr = GetRegStrFromKey(HKEY_LOCAL_MACHINE, lpszValueName, ptr, lpDataLen);
 +    }
 +    return *ptr;
 +}
 +
 +char *
 +win32_get_stdlib(char *pl)
 +{
 +    static char szStdLib[] = "lib";
 +    int len = 0, newSize;
 +    char szBuffer[MAX_PATH+1];
 +    char szModuleName[MAX_PATH];
 +    int result;
 +    DWORD dwDataLen;
 +    char *lpPath = NULL;
 +    char *ptr;
 +
 +    /* $stdlib = $HKCU{"lib-$]"} || $HKLM{"lib-$]"} || $HKCU{"lib"} || $HKLM{"lib"} || "";  */
 +    sprintf(szBuffer, "%s-%s", szStdLib, pl);
 +    lpPath = GetRegStr(szBuffer, &lpPath, &dwDataLen);
-     if(lpPath == NULL)
++    if (lpPath == NULL)
 +      lpPath = GetRegStr(szStdLib, &lpPath, &dwDataLen);
 +
 +    /* $stdlib .= ";$EMD/../../lib" */
 +    GetModuleFileName(GetModuleHandle(NULL), szModuleName, sizeof(szModuleName));
 +    ptr = strrchr(szModuleName, '\\');
-     if(ptr != NULL)
++    if (ptr != NULL)
 +    {
 +      *ptr = '\0';
 +      ptr = strrchr(szModuleName, '\\');
-       if(ptr != NULL)
++      if (ptr != NULL)
 +      {
 +          *ptr = '\0';
 +          ptr = strrchr(szModuleName, '\\');
 +      }
 +    }
-     if(ptr == NULL)
++    if (ptr == NULL)
 +    {
 +      ptr = szModuleName;
 +      *ptr = '\\';
 +    }
 +    strcpy(++ptr, szStdLib);
 +
 +    /* check that this path exists */
 +    GetCurrentDirectory(sizeof(szBuffer), szBuffer);
 +    result = SetCurrentDirectory(szModuleName);
 +    SetCurrentDirectory(szBuffer);
-     if(result == 0)
++    if (result == 0)
 +    {
 +      GetModuleFileName(GetModuleHandle(NULL), szModuleName, sizeof(szModuleName));
 +      ptr = strrchr(szModuleName, '\\');
-       if(ptr != NULL)
++      if (ptr != NULL)
 +          strcpy(++ptr, szStdLib);
 +    }
 +
 +    newSize = strlen(szModuleName) + 1;
-     if(lpPath != NULL)
++    if (lpPath != NULL)
 +    {
 +      len = strlen(lpPath);
 +      newSize += len + 1; /* plus 1 for ';' */
 +      lpPath = Renew(lpPath, newSize, char);
 +    }
 +    else
 +      New(1310, lpPath, newSize, char);
 +
-     if(lpPath != NULL)
++    if (lpPath != NULL)
 +    {
-       if(len != 0)
++      if (len != 0)
 +          lpPath[len++] = ';';
 +      strcpy(&lpPath[len], szModuleName);
 +    }
 +    return lpPath;
 +}
 +
 +char *
 +get_sitelib_part(char* lpRegStr, char* lpPathStr)
 +{
 +    char szBuffer[MAX_PATH+1];
 +    char szModuleName[MAX_PATH];
 +    DWORD dwDataLen;
 +    int len = 0;
 +    int result;
 +    char *lpPath = NULL;
 +    char *ptr;
 +
 +    lpPath = GetRegStr(lpRegStr, &lpPath, &dwDataLen);
 +
 +    /* $sitelib .= ";$EMD/../../../<lpPathStr>" */
 +    GetModuleFileName(GetModuleHandle(NULL), szModuleName, sizeof(szModuleName));
 +    ptr = strrchr(szModuleName, '\\');
-     if(ptr != NULL)
++    if (ptr != NULL)
 +    {
 +      *ptr = '\0';
 +      ptr = strrchr(szModuleName, '\\');
-       if(ptr != NULL)
++      if (ptr != NULL)
 +      {
 +          *ptr = '\0';
 +          ptr = strrchr(szModuleName, '\\');
-           if(ptr != NULL)
++          if (ptr != NULL)
 +          {
 +              *ptr = '\0';
 +              ptr = strrchr(szModuleName, '\\');
 +          }
 +      }
 +    }
-     if(ptr == NULL)
++    if (ptr == NULL)
 +    {
 +      ptr = szModuleName;
 +      *ptr = '\\';
 +    }
 +    strcpy(++ptr, lpPathStr);
 +
 +    /* check that this path exists */
 +    GetCurrentDirectory(sizeof(szBuffer), szBuffer);
 +    result = SetCurrentDirectory(szModuleName);
 +    SetCurrentDirectory(szBuffer);
 +
-     if(result)
++    if (result)
 +    {
 +      int newSize = strlen(szModuleName) + 1;
-       if(lpPath != NULL)
++      if (lpPath != NULL)
 +      {
 +          len = strlen(lpPath);
 +          newSize += len + 1; /* plus 1 for ';' */
 +          lpPath = Renew(lpPath, newSize, char);
 +      }
 +      else
 +          New(1311, lpPath, newSize, char);
 +
-       if(lpPath != NULL)
++      if (lpPath != NULL)
 +      {
-           if(len != 0)
++          if (len != 0)
 +              lpPath[len++] = ';';
 +          strcpy(&lpPath[len], szModuleName);
 +      }
 +    }
 +    return lpPath;
 +}
 +
  char *
 -win32_perllib_path(char *sfx,...)
 +win32_get_sitelib(char *pl)
  {
 -    va_list ap;
 -    char *end;
 -    va_start(ap,sfx);
 -    GetModuleFileName((w32_perldll_handle == INVALID_HANDLE_VALUE) 
 -                    ? GetModuleHandle(NULL)
 -                    : w32_perldll_handle,
 -                    w32_perllib_root, 
 -                    sizeof(w32_perllib_root));
 -    *(end = strrchr(w32_perllib_root, '\\')) = '\0';
 -    if (stricmp(end-4,"\\bin") == 0)
 -     end -= 4;
 -    strcpy(end,"\\lib");
 -    while (sfx)
 -     {
 -      strcat(end,"\\");
 -      strcat(end,sfx);
 -      sfx = va_arg(ap,char *);
 -     }
 -    va_end(ap); 
 -    return (w32_perllib_root);
 +    static char szSiteLib[] = "sitelib";
 +    char szRegStr[40];
 +    char szPathStr[MAX_PATH];
 +    char *lpPath1;
 +    char *lpPath2;
 +
 +    /* $HKCU{"sitelib-$]"} || $HKLM{"sitelib-$]"} . ---; */
 +    sprintf(szRegStr, "%s-%s", szSiteLib, pl);
 +    sprintf(szPathStr, "site\\%s\\lib", pl);
 +    lpPath1 = get_sitelib_part(szRegStr, szPathStr);
 +
 +    /* $HKCU{'sitelib'} || $HKLM{'sitelib'} . ---; */
 +    lpPath2 = get_sitelib_part(szSiteLib, "site\\lib");
-     if(lpPath1 == NULL)
++    if (lpPath1 == NULL)
 +      return lpPath2;
 +
-     if(lpPath2 == NULL)
++    if (lpPath2 == NULL)
 +      return lpPath1;
 +
 +    int len = strlen(lpPath1);
 +    int newSize = len + strlen(lpPath2) + 2; /* plus one for ';' */
 +
 +    lpPath1 = Renew(lpPath1, newSize, char);
-     if(lpPath1 != NULL)
++    if (lpPath1 != NULL)
 +    {
 +      lpPath1[len++] = ';';
 +      strcpy(&lpPath1[len], lpPath2);
 +    }
 +    Safefree(lpPath2);
 +    return lpPath1;
  }
  
  
@@@ -1018,11 -778,6 +1003,11 @@@ win32_getenv(const char *name
        curlen = needlen;
        needlen = GetEnvironmentVariable(name,curitem,curlen);
      }
-     if(curitem == NULL)
++    if (curitem == NULL)
 +    {
-       if(strcmp("PERL5DB", name) == 0)
++      if (strcmp("PERL5DB", name) == 0)
 +          curitem = GetRegStr(name, &curitem, &curlen);
 +    }
      return curitem;
  }
  
@@@ -2328,713 -2105,6 +2335,713 @@@ XS(w32_Sleep
      XSRETURN_YES;
  }
  
 +#define TMPBUFSZ 1024
 +#define MAX_LENGTH 2048
 +#define SUCCESSRETURNED(x)    (x == ERROR_SUCCESS)
 +#define REGRETURN(x) XSRETURN_IV(SUCCESSRETURNED(x))
 +#define SvHKEY(index) (HKEY)((unsigned long)SvIV(index))
 +#define SETIV(index,value) sv_setiv(ST(index), value)
 +#define SETNV(index,value) sv_setnv(ST(index), value)
 +#define SETPV(index,string) sv_setpv(ST(index), string)
 +#define SETPVN(index, buffer, length) sv_setpvn(ST(index), (char*)buffer, length)
 +#define SETHKEY(index, hkey)  SETIV(index,(long)hkey)
 +
 +static time_t ft2timet(FILETIME *ft)
 +{
 +    SYSTEMTIME st;
 +    struct tm tm;
 +
 +    FileTimeToSystemTime(ft, &st);
 +    tm.tm_sec = st.wSecond;
 +    tm.tm_min = st.wMinute;
 +    tm.tm_hour = st.wHour;
 +    tm.tm_mday = st.wDay;
 +    tm.tm_mon = st.wMonth - 1;
 +    tm.tm_year = st.wYear - 1900;
 +    tm.tm_wday = st.wDayOfWeek;
 +    tm.tm_yday = -1;
 +    tm.tm_isdst = -1;
 +    return mktime (&tm);
 +}
 +
 +static
 +XS(w32_RegCloseKey)
 +{
 +    dXSARGS;
 +
-     if(items != 1) 
++    if (items != 1) 
 +    {
 +      croak("usage: Win32::RegCloseKey($hkey);\n");
 +    }
 +
 +    REGRETURN(RegCloseKey(SvHKEY(ST(0))));
 +}
 +
 +static
 +XS(w32_RegConnectRegistry)
 +{
 +    dXSARGS;
 +    HKEY handle;
 +
-     if(items != 3) 
++    if (items != 3) 
 +    {
 +      croak("usage: Win32::RegConnectRegistry($machine, $hkey, $handle);\n");
 +    }
 +
-     if(SUCCESSRETURNED(RegConnectRegistry((char *)SvPV(ST(0), na), SvHKEY(ST(1)), &handle))) 
++    if (SUCCESSRETURNED(RegConnectRegistry((char *)SvPV(ST(0), na), SvHKEY(ST(1)), &handle))) 
 +    {
 +      SETHKEY(2,handle);
 +      XSRETURN_YES;
 +    }
 +    XSRETURN_NO;
 +}
 +
 +static
 +XS(w32_RegCreateKey)
 +{
 +    dXSARGS;
 +    HKEY handle;
 +    DWORD disposition;
 +    long retval;
 +
-     if(items != 3) 
++    if (items != 3) 
 +    {
 +      croak("usage: Win32::RegCreateKey($hkey, $subkey, $handle);\n");
 +    }
 +
 +    retval =  RegCreateKeyEx(SvHKEY(ST(0)), (char *)SvPV(ST(1), na), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
 +                                      NULL, &handle, &disposition);
 +
-     if(SUCCESSRETURNED(retval)) 
++    if (SUCCESSRETURNED(retval)) 
 +    {
 +      SETHKEY(2,handle);
 +      XSRETURN_YES;
 +    }
 +    XSRETURN_NO;
 +}
 +
 +static
 +XS(w32_RegCreateKeyEx)
 +{
 +    dXSARGS;
 +
 +    unsigned int length;
 +    long retval;
 +    HKEY hkey, handle;
 +    char *subkey;
 +    char *keyclass;
 +    DWORD options, disposition;
 +    REGSAM sam;
 +    SECURITY_ATTRIBUTES sa, *psa;
 +
-     if(items != 9) 
++    if (items != 9) 
 +    {
 +      croak("usage: Win32::RegCreateKeyEx($hkey, $subkey, $reserved, $class, $options, $sam, "
 +                      "$security, $handle, $disposition);\n");
 +    }
 +
 +    hkey = SvHKEY(ST(0));
 +    subkey = (char *)SvPV(ST(1), na);
 +    keyclass = (char *)SvPV(ST(3), na);
 +    options = (DWORD) ((unsigned long)SvIV(ST(4)));
 +    sam = (REGSAM) ((unsigned long)SvIV(ST(5)));
 +    psa = (SECURITY_ATTRIBUTES*)SvPV(ST(6), length);
-     if(length != sizeof(SECURITY_ATTRIBUTES))
++    if (length != sizeof(SECURITY_ATTRIBUTES))
 +    {
 +      psa = &sa;
 +      memset(&sa, 0, sizeof(SECURITY_ATTRIBUTES));
 +      sa.nLength = sizeof(SECURITY_ATTRIBUTES);
 +    }
 +
 +    retval =  RegCreateKeyEx(hkey, subkey, 0, keyclass, options, sam,
 +                                      psa, &handle, &disposition);
 +
-     if(SUCCESSRETURNED(retval)) 
++    if (SUCCESSRETURNED(retval)) 
 +    {
-       if(psa == &sa)
++      if (psa == &sa)
 +          SETPVN(6, &sa, sizeof(sa));
 +
 +      SETHKEY(7,handle);
 +      SETIV(8,disposition);
 +      XSRETURN_YES;
 +    }
 +    XSRETURN_NO;
 +}
 +
 +static
 +XS(w32_RegDeleteKey)
 +{
 +    dXSARGS;
 +
-     if(items != 2) 
++    if (items != 2) 
 +    {
 +      croak("usage: Win32::RegDeleteKey($hkey, $subkey);\n");
 +    }
 +
 +    REGRETURN(RegDeleteKey(SvHKEY(ST(0)), (char *)SvPV(ST(1), na)));
 +}
 +
 +static
 +XS(w32_RegDeleteValue)
 +{
 +    dXSARGS;
 +
-     if(items != 2) 
++    if (items != 2) 
 +    {
 +      croak("usage: Win32::RegDeleteValue($hkey, $valname);\n");
 +    }
 +
 +    REGRETURN(RegDeleteValue(SvHKEY(ST(0)), (char *)SvPV(ST(1), na)));
 +}
 +
 +static
 +XS(w32_RegEnumKey)
 +{
 +    dXSARGS;
 +
 +    char keybuffer[TMPBUFSZ];
 +
-     if(items != 3) 
++    if (items != 3) 
 +    {
 +      croak("usage: Win32::RegEnumKey($hkey, $idx, $subkeyname);\n");
 +    }
 +
-     if(SUCCESSRETURNED(RegEnumKey(SvHKEY(ST(0)), SvIV(ST(1)), keybuffer, sizeof(keybuffer)))) 
++    if (SUCCESSRETURNED(RegEnumKey(SvHKEY(ST(0)), SvIV(ST(1)), keybuffer, sizeof(keybuffer)))) 
 +    {
 +      SETPV(2, keybuffer);
 +      XSRETURN_YES;
 +    }
 +    XSRETURN_NO;
 +}
 +
 +static
 +XS(w32_RegEnumKeyEx)
 +{
 +    dXSARGS;
 +    int length;
 +
 +    DWORD keysz, classsz;
 +    char keybuffer[TMPBUFSZ];
 +    char classbuffer[TMPBUFSZ];
 +    long retval;
 +    FILETIME filetime;
 +
-     if(items != 6)                    
++    if (items != 6)                   
 +    {
 +      croak("usage: Win32::RegEnumKeyEx($hkey, $idx, $subkeyname, $reserved, $class, $time);\n");
 +    }
 +
 +    keysz = sizeof(keybuffer);
 +    classsz = sizeof(classbuffer);
 +    retval = RegEnumKeyEx(SvHKEY(ST(0)), SvIV(ST(1)), keybuffer, &keysz, 0,
 +                                              classbuffer, &classsz, &filetime);
-     if(SUCCESSRETURNED(retval)) 
++    if (SUCCESSRETURNED(retval)) 
 +    {
 +      SETPV(2, keybuffer);
 +      SETPV(4, classbuffer);
 +      SETIV(5, ft2timet(&filetime));
 +      XSRETURN_YES;
 +    }
 +    XSRETURN_NO;
 +}
 +
 +static
 +XS(w32_RegEnumValue)
 +{
 +    dXSARGS;
 +    HKEY hkey;
 +    DWORD type, namesz, valsz;
 +    long retval;
 +    static HKEY last_hkey;
 +    char  myvalbuf[MAX_LENGTH];
 +    char  mynambuf[MAX_LENGTH];
 +
-     if(items != 6) 
++    if (items != 6) 
 +    {
 +      croak("usage: Win32::RegEnumValue($hkey, $i, $name, $reserved, $type, $value);\n");
 +    }
 +
 +    hkey = SvHKEY(ST(0));
 +
 +    // If this is a new key, find out how big the maximum name and value sizes are and
 +    // allocate space for them. Free any old storage and set the old key value to the
 +    // current key.
 +
-     if(hkey != (HKEY)last_hkey) 
++    if (hkey != (HKEY)last_hkey) 
 +    {
 +      char keyclass[TMPBUFSZ];
 +      DWORD classsz, subkeys, maxsubkey, maxclass, values, salen, maxnamesz, maxvalsz;
 +      FILETIME ft;
 +      classsz = sizeof(keyclass);
 +      retval = RegQueryInfoKey(hkey, keyclass, &classsz, 0, &subkeys, &maxsubkey, &maxclass,
 +                                              &values, &maxnamesz, &maxvalsz, &salen, &ft);
 +
-       if(!SUCCESSRETURNED(retval)) 
++      if (!SUCCESSRETURNED(retval)) 
 +      {
 +          XSRETURN_NO;
 +      }
 +      memset(myvalbuf, 0, MAX_LENGTH);
 +      memset(mynambuf, 0, MAX_LENGTH);
 +      last_hkey = hkey;
 +    }
 +
 +    namesz = MAX_LENGTH;
 +    valsz = MAX_LENGTH;
 +    retval = RegEnumValue(hkey, SvIV(ST(1)), mynambuf, &namesz, 0, &type, (LPBYTE) myvalbuf, &valsz);
-     if(!SUCCESSRETURNED(retval)) 
++    if (!SUCCESSRETURNED(retval)) 
 +    {
 +      XSRETURN_NO;
 +    }
 +    else 
 +    {
 +      SETPV(2, mynambuf);
 +      SETIV(4, type);
 +
 +      // return includes the null terminator so delete it if REG_SZ, REG_MULTI_SZ or REG_EXPAND_SZ
 +      switch(type)
 +      {
 +          case REG_SZ:
 +          case REG_MULTI_SZ:
 +          case REG_EXPAND_SZ:
-               if(valsz)
++              if (valsz)
 +                  --valsz;
 +          case REG_BINARY:
 +              SETPVN(5, myvalbuf, valsz);
 +              break;
 +
 +          case REG_DWORD_BIG_ENDIAN:
 +              {
 +                  BYTE tmp = myvalbuf[0];
 +                  myvalbuf[0] = myvalbuf[3];
 +                  myvalbuf[3] = tmp;
 +                  tmp = myvalbuf[1];
 +                  myvalbuf[1] = myvalbuf[2];
 +                  myvalbuf[2] = tmp;
 +              }
 +          case REG_DWORD_LITTLE_ENDIAN:       // same as REG_DWORD
 +              SETNV(5, (double)*((DWORD*)myvalbuf));
 +              break;
 +
 +          default:
 +              break;
 +      }
 +
 +      XSRETURN_YES;
 +    }
 +}
 +
 +static
 +XS(w32_RegFlushKey)
 +{
 +    dXSARGS;
 +
-     if(items != 1) 
++    if (items != 1) 
 +    {
 +      croak("usage: Win32::RegFlushKey($hkey);\n");
 +    }
 +
 +    REGRETURN(RegFlushKey(SvHKEY(ST(0))));
 +}
 +
 +static
 +XS(w32_RegGetKeySecurity)
 +{
 +    dXSARGS;
 +    SECURITY_DESCRIPTOR sd;
 +    DWORD sdsz;
 +
-     if(items != 3) 
++    if (items != 3) 
 +    {
 +      croak("usage: Win32::RegGetKeySecurity($hkey, $security_info, $security_descriptor);\n");
 +    }
 +
-     if(SUCCESSRETURNED(RegGetKeySecurity(SvHKEY(ST(0)), SvIV(ST(1)), &sd, &sdsz))) 
++    if (SUCCESSRETURNED(RegGetKeySecurity(SvHKEY(ST(0)), SvIV(ST(1)), &sd, &sdsz))) 
 +    {
 +      SETPVN(2, &sd, sdsz);
 +      XSRETURN_YES;
 +    }
 +    XSRETURN_NO;
 +}
 +
 +static
 +XS(w32_RegLoadKey)
 +{
 +    dXSARGS;
 +
-     if(items != 3) 
++    if (items != 3) 
 +    {
 +      croak("usage: Win32::RegLoadKey($hkey, $subkey, $filename);\n");
 +    }
 +
 +    REGRETURN(RegLoadKey(SvHKEY(ST(0)), (char *)SvPV(ST(1), na), (char *)SvPV(ST(2), na)));
 +}
 +
 +static
 +XS(w32_RegNotifyChangeKeyValue)
 +{
 +    croak("Win32::RegNotifyChangeKeyValue not yet implemented!\n");
 +}
 +
 +static
 +XS(w32_RegOpenKey)
 +{
 +    dXSARGS;
 +    HKEY handle;
 +
-     if(items != 3) 
++    if (items != 3) 
 +    {
 +      croak("usage: Win32::RegOpenKey($hkey, $subkey, $handle);\n");
 +    }
 +
-     if(SUCCESSRETURNED(RegOpenKey(SvHKEY(ST(0)), (char *)SvPV(ST(1), na), &handle))) 
++    if (SUCCESSRETURNED(RegOpenKey(SvHKEY(ST(0)), (char *)SvPV(ST(1), na), &handle))) 
 +    {
 +      SETHKEY(2,handle);
 +      XSRETURN_YES;
 +    }
 +    XSRETURN_NO;
 +}
 +
 +static
 +XS(w32_RegOpenKeyEx)
 +{
 +    dXSARGS;
 +    HKEY handle;
 +
-     if(items != 5) 
++    if (items != 5) 
 +    {
 +      croak("usage: Win32::RegOpenKeyEx($hkey, $subkey, $reserved, $sam, $handle);\n");
 +    }
 +
-     if(SUCCESSRETURNED(RegOpenKeyEx(SvHKEY(ST(0)), (char *)SvPV(ST(1), na), 
++    if (SUCCESSRETURNED(RegOpenKeyEx(SvHKEY(ST(0)), (char *)SvPV(ST(1), na), 
 +                              0, (REGSAM) ((unsigned long)SvIV(ST(3))), &handle))) 
 +    {
 +      SETHKEY(4,handle);
 +      XSRETURN_YES;
 +    }
 +    XSRETURN_NO;
 +}
 +
 +#pragma optimize("", off)
 +static
 +XS(w32_RegQueryInfoKey)
 +{
 +    dXSARGS;
 +    int length;
 +
 +    char keyclass[TMPBUFSZ];
 +    DWORD subkeys, maxsubkey, maxclass, values, maxvalname, maxvaldata;
 +    DWORD seclen, classsz;
 +    FILETIME ft;
 +    long retval;
 +
-     if(items != 10) 
++    if (items != 10) 
 +    {
 +      croak("usage: Win32::RegQueryInfoKey($hkey, $class, $numsubkeys, $maxsubkey,"
 +              "$maxclass, $values, $maxvalname, $maxvaldata, $secdesclen,"
 +                      "$lastwritetime);\n");
 +    }
 +
 +    classsz = sizeof(keyclass);
 +    retval = RegQueryInfoKey(SvHKEY(ST(0)), keyclass, &classsz, 0, &subkeys, &maxsubkey,
 +                              &maxclass, &values, &maxvalname, &maxvaldata,
 +                                      &seclen, &ft);
-     if(SUCCESSRETURNED(retval)) 
++    if (SUCCESSRETURNED(retval)) 
 +    {
 +      SETPV(1, keyclass);
 +      SETIV(2, subkeys);
 +      SETIV(3, maxsubkey);
 +      SETIV(4, maxclass);
 +      SETIV(5, values);
 +      SETIV(6, maxvalname);
 +      SETIV(7, maxvaldata);
 +      SETIV(8, seclen);
 +      SETIV(9, ft2timet(&ft));
 +      XSRETURN_YES;
 +    }
 +    XSRETURN_NO;
 +}
 +#pragma optimize("", on)
 +
 +static
 +XS(w32_RegQueryValue)
 +{
 +    dXSARGS;
 +
 +    unsigned char databuffer[TMPBUFSZ*2];
 +    long datasz = sizeof(databuffer);
 +
-     if(items != 3) 
++    if (items != 3) 
 +    {
 +      croak("usage: Win32::RegQueryValue($hkey, $valuename, $data);\n");
 +    }
 +
-     if(SUCCESSRETURNED(RegQueryValue(SvHKEY(ST(0)), SvPV(ST(1), na), (char*)databuffer, &datasz))) 
++    if (SUCCESSRETURNED(RegQueryValue(SvHKEY(ST(0)), SvPV(ST(1), na), (char*)databuffer, &datasz))) 
 +    {
 +      // return includes the null terminator so delete it
 +      SETPVN(2, databuffer, --datasz);
 +      XSRETURN_YES;
 +    }
 +    XSRETURN_NO;
 +}
 +
 +static
 +XS(w32_RegQueryValueEx)
 +{
 +    dXSARGS;
 +
 +    unsigned char databuffer[TMPBUFSZ*2];
 +    DWORD datasz = sizeof(databuffer);
 +    DWORD type;
 +    LONG result;
 +    LPBYTE ptr = databuffer;
 +
-     if(items != 5) 
++    if (items != 5) 
 +    {
 +      croak("usage: Win32::RegQueryValueEx($hkey, $valuename, $reserved, $type, $data);\n");
 +    }
 +
 +    result = RegQueryValueEx(SvHKEY(ST(0)), SvPV(ST(1), na), 0, &type, ptr, &datasz);
-     if(result == ERROR_MORE_DATA)
++    if (result == ERROR_MORE_DATA)
 +    {
 +      New(0, ptr, datasz+1, BYTE);
 +      result = RegQueryValueEx(SvHKEY(ST(0)), SvPV(ST(1), na), 0, &type, ptr, &datasz);
 +    }
-     if(SUCCESSRETURNED(result)) 
++    if (SUCCESSRETURNED(result)) 
 +    {
 +      SETIV(3, type);
 +
 +      // return includes the null terminator so delete it if REG_SZ, REG_MULTI_SZ or REG_EXPAND_SZ
 +      switch(type)
 +      {
 +          case REG_SZ:
 +          case REG_MULTI_SZ:
 +          case REG_EXPAND_SZ:
 +              --datasz;
 +          case REG_BINARY:
 +              SETPVN(4, ptr, datasz);
 +              break;
 +
 +          case REG_DWORD_BIG_ENDIAN:
 +              {
 +                  BYTE tmp = ptr[0];
 +                  ptr[0] = ptr[3];
 +                  ptr[3] = tmp;
 +                  tmp = ptr[1];
 +                  ptr[1] = ptr[2];
 +                  ptr[2] = tmp;
 +              }
 +          case REG_DWORD_LITTLE_ENDIAN:       // same as REG_DWORD
 +              SETNV(4, (double)*((DWORD*)ptr));
 +              break;
 +
 +          default:
 +              break;
 +      }
 +
-       if(ptr != databuffer)
++      if (ptr != databuffer)
 +          safefree(ptr);
 +
 +      XSRETURN_YES;
 +    }
-     if(ptr != databuffer)
++    if (ptr != databuffer)
 +      safefree(ptr);
 +
 +    XSRETURN_NO;
 +}
 +
 +static
 +XS(w32_RegReplaceKey)
 +{
 +    dXSARGS;
 +
-     if(items != 4) 
++    if (items != 4) 
 +    {
 +      croak("usage: Win32::RegReplaceKey($hkey, $subkey, $newfile, $oldfile);\n");
 +    }
 +
 +    REGRETURN(RegReplaceKey(SvHKEY(ST(0)), (char *)SvPV(ST(1), na), (char *)SvPV(ST(2), na), (char *)SvPV(ST(3), na)));
 +}
 +
 +static
 +XS(w32_RegRestoreKey)
 +{
 +    dXSARGS;
 +
-     if(items < 2 || items > 3) 
++    if (items < 2 || items > 3) 
 +    {
 +      croak("usage: Win32::RegRestoreKey($hkey, $filename [, $flags]);\n");
 +    }
 +
 +    REGRETURN(RegRestoreKey(SvHKEY(ST(0)), (char*)SvPV(ST(1), na), (DWORD)((items == 3) ? SvIV(ST(2)) : 0)));
 +}
 +
 +static
 +XS(w32_RegSaveKey)
 +{
 +    dXSARGS;
 +
-     if(items != 2) 
++    if (items != 2) 
 +    {
 +      croak("usage: Win32::RegSaveKey($hkey, $filename);\n");
 +    }
 +
 +    REGRETURN(RegSaveKey(SvHKEY(ST(0)), (char *)SvPV(ST(1), na), NULL));
 +}
 +
 +static
 +XS(w32_RegSetKeySecurity)
 +{
 +    dXSARGS;
 +
-     if(items != 3) 
++    if (items != 3) 
 +    {
 +      croak("usage: Win32::RegSetKeySecurity($hkey, $security_info, $security_descriptor);\n");
 +    }
 +
 +    REGRETURN(RegSetKeySecurity(SvHKEY(ST(0)), SvIV(ST(1)), (SECURITY_DESCRIPTOR*)SvPV(ST(2), na)));
 +}
 +
 +static
 +XS(w32_RegSetValue)
 +{
 +    dXSARGS;
 +
 +    unsigned int size;
 +    char *buffer;
 +
-     if(items != 4) 
++    if (items != 4) 
 +    {
 +      croak("usage: Win32::RegSetValue($hkey, $subKey, $type, $data);\n");
 +    }
 +
 +    DWORD type = SvIV(ST(2));
-     if(type != REG_SZ && type != REG_EXPAND_SZ)
++    if (type != REG_SZ && type != REG_EXPAND_SZ)
 +    {
 +      croak("Win32::RegSetValue: Type was not REG_SZ or REG_EXPAND_SZ, cannot set %s\n", (char *)SvPV(ST(1), na));
 +    }
 +
 +    buffer = (char *)SvPV(ST(3), size);
 +    REGRETURN(RegSetValue(SvHKEY(ST(0)), SvPV(ST(1), na), REG_SZ, buffer, size));
 +}
 +
 +static
 +XS(w32_RegSetValueEx)
 +{
 +    dXSARGS;
 +
 +    DWORD type;
 +    DWORD val;
 +    unsigned int size;
 +    char *buffer;
 +
-     if(items != 5) 
++    if (items != 5) 
 +    {
 +      croak("usage: Win32::RegSetValueEx($hkey, $valname, $reserved, $type, $data);\n");
 +    }
 +
 +    type = (DWORD)SvIV(ST(3));
 +    switch(type) 
 +    {
 +      case REG_SZ:
 +      case REG_BINARY:
 +      case REG_MULTI_SZ:
 +      case REG_EXPAND_SZ:
 +          buffer = (char *)SvPV(ST(4), size);
-           if(type != REG_BINARY)
++          if (type != REG_BINARY)
 +              size++; // include null terminator in size
 +
 +          REGRETURN(RegSetValueEx(SvHKEY(ST(0)), (char *)SvPV(ST(1), na), 0, type, (PBYTE) buffer, size));
 +          break;
 +
 +      case REG_DWORD_BIG_ENDIAN:
 +      case REG_DWORD_LITTLE_ENDIAN: // Same as REG_DWORD
 +          val = (DWORD)SvIV(ST(4));
 +          REGRETURN(RegSetValueEx(SvHKEY(ST(0)), (char *)SvPV(ST(1), na), 0, type, (PBYTE) &val, sizeof(DWORD)));
 +          break;
 +
 +      default:
 +          croak("Win32::RegSetValueEx: Type not specified, cannot set %s\n", (char *)SvPV(ST(1), na));
 +    }
 +}
 +
 +static
 +XS(w32_RegUnloadKey)
 +{
 +    dXSARGS;
 +
-     if(items != 2) 
++    if (items != 2) 
 +    {
 +      croak("usage: Win32::RegUnLoadKey($hkey, $subkey);\n");
 +    }
 +
 +    REGRETURN(RegUnLoadKey(SvHKEY(ST(0)), (char *)SvPV(ST(1), na)));
 +}
 +
 +static
 +XS(w32_RegisterServer)
 +{
 +    dXSARGS;
 +    BOOL bSuccess = FALSE;
 +    HINSTANCE hInstance;
 +    unsigned int length;
 +    FARPROC sFunc;
 +
-     if(items != 1) 
++    if (items != 1) 
 +    {
 +      croak("usage: Win32::RegisterServer($LibraryName)\n");
 +    }
 +
 +    hInstance = LoadLibrary((char *)SvPV(ST(0), length));
-     if(hInstance != NULL)
++    if (hInstance != NULL)
 +    {
 +      sFunc = GetProcAddress(hInstance, "DllRegisterServer");
-       if(sFunc != NULL)
++      if (sFunc != NULL)
 +      {
 +          bSuccess = (sFunc() == 0);
 +      }
 +      FreeLibrary(hInstance);
 +    }
 +
-     if(bSuccess)
++    if (bSuccess)
 +    {
 +      XSRETURN_YES;
 +    }
 +    XSRETURN_NO;
 +}
 +
 +static
 +XS(w32_UnregisterServer)
 +{
 +    dXSARGS;
 +    BOOL bSuccess = FALSE;
 +    HINSTANCE hInstance;
 +    unsigned int length;
 +    FARPROC sFunc;
 +
-     if(items != 1) 
++    if (items != 1) 
 +    {
 +      croak("usage: Win32::UnregisterServer($LibraryName)\n");
 +    }
 +
 +    hInstance = LoadLibrary((char *)SvPV(ST(0), length));
-     if(hInstance != NULL)
++    if (hInstance != NULL)
 +    {
 +      sFunc = GetProcAddress(hInstance, "DllUnregisterServer");
-       if(sFunc != NULL)
++      if (sFunc != NULL)
 +      {
 +          bSuccess = (sFunc() == 0);
 +      }
 +      FreeLibrary(hInstance);
 +    }
 +
-     if(bSuccess)
++    if (bSuccess)
 +    {
 +      XSRETURN_YES;
 +    }
 +    XSRETURN_NO;
 +}
 +
 +
  void
  Perl_init_os_extras()
  {
diff --cc win32/win32.h
@@@ -168,6 -144,6 +168,13 @@@ typedef long              gid_t
  #  endif
  #endif
  
++#ifndef _O_NOINHERIT
++#  define _O_NOINHERIT        0x0080
++#  ifndef _NO_OLDNAMES
++#    define O_NOINHERIT       _O_NOINHERIT
++#  endif
++#endif
++
  #endif /* __MINGW32__ */
  
  /* compatibility stuff for other compilers goes here */
Simple merge
diff --cc x2p/util.c
Simple merge