Branch: Tag:

1998-11-22

1998-11-22 11:08:52 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

New module: Perl

Rev: src/ChangeLog:1.157
Rev: src/README:1.8
Rev: src/acconfig.h:1.35
Rev: src/array.c:1.42
Rev: src/array.h:1.14
Rev: src/backend.c:1.40
Rev: src/builtin_functions.c:1.140
Rev: src/callback.c:1.15
Rev: src/compilation.h:1.13
Rev: src/configure.in:1.254
Rev: src/cpp.c:1.30
Rev: src/docode.c:1.42
Rev: src/dynamic_buffer.c:1.9
Rev: src/encode.c:1.26
Rev: src/error.c:1.22
Rev: src/error.h:1.25
Rev: src/fd_control.c:1.22
Rev: src/fdlib.h:1.21
Rev: src/gc.c:1.39
Rev: src/gc.h:1.20
Rev: src/global.h:1.26
Rev: src/hashtable.c:1.5
Rev: src/interpret.c:1.111
Rev: src/interpret.h:1.24
Rev: src/language.yacc:1.108
Rev: src/las.c:1.71
Rev: src/las.h:1.17
Rev: src/lex.c:1.58
Rev: src/lex.h:1.12
Rev: src/main.c:1.60
Rev: src/mapping.c:1.37
Rev: src/modules/Odbc/odbc.c:1.12
Rev: src/modules/Perl/.cvsignore:1.1
Rev: src/modules/Perl/Makefile.in:1.1
Rev: src/modules/Perl/configure.in:1.1
Rev: src/modules/Perl/perlmod.c:1.1
Rev: src/modules/Perl/testsuite.in:1.1
Rev: src/modules/Postgres/postgres.c:1.10
Rev: src/modules/Regexp/pike_regexp.c:1.13
Rev: src/modules/call_out/call_out.c:1.23
Rev: src/modules/files/file.c:1.128
Rev: src/modules/files/socket.c:1.40
Rev: src/modules/spider/spider.c:1.76
Rev: src/modules/sprintf/sprintf.c:1.31
Rev: src/multiset.c:1.12
Rev: src/object.c:1.53
Rev: src/opcodes.c:1.32
Rev: src/operators.c:1.44
Rev: src/peep.c:1.25
Rev: src/pike_memory.c:1.28
Rev: src/pike_types.c:1.49
Rev: src/pike_types.h:1.16
Rev: src/port.c:1.18
Rev: src/port.h:1.20
Rev: src/program.c:1.105
Rev: src/program.h:1.46
Rev: src/signal_handler.c:1.89
Rev: src/stralloc.c:1.50
Rev: src/stralloc.h:1.26
Rev: src/svalue.c:1.39
Rev: src/svalue.h:1.19
Rev: src/threads.c:1.85
Rev: src/threads.h:1.60

4:   ||| See the files COPYING and DISCLAIMER for more information.   \*/   #include "global.h" - RCSID("$Id: docode.c,v 1.41 1998/11/16 22:14:49 hubbe Exp $"); + RCSID("$Id: docode.c,v 1.42 1998/11/22 11:02:41 hubbe Exp $");   #include "las.h"   #include "program.h"   #include "language.h"
318:    case F_MOD_EQ:    case F_DIV_EQ:    tmp1=do_docode(CAR(n),DO_LVALUE); - #ifdef DEBUG + #ifdef PIKE_DEBUG    if(tmp1 != 2)    fatal("HELP! FATAL INTERNAL COMPILER ERROR (7)\n");   #endif
460:    case F_INC:    case F_POST_INC:    tmp1=do_docode(CAR(n),DO_LVALUE); - #ifdef DEBUG + #ifdef PIKE_DEBUG    if(tmp1 != 2)    fatal("HELP! FATAL INTERNAL COMPILER ERROR (1)\n");   #endif
477:    case F_DEC:    case F_POST_DEC:    tmp1=do_docode(CAR(n),DO_LVALUE); - #ifdef DEBUG + #ifdef PIKE_DEBUG    if(tmp1 != 2)    fatal("HELP! FATAL INTERNAL COMPILER ERROR (2)\n");   #endif
534:       tmp2=do_docode(CAR(n),DO_NOT_COPY);    emit2(F_CONST0); - #ifdef DEBUG + #ifdef PIKE_DEBUG    /* This is really ugly because there is always a chance that the bug    * will disappear when new instructions are added to the code, but    * think it is worth it.
550:    do_jump(n->token,tmp1);    ins_label(current_break);    - #ifdef DEBUG + #ifdef PIKE_DEBUG    if(d_flag)    emit2(F_POP_MARK);   #endif
576:    current_continue=alloc_label();       tmp2=do_docode(CAR(n),0); - #ifdef DEBUG + #ifdef PIKE_DEBUG    /* This is really ugly because there is always a chance that the bug    * will disappear when new instructions are added to the code, but    * think it is worth it.
592:    emit(F_LABEL,tmp3);    do_jump(n->token,tmp1);    ins_label(current_break); - #ifdef DEBUG + #ifdef PIKE_DEBUG    if(d_flag)    emit2(F_POP_MARK);   #endif
746:    INT32 prev_switch_default = current_switch_default;    INT32 *prev_switch_jumptable = current_switch_jumptable;    INT32 break_save = current_break; - #ifdef DEBUG + #ifdef PIKE_DEBUG    struct svalue *save_sp=sp;   #endif   
776:       DO_CODE_BLOCK(CDR(n));    - #ifdef DEBUG + #ifdef PIKE_DEBUG    if(sp-save_sp != cases)    fatal("Count cases is wrong!\n");   #endif
829:    emit(F_LABEL, current_break);       current_break=break_save; - #ifdef DEBUG + #ifdef PIKE_DEBUG    if(recoveries && sp-evaluator_stack < recoveries->sp)    fatal("Stack error after F_SWITCH (underflow)\n");   #endif
967:       case F_ARRAY_LVALUE:    tmp1=do_docode(CAR(n),DO_LVALUE); - #ifdef DEBUG + #ifdef PIKE_DEBUG    if(tmp1 & 1)    fatal("Very internal compiler error.\n");   #endif
1003:    mklval ? DO_LVALUE_IF_POSSIBLE : 0);    if(tmp1==2)    { - #ifdef DEBUG + #ifdef PIKE_DEBUG    if(!mklval)    fatal("Unwanted lvalue!\n");   #endif
1069:    }    }    - #ifdef DEBUG + #ifdef PIKE_DEBUG    case T_OBJECT:    if(n->u.sval.u.object->next == n->u.sval.u.object)    fatal("Internal error: Pointer to parent cannot be a compile time constant!\n");