Integrate from mainperl.
Jarkko Hietaniemi [Fri, 30 Oct 1998 08:43:18 +0000 (08:43 +0000)]
p4raw-id: //depot/cfgperl@2140

1  2 
Makefile.SH
proto.h

diff --combined Makefile.SH
@@@ -451,14 -451,17 +451,17 @@@ perly.h: perly.
  
  # No compat3.sym here since and including the 5.004_50.
  # No interp.sym since 5.005_03.
- SYM  = global.sym perlio.sym thread.sym
+ SYM  = global.sym globvar.sym perlio.sym pp.sym
  
- SYMH = perlvars.h thrdvar.h
+ SYMH = perlvars.h intrpvar.h thrdvar.h
  
  # The following files are generated automatically
  #     keywords.h:     keywords.pl
  #     opcode.h:       opcode.pl
- #     embed.h:        embed.pl global.sym interp.sym
+ #     pp_proto.h:     opcode.pl
+ #     pp.sym:         opcode.pl
+ #     embed.h:        embed.pl  [* needs pp.sym generated by opcode.pl! *]
+ #     embedvar.h:     embed.pl  [* needs pp.sym generated by opcode.pl! *]
  #     byterun.h:      bytecode.pl
  #     byterun.c:      bytecode.pl
  #     lib/B/Asmdata.pm:       bytecode.pl
@@@ -661,7 -664,6 +664,7 @@@ $define
  case "$osname" in
  os390|posix-bc)
      rm -f y.tab.c y.tab.h
 +    # yacc must be a reentrant ("pure") Bison in BS2000 Posix!
      yacc -d perly.y >/dev/null 2>&1
      if cmp -s y.tab.c perly.c; then
          rm -f y.tab.c
          mv -f y.tab.h perly.h
          xxx="$xxx perly.h"
      fi
 -    cd x2p
 -    rm -f y.tab.c
 -    case "$osname" in
 -    os390)
 -      yacc -d a2p.y >/dev/null 2>&1
 -        ;;
 -    *) # e.g. posix-bc
 -      yacc a2p.y >/dev/null 2>&1
 -        ;;
 -    esac
 -    if cmp -s y.tab.c a2p.c
 +    if cd x2p
      then
 -        rm -f y.tab.c
 -    else
 -        echo "a2p.y -> a2p.c" >&2
 -        mv -f y.tab.c a2p.c
 -        chmod u+w a2p.c
 -        sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
 -            -e 's/y\.tab/a2p/g' a2p.c >a2p.tmp && mv a2p.tmp a2p.c
 -        xxx="$xxx a2p.c"
 -    fi
 -    if cmp -s y.tab.h a2p.h
 -    then
 -        rm -f y.tab.h
 -    else
 -        echo "a2p.h -> a2p.h" >&2
 -        mv -f y.tab.h a2p.h
 -        xxx="$xxx a2p.h"
 +        rm -f y.tab.c y.tab.h
 +        case "$osname" in
 +        posix-bc)
 +           # we are using two different yaccs in BS2000 Posix!
 +           byacc a2p.y >/dev/null 2>&1
 +           ;;
 +        *) # e.g. os390
 +           yacc  a2p.y >/dev/null 2>&1
 +           ;;
 +        esac
 +        if cmp -s y.tab.c a2p.c
 +        then
 +            rm -f y.tab.c
 +        else
 +            echo "a2p.y -> a2p.c" >&2
 +            mv -f y.tab.c a2p.c
 +            chmod u+w a2p.c
 +            sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
 +                -e 's/y\.tab/a2p/g' a2p.c >a2p.tmp && mv a2p.tmp a2p.c
 +            xxx="$xxx a2p.c"
 +        fi
 +        # In case somebody yacc -d:ed the a2p.y.
 +        if test -f y.tab.h
 +        then
 +            if cmp -s y.tab.h a2p.h
 +            then
 +                rm -f y.tab.h
 +            else
 +                echo "a2p.h -> a2p.h" >&2
 +                mv -f y.tab.h a2p.h
 +                xxx="$xxx a2p.h"
 +            fi
 +        fi
 +        cd ..
      fi
 -    cd ..
      ;;
  vmesa)
      # Do nothing in VM/ESA.
      ;;
  *)
 -    echo "'$osname' is an EBCDIC system I don't know well." >&4
 +    echo "'$osname' is an EBCDIC system I don't know that well." >&4
      ;;
  esac
      case "$xxx" in
diff --combined proto.h
+++ b/proto.h
@@@ -56,14 -56,14 +56,14 @@@ VIRTUAL int        block_start _((int full))
  VIRTUAL void  boot_core_UNIVERSAL _((void));
  VIRTUAL void  call_list _((I32 oldscope, AV* av_list));
  VIRTUAL I32   cando _((I32 bit, I32 effective, Stat_t* statbufp));
- #ifndef CASTNEGFLOAT
  VIRTUAL U32   cast_ulong _((double f));
- #endif
+ VIRTUAL I32   cast_i32 _((double f));
+ VIRTUAL IV    cast_iv _((double f));
+ VIRTUAL UV    cast_uv _((double f));
  #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
  VIRTUAL I32   my_chsize _((int fd, Off_t length));
  #endif
- VIRTUAL OP*   ck_gvconst _((OP*  o));
- VIRTUAL OP*   ck_retarget _((OP* o));
  #ifdef USE_THREADS
  VIRTUAL MAGIC *       condpair_magic _((SV *sv));
  #endif
@@@ -593,11 -593,7 +593,7 @@@ 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
- VIRTUAL char* sv_grow _((SV* sv, I32 newlen));
- #else
- VIRTUAL char* sv_grow _((SV* sv, unsigned long newlen));
- #endif
+ VIRTUAL char* sv_grow _((SV* sv, STRLEN newlen));
  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));
@@@ -672,9 -668,9 +668,9 @@@ VIRTUAL void       watch _((char** addr))
  VIRTUAL I32   whichsig _((char* sig));
  VIRTUAL int   yyerror _((char* s));
  #ifdef USE_PURE_BISON
 -# define PERL_YYLEX_PARAM_DECL YYSTYPE *, int *
 +# define PERL_YYLEX_PARAM_DECL YYSTYPE *lvalp, int *lcharp
  #else
- # define PERL_YYLEX_PARAM_DECL
+ # define PERL_YYLEX_PARAM_DECL void
  #endif
  VIRTUAL int   yylex _((PERL_YYLEX_PARAM_DECL));
  VIRTUAL int   yyparse _((void));
@@@ -903,43 -899,14 +899,14 @@@ I32 do_trans_CU_simple _((SV *sv))
  I32 do_trans_UC_trivial _((SV *sv));
  I32 do_trans_CU_trivial _((SV *sv));
  
- #define PPDEF(s) OP* CPerlObj::s _((ARGSproto));
+ #undef PERL_CKDEF
+ #undef PERL_PPDEF
+ #define PERL_CKDEF(s) OP* s _((OP *o));
+ #define PERL_PPDEF(s) OP* s _((ARGSproto));
  public:
  
  #include "pp_proto.h"
  
- OP * ck_ftst _((OP *o));
- OP *ck_anoncode _((OP *o));
- OP *ck_bitop _((OP *o));
- OP *ck_concat _((OP *o));
- OP *ck_spair _((OP *o));
- OP *ck_delete _((OP *o));
- OP *ck_eof _((OP *o));
- OP *ck_eval _((OP *o));
- OP *ck_exec _((OP *o));
- OP *ck_exists _((OP *o));
- OP *ck_rvconst _((OP *o));
- OP *ck_fun _((OP *o));
- OP *ck_glob _((OP *o));
- OP *ck_grep _((OP *o));
- OP *ck_index _((OP *o));
- OP *ck_lengthconst _((OP *o));
- OP *ck_lfun _((OP *o));
- OP *ck_rfun _((OP *o));
- OP *ck_listiob _((OP *o));
- OP *ck_fun_locale _((OP *o));
- OP *ck_scmp _((OP *o));
- OP *ck_match _((OP *o));
- OP *ck_null _((OP *o));
- OP *ck_repeat _((OP *o));
- OP *ck_require _((OP *o));
- OP *ck_select _((OP *o));
- OP *ck_shift _((OP *o));
- OP *ck_sort _((OP *o));
- OP *ck_split _((OP *o));
- OP *ck_subr _((OP *o));
- OP *ck_svconst _((OP *o));
- OP *ck_trunc _((OP *o));
  void unwind_handler_stack _((void *p));
  void restore_magic _((void *p));
  void restore_rsfp _((void *f));