Revision: 948
Author: tim.bunce
Date: Fri Dec 11 01:46:40 2009
Log: Updated ppport.h

http://code.google.com/p/perl-devel-nytprof/source/detail?r=948

Modified:
  /trunk/ppport.h

=======================================
--- /trunk/ppport.h     Wed Jul  2 09:09:18 2008
+++ /trunk/ppport.h     Fri Dec 11 01:46:40 2009
@@ -1,13 +1,12 @@
-/* $Id$ */
  #if 0
  <<'SKIP';
  #endif
  /*
  ----------------------------------------------------------------------

-    ppport.h -- Perl/Pollution/Portability Version 3.14
-
-    Automatically created by Devel::PPPort running under perl 5.008008.
+    ppport.h -- Perl/Pollution/Portability Version 3.19
+
+    Automatically created by Devel::PPPort running under perl 5.011002.

      Do NOT edit this file directly! -- Edit PPPort_pm.PL and the
      includes in parts/inc/ instead.
@@ -22,7 +21,7 @@

  =head1 NAME

-ppport.h - Perl/Pollution/Portability version 3.14
+ppport.h - Perl/Pollution/Portability version 3.19

  =head1 SYNOPSIS

@@ -218,6 +217,7 @@

      Function / Variable       Static Request               Global Request
       
-----------------------------------------------------------------------------------------
+    PL_parser                 NEED_PL_parser                
NEED_PL_parser_GLOBAL
      PL_signals                NEED_PL_signals               
NEED_PL_signals_GLOBAL
      eval_pv()                 NEED_eval_pv                  
NEED_eval_pv_GLOBAL
      grok_bin()                NEED_grok_bin                 
NEED_grok_bin_GLOBAL
@@ -227,12 +227,17 @@
      grok_oct()                NEED_grok_oct                 
NEED_grok_oct_GLOBAL
      load_module()             NEED_load_module              
NEED_load_module_GLOBAL
      my_snprintf()             NEED_my_snprintf              
NEED_my_snprintf_GLOBAL
+    my_sprintf()              NEED_my_sprintf               
NEED_my_sprintf_GLOBAL
      my_strlcat()              NEED_my_strlcat               
NEED_my_strlcat_GLOBAL
      my_strlcpy()              NEED_my_strlcpy               
NEED_my_strlcpy_GLOBAL
      newCONSTSUB()             NEED_newCONSTSUB              
NEED_newCONSTSUB_GLOBAL
      newRV_noinc()             NEED_newRV_noinc              
NEED_newRV_noinc_GLOBAL
+    newSV_type()              NEED_newSV_type               
NEED_newSV_type_GLOBAL
      newSVpvn_flags()          NEED_newSVpvn_flags           
NEED_newSVpvn_flags_GLOBAL
      newSVpvn_share()          NEED_newSVpvn_share           
NEED_newSVpvn_share_GLOBAL
+    pv_display()              NEED_pv_display               
NEED_pv_display_GLOBAL
+    pv_escape()               NEED_pv_escape                
NEED_pv_escape_GLOBAL
+    pv_pretty()               NEED_pv_pretty                
NEED_pv_pretty_GLOBAL
      sv_2pv_flags()            NEED_sv_2pv_flags             
NEED_sv_2pv_flags_GLOBAL
      sv_2pvbyte()              NEED_sv_2pvbyte               
NEED_sv_2pvbyte_GLOBAL
      sv_catpvf_mg()            NEED_sv_catpvf_mg             
NEED_sv_catpvf_mg_GLOBAL
@@ -353,7 +358,7 @@

  =head1 COPYRIGHT

-Version 3.x, Copyright (c) 2004-2008, Marcus Holland-Moritz.
+Version 3.x, Copyright (c) 2004-2009, Marcus Holland-Moritz.

  Version 2.x, Copyright (C) 2001, Paul Marquess.

@@ -373,7 +378,7 @@
  # Disable broken TRIE-optimization
  BEGIN { eval '${^RE_TRIE_MAXBUF} = -1' if $] >= 5.009004 && $] <= 5.009005  
}

-my $VERSION = 3.14;
+my $VERSION = 3.19;

  my %opt = (
    quiet     => 0,
@@ -443,6 +448,7 @@
  AvFILLp|5.004050||p
  AvFILL|||
  CLASS|||n
+CPERLscope|5.005000||p
  CX_CURPAD_SAVE|||
  CX_CURPAD_SV|||
  CopFILEAV|5.006000||p
@@ -461,6 +467,7 @@
  CvPADLIST|||
  CvSTASH|||
  CvWEAKOUTSIDE|||
+DEFSV_set|5.011000||p
  DEFSV|5.004050||p
  END_EXTERN_C|5.005000||p
  ENTER|||
@@ -475,10 +482,12 @@
  G_ARRAY|||
  G_DISCARD|||
  G_EVAL|||
+G_METHOD|5.006001||p
  G_NOARGS|||
  G_SCALAR|||
  G_VOID||5.004000|
  GetVars|||
+GvSVn|5.009003||p
  GvSV|||
  Gv_AMupdate|||
  HEf_SVKEY||5.004000|
@@ -491,6 +500,8 @@
  HeSVKEY||5.004000|
  HeUTF8||5.011000|
  HeVAL||5.004000|
+HvNAMELEN_get|5.009003||p
+HvNAME_get|5.009003||p
  HvNAME|||
  INT2PTR|5.006000||p
  IN_LOCALE_COMPILETIME|5.007002||p
@@ -538,6 +549,7 @@
  PAD_COMPNAME_OURSTASH|||
  PAD_COMPNAME_PV|||
  PAD_COMPNAME_TYPE|||
+PAD_DUP|||
  PAD_RESTORE_LOCAL|||
  PAD_SAVE_LOCAL|||
  PAD_SAVE_SETNULLPAD|||
@@ -546,6 +558,8 @@
  PAD_SET_CUR|||
  PAD_SVl|||
  PAD_SV|||
+PERLIO_FUNCS_CAST|5.009003||p
+PERLIO_FUNCS_DECL|5.009003||p
  PERL_ABS|5.008001||p
  PERL_BCDVERSION|5.011000||p
  PERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||p
@@ -593,6 +607,20 @@
  PERL_MAGIC_uvar|5.007002||p
  PERL_MAGIC_vec|5.007002||p
  PERL_MAGIC_vstring|5.008001||p
+PERL_PV_ESCAPE_ALL|5.009004||p
+PERL_PV_ESCAPE_FIRSTCHAR|5.009004||p
+PERL_PV_ESCAPE_NOBACKSLASH|5.009004||p
+PERL_PV_ESCAPE_NOCLEAR|5.009004||p
+PERL_PV_ESCAPE_QUOTE|5.009004||p
+PERL_PV_ESCAPE_RE|5.009005||p
+PERL_PV_ESCAPE_UNI_DETECT|5.009004||p
+PERL_PV_ESCAPE_UNI|5.009004||p
+PERL_PV_PRETTY_DUMP|5.009004||p
+PERL_PV_PRETTY_ELLIPSES|5.010000||p
+PERL_PV_PRETTY_LTGT|5.009004||p
+PERL_PV_PRETTY_NOCLEAR|5.010000||p
+PERL_PV_PRETTY_QUOTE|5.009004||p
+PERL_PV_PRETTY_REGPROP|5.009004||p
  PERL_QUAD_MAX|5.004000||p
  PERL_QUAD_MIN|5.004000||p
  PERL_REVISION|5.006000||p
@@ -604,6 +632,9 @@
  PERL_SHORT_MIN|5.004000||p
  PERL_SIGNALS_UNSAFE_FLAG|5.008001||p
  PERL_SUBVERSION|5.006000||p
+PERL_SYS_INIT3||5.006000|
+PERL_SYS_INIT|||
+PERL_SYS_TERM||5.011000|
  PERL_UCHAR_MAX|5.004000||p
  PERL_UCHAR_MIN|5.004000||p
  PERL_UINT_MAX|5.004000||p
@@ -625,6 +656,8 @@
  PL_DBsub|||pn
  PL_DBtrace|||pn
  PL_Sv|5.005000||p
+PL_bufend|5.011000||p
+PL_bufptr|5.011000||p
  PL_compiling|5.004050||p
  PL_copline|5.011000||p
  PL_curcop|5.004050||p
@@ -635,15 +668,22 @@
  PL_dirty|5.004050||p
  PL_dowarn|||pn
  PL_errgv|5.004050||p
+PL_error_count|5.011000||p
  PL_expect|5.011000||p
  PL_hexdigit|5.005000||p
  PL_hints|5.005000||p
+PL_in_my_stash|5.011000||p
+PL_in_my|5.011000||p
  PL_last_in_gv|||n
  PL_laststatval|5.005000||p
+PL_lex_state|5.011000||p
+PL_lex_stuff|5.011000||p
+PL_linestr|5.011000||p
  PL_modglobal||5.005000|n
  PL_na|5.004050||pn
  PL_no_modify|5.006000||p
-PL_ofs_sv|||n
+PL_ofsgv|||n
+PL_parser|5.009005||p
  PL_perl_destruct_level|5.004050||p
  PL_perldb|5.004050||p
  PL_ppaddr|5.006000||p
@@ -661,6 +701,7 @@
  PL_sv_yes|5.004050||pn
  PL_tainted|5.004050||p
  PL_tainting|5.004050||p
+PL_tokenbuf|5.011000||p
  POP_MULTICALL||5.011000|
  POPi|||n
  POPl|||n
@@ -672,6 +713,7 @@
  PTR2IV|5.006000||p
  PTR2NV|5.006000||p
  PTR2UV|5.006000||p
+PTR2nat|5.009003||p
  PTR2ul|5.007001||p
  PTRV|5.006000||p
  PUSHMARK|||
@@ -737,6 +779,7 @@
  SV_NOSTEAL|5.009002||p
  SV_SMAGIC|5.009003||p
  SV_UTF8_NO_ENCODING|5.008001||p
+SVfARG|5.009005||p
  SVf_UTF8|5.006000||p
  SVf|5.006000||p
  SVt_IV|||
@@ -789,6 +832,7 @@
  SvNVx|||
  SvNV|||
  SvOK|||
+SvOOK_offset||5.011000|
  SvOOK|||
  SvPOK_off|||
  SvPOK_only_UTF8||5.006000|
@@ -818,6 +862,7 @@
  SvPV_nomg_const_nolen|5.009003||p
  SvPV_nomg_const|5.009003||p
  SvPV_nomg|5.007002||p
+SvPV_renew|5.009003||p
  SvPV_set|||
  SvPVbyte_force||5.009002|
  SvPVbyte_nolen||5.006000|
@@ -943,6 +988,7 @@
  XPUSHp|||
  XPUSHs|||
  XPUSHu|5.004000||p
+XSPROTO|5.010000||p
  XSRETURN_EMPTY|||
  XSRETURN_IV|||
  XSRETURN_NO|||
@@ -999,7 +1045,6 @@
  av_delete||5.006000|
  av_exists||5.006000|
  av_extend|||
-av_fake|||
  av_fetch|||
  av_fill|||
  av_iter_p||5.011000|
@@ -1022,7 +1067,6 @@
  boot_core_PerlIO|||
  boot_core_UNIVERSAL|||
  boot_core_mro|||
-boot_core_xsutils|||
  bytes_from_utf8||5.007001|
  bytes_to_uni|||n
  bytes_to_utf8||5.006001|
@@ -1061,7 +1105,6 @@
  ck_grep|||
  ck_index|||
  ck_join|||
-ck_lengthconst|||
  ck_lfun|||
  ck_listiob|||
  ck_match|||
@@ -1071,7 +1114,6 @@
  ck_readline|||
  ck_repeat|||
  ck_require|||
-ck_retarget|||
  ck_return|||
  ck_rfun|||
  ck_rvconst|||
@@ -1101,13 +1143,13 @@
  cr_textfilter|||
  create_eval_scope|||
  croak_nocontext|||vn
+croak_xs_usage||5.011000|
  croak|||v
  csighandler||5.009003|n
  curmad|||
  custom_op_desc||5.007003|
  custom_op_name||5.007003|
  cv_ckproto_len|||
-cv_ckproto|||
  cv_clone|||
  cv_const_sv||5.004000|
  cv_dump|||
@@ -1253,8 +1295,8 @@
  expect_number|||
  fbm_compile||5.005000|
  fbm_instr||5.005000|
-fd_on_nosuid_fs|||
  feature_is_enabled|||
+fetch_cop_label||5.011000|
  filter_add|||
  filter_del|||
  filter_gets|||
@@ -1296,6 +1338,7 @@
  get_debug_opts|||
  get_hash_seed|||
  get_hv|5.006000||p
+get_isa_hash|||
  get_mstats|||
  get_no_modify|||
  get_num|||
@@ -1309,7 +1352,6 @@
  getcwd_sv||5.007002|
  getenv_len|||
  glob_2number|||
-glob_2pv|||
  glob_assign_glob|||
  glob_assign_ref|||
  gp_dup|||
@@ -1337,9 +1379,11 @@
  gv_fetchfile|||
  gv_fetchmeth_autoload||5.007003|
  gv_fetchmethod_autoload||5.004000|
+gv_fetchmethod_flags||5.011000|
  gv_fetchmethod|||
  gv_fetchmeth|||
-gv_fetchpvn_flags||5.009002|
+gv_fetchpvn_flags|5.009002||p
+gv_fetchpvs|5.009004||p
  gv_fetchpv|||
  gv_fetchsv||5.009002|
  gv_fullname3||5.004000|
@@ -1351,7 +1395,7 @@
  gv_init|||
  gv_name_set||5.009004|
  gv_stashpvn|5.004000||p
-gv_stashpvs||5.009003|
+gv_stashpvs|5.009003||p
  gv_stashpv|||
  gv_stashsv|||
  he_dup|||
@@ -1407,6 +1451,7 @@
  ibcmp|||
  incline|||
  incpush_if_exists|||
+incpush_use_sep|||
  incpush|||
  ingroup|||
  init_argv_symbols|||
@@ -1428,15 +1473,24 @@
  intuit_more|||
  invert|||
  io_close|||
+isALNUMC|5.006000||p
  isALNUM|||
  isALPHA|||
+isASCII|5.006000||p
+isBLANK|5.006001||p
+isCNTRL|5.006000||p
  isDIGIT|||
+isGRAPH|5.006000||p
+isGV_with_GP|5.009004||p
  isLOWER|||
+isPRINT|5.004000||p
+isPSXSPC|5.006001||p
+isPUNCT|5.006000||p
  isSPACE|||
  isUPPER|||
+isXDIGIT|5.006000||p
  is_an_int|||
  is_gv_magical_sv|||
-is_gv_magical|||
  is_handle_constructor|||n
  is_list_assignment|||
  is_lvalue_sub||5.007001|
@@ -1524,6 +1578,7 @@
  magic_clear_all_env|||
  magic_clearenv|||
  magic_clearhint|||
+magic_clearisa|||
  magic_clearpack|||
  magic_clearsig|||
  magic_dump||5.006000|
@@ -1573,10 +1628,10 @@
  magic_set|||
  magic_sizepack|||
  magic_wipepack|||
-magicname|||
  make_matcher|||
  make_trie_failtable|||
  make_trie|||
+malloc_good_size|||n
  malloced_size|||n
  malloc||5.007002|n
  markstack_grow|||
@@ -1585,6 +1640,7 @@
  memEQ|5.004000||p
  memNE|5.004000||p
  mem_collxfrm|||
+mem_log_common|||n
  mess_alloc|||
  mess_nocontext|||vn
  mess||5.006000|v
@@ -1609,13 +1665,17 @@
  more_bodies|||
  more_sv|||
  moreswitches|||
-mro_get_linear_isa_c3|||
+mro_get_from_name||5.011000|
  mro_get_linear_isa_dfs|||
  mro_get_linear_isa||5.009005|
+mro_get_private_data||5.011000|
  mro_isa_changed_in|||
  mro_meta_dup|||
  mro_meta_init|||
  mro_method_changed_in||5.009005|
+mro_register||5.011000|
+mro_set_mro||5.011000|
+mro_set_private_data||5.011000|
  mul128|||
  mulexp10|||n
  my_atof2||5.007002|
@@ -1669,7 +1729,7 @@
  my_setenv|||
  my_snprintf|5.009004||pvn
  my_socketpair||5.007003|n
-my_sprintf||5.009003|vn
+my_sprintf|5.009003||pvn
  my_stat|||
  my_strftime||5.007002|
  my_strlcat|5.009004||pn
@@ -1678,7 +1738,6 @@
  my_swap|||
  my_unexec|||
  my_vsnprintf||5.009004|n
-my|||
  need_utf8|||n
  newANONATTRSUB||5.006000|
  newANONHASH|||
@@ -1727,7 +1786,7 @@
  newSUB|||
  newSVOP|||
  newSVREF|||
-newSV_type||5.009005|
+newSV_type|5.009005||p
  newSVhek||5.009003|
  newSViv|||
  newSVnv|||
@@ -1774,7 +1833,6 @@
  num_overflow|||n
  offer_nice_chunk|||
  oopsAV|||
-oopsCV|||
  oopsHV|||
  op_clear|||
  op_const_sv|||
@@ -1860,9 +1918,9 @@
  ptr_table_store||5.009005|
  push_scope|||
  put_byte|||
-pv_display||5.006000|
-pv_escape||5.009004|
-pv_pretty||5.009004|
+pv_display|5.006000||p
+pv_escape|5.009004||p
+pv_pretty|5.009004||p
  pv_uni_display||5.007003|
  qerror|||
  qsortsvu|||
@@ -1881,6 +1939,7 @@
  refcounted_he_chain_2hv|||
  refcounted_he_fetch|||
  refcounted_he_free|||
+refcounted_he_new_common|||
  refcounted_he_new|||
  refcounted_he_value|||
  refkids|||
@@ -1904,7 +1963,6 @@
  reg_recode|||
  reg_scan_name|||
  reg_skipcomment|||
-reg_stringify||5.009005|
  reg_temp_copy|||
  reganode|||
  regatom|||
@@ -1964,6 +2022,7 @@
  save_I16||5.004000|
  save_I32|||
  save_I8||5.006000|
+save_adelete||5.011000|
  save_aelem||5.004050|
  save_alloc||5.006000|
  save_aptr|||
@@ -1981,7 +2040,9 @@
  save_gp||5.004000|
  save_hash|||
  save_hek_flags|||n
+save_helem_flags||5.011000|
  save_helem||5.004050|
+save_hints|||
  save_hptr|||
  save_int|||
  save_item|||
@@ -1993,8 +2054,12 @@
  save_mortalizesv||5.007001|
  save_nogv|||
  save_op|||
-save_padsv||5.007001|
+save_padsv_and_mortalize||5.011000|
  save_pptr|||
+save_pushi32ptr|||
+save_pushptri32ptr|||
+save_pushptrptr|||
+save_pushptr||5.011000|
  save_re_context||5.006000|
  save_scalar_at|||
  save_scalar|||
@@ -2037,6 +2102,7 @@
  scan_word|||
  scope|||
  screaminstr||5.005000|
+search_const|||
  seed||5.008001|
  sequence_num|||
  sequence_tail|||
@@ -2046,7 +2112,6 @@
  set_numeric_radix||5.006000|
  set_numeric_standard||5.006000|
  setdefout|||
-setenv_getix|||
  share_hek_flags|||
  share_hek||5.004000|
  si_dup|||
@@ -2070,6 +2135,7 @@
  start_subparse||5.004000|
  stashpv_hvname_match||5.011000|
  stdize_locale|||
+store_cop_label|||
  strEQ|||
  strGE|||
  strGT|||
@@ -2141,6 +2207,7 @@
  sv_destroyable||5.010000|
  sv_does||5.009004|
  sv_dump|||
+sv_dup_inc_multiple|||
  sv_dup|||
  sv_eq|||
  sv_exp_grow|||
@@ -2153,6 +2220,7 @@
  sv_grow|||
  sv_i_ncmp|||
  sv_inc|||
+sv_insert_flags||5.011000|
  sv_insert|||
  sv_isa|||
  sv_isobject|||
@@ -2239,7 +2307,9 @@
  sv_utf8_decode||5.006000|
  sv_utf8_downgrade||5.006000|
  sv_utf8_encode||5.006000|
+sv_utf8_upgrade_flags_grow||5.011000|
  sv_utf8_upgrade_flags||5.007002|
+sv_utf8_upgrade_nomg||5.007002|
  sv_utf8_upgrade||5.007001|
  sv_uv|5.005000||p
  sv_vcatpvf_mg|5.006000|5.004000|p
@@ -2434,8 +2504,12 @@
    $replace{$2} = $1 if  
m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+).*$rccs\s+Replace\s+$rcce};
    $replace{$1} = $2 if m{^\s*$rccs\s+Replace (\w+) with (\w+)\s+$rcce\s*$};

-  if  
(m{^\s*$rccs\s+(\w+)\s+depends\s+on\s+(\w+(\s*,\s*\w+)*)\s+$rcce\s*$}) {
-    push @{$depends{$1}}, map { s/\s+//g; $_ } split /,/, $2;
+  if  
(m{^\s*$rccs\s+(\w+(\s*,\s*\w+)*)\s+depends\s+on\s+(\w+(\s*,\s*\w+)*)\s+$rcce\s*$})
  
{
+    my @deps = map { s/\s+//g; $_ } split /,/, $3;
+    my $d;
+    for $d (map { s/\s+//g; $_ } split /,/, $1) {
+      push @{$depends{$d}}, @deps;
+    }
    }

    $need{$1} = 1 if m{^#if\s+defined\(NEED_(\w+)(?:_GLOBAL)?\)};
@@ -3051,7 +3125,7 @@
  if (\...@argv && \$ARGV[0] eq '--unstrip') {
    eval { require Devel::PPPort };
    \$@ and die "Cannot require Devel::PPPort, please install.\\n";
-  if (\$Devel::PPPort::VERSION < $VERSION) {
+  if (eval \$Devel::PPPort::VERSION < $VERSION) {
      die "$0 was originally generated with Devel::PPPort $VERSION.\\n"
        . "Your Devel::PPPort is only version \$Devel::PPPort::VERSION.\\n"
        . "Please install a newer version, or --unstrip will not work.\\n";
@@ -3127,6 +3201,49 @@
  #if PERL_REVISION != 5
  #  error ppport.h only works with Perl version 5
  #endif /* PERL_REVISION != 5 */
+#ifndef dTHR
+#  define dTHR                           dNOOP
+#endif
+#ifndef dTHX
+#  define dTHX                           dNOOP
+#endif
+
+#ifndef dTHXa
+#  define dTHXa(x)                       dNOOP
+#endif
+#ifndef pTHX
+#  define pTHX                           void
+#endif
+
+#ifndef pTHX_
+#  define pTHX_
+#endif
+
+#ifndef aTHX
+#  define aTHX
+#endif
+
+#ifndef aTHX_
+#  define aTHX_
+#endif
+
+#if (PERL_BCDVERSION < 0x5006000)
+#  ifdef USE_THREADS
+#    define aTHXR  thr
+#    define aTHXR_ thr,
+#  else
+#    define aTHXR
+#    define aTHXR_
+#  endif
+#  define dTHXR  dTHR
+#else
+#  define aTHXR  aTHX
+#  define aTHXR_ aTHX_
+#  define dTHXR  dTHX
+#endif
+#ifndef dTHXoa
+#  define dTHXoa(x)                      dTHXa(x)
+#endif

  #ifdef I_LIMITS
  #  include <limits.h>
@@ -3638,7 +3755,6 @@
  #endif

  #ifndef INT2PTR
-
  #  if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE)
  #    define PTRV                  UV
  #    define INT2PTR(any,d)        (any)(d)
@@ -3650,19 +3766,34 @@
  #    endif
  #    define INT2PTR(any,d)        (any)(PTRV)(d)
  #  endif
-
-#  define NUM2PTR(any,d)  (any)(PTRV)(d)
-#  define PTR2IV(p)       INT2PTR(IV,p)
-#  define PTR2UV(p)       INT2PTR(UV,p)
-#  define PTR2NV(p)       NUM2PTR(NV,p)
-
+#endif
+
+#ifndef PTR2ul
  #  if PTRSIZE == LONGSIZE
  #    define PTR2ul(p)     (unsigned long)(p)
  #  else
  #    define PTR2ul(p)     INT2PTR(unsigned long,p)
  #  endif
-
-#endif /* !INT2PTR */
+#endif
+#ifndef PTR2nat
+#  define PTR2nat(p)                     (PTRV)(p)
+#endif
+
+#ifndef NUM2PTR
+#  define NUM2PTR(any,d)                 (any)PTR2nat(d)
+#endif
+
+#ifndef PTR2IV
+#  define PTR2IV(p)                      INT2PTR(IV,p)
+#endif
+
+#ifndef PTR2UV
+#  define PTR2UV(p)                      INT2PTR(UV,p)
+#endif
+
+#ifndef PTR2NV
+#  define PTR2NV(p)                      NUM2PTR(NV,p)
+#endif

  #undef START_EXTERN_C
  #undef END_EXTERN_C
@@ -3716,6 +3847,10 @@
  #  define SAVE_DEFSV                     SAVESPTR(GvSV(PL_defgv))
  #endif

+#ifndef DEFSV_set
+#  define DEFSV_set(sv)                  (DEFSV = (sv))
+#endif
+
  /* Older perls (<=5.003) lack AvFILLp */
  #ifndef AvFILLp
  #  define AvFILLp                        AvFILL
@@ -3785,6 +3920,13 @@
            return;                                         \
        } STMT_END
  #endif
+#ifndef XSPROTO
+#  define XSPROTO(name)                  void name(pTHX_ CV* cv)
+#endif
+
+#ifndef SVfARG
+#  define SVfARG(p)                      ((void*)(p))
+#endif
  #ifndef PERL_ABS
  #  define PERL_ABS(x)                    ((x) < 0 ? -(x) : (x))
  #endif
@@ -3797,6 +3939,9 @@
  #ifndef UTF8_MAXBYTES
  #  define UTF8_MAXBYTES                  UTF8_MAXLEN
  #endif
+#ifndef CPERLscope
+#  define CPERLscope(x)                  x
+#endif
  #ifndef PERL_HASH
  #  define PERL_HASH(hash,str,len)        \
       STMT_START       { \
@@ -3809,6 +3954,104 @@
      } STMT_END
  #endif

+#ifndef PERLIO_FUNCS_DECL
+# ifdef PERLIO_FUNCS_CONST
+#  define PERLIO_FUNCS_DECL(funcs) const PerlIO_funcs funcs
+#  define PERLIO_FUNCS_CAST(funcs) (PerlIO_funcs*)(funcs)
+# else
+#  define PERLIO_FUNCS_DECL(funcs) PerlIO_funcs funcs
+#  define PERLIO_FUNCS_CAST(funcs) (funcs)
+# endif
+#endif
+
+/* provide these typedefs for older perls */
+#if (PERL_BCDVERSION < 0x5009003)
+
+# ifdef ARGSproto
+typedef OP* (CPERLscope(*Perl_ppaddr_t))(ARGSproto);
+# else
+typedef OP* (CPERLscope(*Perl_ppaddr_t))(pTHX);
+# endif
+
+typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*);
+
+#endif
+#ifndef isPSXSPC
+#  define isPSXSPC(c)                    (isSPACE(c) || (c) == '\v')
+#endif
+
+#ifndef isBLANK
+#  define isBLANK(c)                     ((c) == ' ' || (c) == '\t')
+#endif
+
+#ifdef EBCDIC
+#ifndef isALNUMC
+#  define isALNUMC(c)                    isalnum(c)
+#endif
+
+#ifndef isASCII
+#  define isASCII(c)                     isascii(c)
+#endif
+
+#ifndef isCNTRL
+#  define isCNTRL(c)                     iscntrl(c)
+#endif
+
+#ifndef isGRAPH
+#  define isGRAPH(c)                     isgraph(c)
+#endif
+
+#ifndef isPRINT
+#  define isPRINT(c)                     isprint(c)
+#endif
+
+#ifndef isPUNCT
+#  define isPUNCT(c)                     ispunct(c)
+#endif
+
+#ifndef isXDIGIT
+#  define isXDIGIT(c)                    isxdigit(c)
+#endif
+
+#else
+# if (PERL_BCDVERSION < 0x5010000)
+/* Hint: isPRINT
+ * The implementation in older perl versions includes all of the
+ * isSPACE() characters, which is wrong. The version provided by
+ * Devel::PPPort always overrides a present buggy version.
+ */
+#  undef isPRINT
+# endif
+#ifndef isALNUMC
+#  define isALNUMC(c)                    (isALPHA(c) || isDIGIT(c))
+#endif
+
+#ifndef isASCII
+#  define isASCII(c)                     ((c) <= 127)
+#endif
+
+#ifndef isCNTRL
+#  define isCNTRL(c)                     ((c) < ' ' || (c) == 127)
+#endif
+
+#ifndef isGRAPH
+#  define isGRAPH(c)                     (isALNUM(c) || isPUNCT(c))
+#endif
+
+#ifndef isPRINT
+#  define isPRINT(c)                     (((c) >= 32 && (c) < 127))
+#endif
+
+#ifndef isPUNCT
+#  define isPUNCT(c)                     (((c) >= 33 && (c) <= 47) || ((c)  
>= 58 && (c) <= 64)  || ((c) >= 91 && (c) <= 96) || ((c) >= 123 && (c) <=  
126))
+#endif
+
+#ifndef isXDIGIT
+#  define isXDIGIT(c)                    (isDIGIT(c) || ((c) >= 'a' && (c)  
<= 'f') || ((c) >= 'A' && (c) <= 'F'))
+#endif
+
+#endif
+
  #ifndef PERL_SIGNALS_UNSAFE_FLAG

  #define PERL_SIGNALS_UNSAFE_FLAG 0x0001
@@ -3851,6 +4094,8 @@
  #  define PL_DBsub                  DBsub
  #  define PL_DBtrace                DBtrace
  #  define PL_Sv                     Sv
+#  define PL_bufend                 bufend
+#  define PL_bufptr                 bufptr
  #  define PL_compiling              compiling
  #  define PL_copline                copline
  #  define PL_curcop                 curcop
@@ -3861,10 +4106,15 @@
  #  define PL_dirty                  dirty
  #  define PL_dowarn                 dowarn
  #  define PL_errgv                  errgv
+#  define PL_error_count            error_count
  #  define PL_expect                 expect
  #  define PL_hexdigit               hexdigit
  #  define PL_hints                  hints
+#  define PL_in_my                  in_my
  #  define PL_laststatval            laststatval
+#  define PL_lex_state              lex_state
+#  define PL_lex_stuff              lex_stuff
+#  define PL_linestr                linestr
  #  define PL_na                     na
  #  define PL_perl_destruct_level    perl_destruct_level
  #  define PL_perldb                 perldb
@@ -3880,64 +4130,79 @@
  #  define PL_sv_yes                 sv_yes
  #  define PL_tainted                tainted
  #  define PL_tainting               tainting
+#  define PL_tokenbuf               tokenbuf
  /* Replace: 0 */
  #endif

-/* Warning: PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters
- * Do not use this variable. It is internal to the perl parser
- * and may change or even be removed in the future. Note that
- * as of perl 5.9.5 you cannot assign to this variable anymore.
+/* Warning: PL_parser
+ * For perl versions earlier than 5.9.5, this is an always
+ * non-NULL dummy. Also, it cannot be dereferenced. Don't
+ * use it if you can avoid is and unless you absolutely know
+ * what you're doing.
+ * If you always check that PL_parser is non-NULL, you can
+ * define DPPP_PL_parser_NO_DUMMY to avoid the creation of
+ * a dummy parser structure.
   */

-/* TODO: cannot assign to these vars; is it worth fixing? */
  #if (PERL_BCDVERSION >= 0x5009005)
-#  define PL_expect         (PL_parser ? PL_parser->expect : 0)
-#  define PL_copline        (PL_parser ? PL_parser->copline : 0)
-#  define PL_rsfp           (PL_parser ? PL_parser->rsfp : (PerlIO *) 0)
-#  define PL_rsfp_filters   (PL_parser ? PL_parser->rsfp_filters : (AV *)  
0)
+# ifdef DPPP_PL_parser_NO_DUMMY
+#  define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \
+                (croak("panic: PL_parser == NULL in %s:%d", \
+                       __FILE__, __LINE__), (yy_parser *) NULL))->var)
+# else
+#  ifdef DPPP_PL_parser_NO_DUMMY_WARNING
+#   define D_PPP_parser_dummy_warning(var)
+#  else
+#   define D_PPP_parser_dummy_warning(var) \
+             warn("warning: dummy PL_" #var " used in %s:%d", __FILE__,  
__LINE__),
+#  endif
+#  define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \
+                (D_PPP_parser_dummy_warning(var)  
&DPPP_(dummy_PL_parser)))->var)
+#if defined(NEED_PL_parser)
+static yy_parser DPPP_(dummy_PL_parser);
+#elif defined(NEED_PL_parser_GLOBAL)
+yy_parser DPPP_(dummy_PL_parser);
+#else
+extern yy_parser DPPP_(dummy_PL_parser);
  #endif
-#ifndef dTHR
-#  define dTHR                           dNOOP
-#endif
-#ifndef dTHX
-#  define dTHX                           dNOOP
-#endif
-
-#ifndef dTHXa
-#  define dTHXa(x)                       dNOOP
-#endif
-#ifndef pTHX
-#  define pTHX                           void
-#endif
-
-#ifndef pTHX_
-#  define pTHX_
-#endif
-
-#ifndef aTHX
-#  define aTHX
-#endif
-
-#ifndef aTHX_
-#  define aTHX_
-#endif
-
-#if (PERL_BCDVERSION < 0x5006000)
-#  ifdef USE_THREADS
-#    define aTHXR  thr
-#    define aTHXR_ thr,
-#  else
-#    define aTHXR
-#    define aTHXR_
-#  endif
-#  define dTHXR  dTHR
+
+# endif
+
+/* PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr,  
PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf depends on PL_parser */
+/* Warning: PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr,  
PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf
+ * Do not use this variable unless you know exactly what you're
+ * doint. It is internal to the perl parser and may change or even
+ * be removed in the future. As of perl 5.9.5, you have to check
+ * for (PL_parser != NULL) for this variable to have any effect.
+ * An always non-NULL PL_parser dummy is provided for earlier
+ * perl versions.
+ * If PL_parser is NULL when you try to access this variable, a
+ * dummy is being accessed instead and a warning is issued unless
+ * you define DPPP_PL_parser_NO_DUMMY_WARNING.
+ * If DPPP_PL_parser_NO_DUMMY is defined, the code trying to access
+ * this variable will croak with a panic message.
+ */
+
+# define PL_expect         D_PPP_my_PL_parser_var(expect)
+# define PL_copline        D_PPP_my_PL_parser_var(copline)
+# define PL_rsfp           D_PPP_my_PL_parser_var(rsfp)
+# define PL_rsfp_filters   D_PPP_my_PL_parser_var(rsfp_filters)
+# define PL_linestr        D_PPP_my_PL_parser_var(linestr)
+# define PL_bufptr         D_PPP_my_PL_parser_var(bufptr)
+# define PL_bufend         D_PPP_my_PL_parser_var(bufend)
+# define PL_lex_state      D_PPP_my_PL_parser_var(lex_state)
+# define PL_lex_stuff      D_PPP_my_PL_parser_var(lex_stuff)
+# define PL_tokenbuf       D_PPP_my_PL_parser_var(tokenbuf)
+# define PL_in_my          D_PPP_my_PL_parser_var(in_my)
+# define PL_in_my_stash    D_PPP_my_PL_parser_var(in_my_stash)
+# define PL_error_count    D_PPP_my_PL_parser_var(error_count)
+
+
  #else
-#  define aTHXR  aTHX
-#  define aTHXR_ aTHX_
-#  define dTHXR  dTHX
-#endif
-#ifndef dTHXoa
-#  define dTHXoa(x)                      dTHXa(x)
+
+/* ensure that PL_parser != NULL and cannot be dereferenced */
+# define PL_parser         ((void *) 1)
+
  #endif
  #ifndef mPUSHs
  #  define mPUSHs(s)                      PUSHs(sv_2mortal(s))
@@ -4005,6 +4270,8 @@
  #ifndef eval_sv
  #  define eval_sv                        perl_eval_sv
  #endif
+
+/* Replace: 0 */
  #ifndef PERL_LOADMOD_DENY
  #  define PERL_LOADMOD_DENY              0x1
  #endif
@@ -4017,7 +4284,19 @@
  #  define PERL_LOADMOD_IMPORT_OPS        0x4
  #endif

-/* Replace: 0 */
+#ifndef G_METHOD
+# define G_METHOD              64
+# ifdef call_sv
+#  undef call_sv
+# endif
+# if (PERL_BCDVERSION < 0x5006000)
+#  define call_sv(sv, flags)  ((flags) & G_METHOD ? perl_call_method((char  
*) SvPV_nolen_const(sv), \
***The diff for this file has been truncated for email.***

-- 
You've received this message because you are subscribed to
the Devel::NYTProf Development User group.

Group hosted at:  http://groups.google.com/group/develnytprof-dev
Project hosted at:  http://perl-devel-nytprof.googlecode.com
CPAN distribution:  http://search.cpan.org/dist/Devel-NYTProf

To post, email:  [email protected]
To unsubscribe, email:  [email protected]

Reply via email to