Branch: Tag:

1999-01-31

1999-01-31 09:03:50 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

lexical closures implemented...

Rev: src/ChangeLog:1.160
Rev: src/alloca.c:1.3
Rev: src/block_alloc.h:1.5
Rev: src/block_alloc_h.h:1.1
Rev: src/builtin_functions.c:1.146
Rev: src/callback.c:1.16
Rev: src/dmalloc.h:1.9
Rev: src/docode.c:1.43
Rev: src/error.c:1.23
Rev: src/error.h:1.27
Rev: src/interpret.c:1.113
Rev: src/interpret.h:1.26
Rev: src/language.yacc:1.109
Rev: src/las.c:1.73
Rev: src/las.h:1.18
Rev: src/lex.c:1.61
Rev: src/main.c:1.62
Rev: src/modules/call_out/call_out.c:1.24
Rev: src/object.c:1.55
Rev: src/peep.in:1.24
Rev: src/pike_memory.c:1.29
Rev: src/pike_memory.h:1.8
Rev: src/program.c:1.107
Rev: src/program.h:1.48
Rev: src/testsuite.in:1.142
Rev: src/threads.h:1.61

5:   \*/      /* -  * $Id: program.h,v 1.47 1999/01/21 09:15:15 hubbe Exp $ +  * $Id: program.h,v 1.48 1999/01/31 09:02:02 hubbe Exp $    */   #ifndef PROGRAM_H   #define PROGRAM_H
232:   #define free_program(p) do{ struct program *_=(p); debug_malloc_touch(_); if(!--_->refs) really_free_program(_); }while(0)       + struct pike_trampoline + { +  struct pike_frame *frame; +  INT32 func; + }; +  +    extern struct object *fake_object;   extern struct program *new_program;   extern struct program *first_program;
239:   extern long local_class_counter;   extern int catch_level;   extern INT32 num_used_modules; + extern struct program *pike_trampoline_program;      #define COMPILER_IN_CATCH 1   
361:   struct program *compile(struct pike_string *prog);   int add_function(char *name,void (*cfun)(INT32),char *type,INT16 flags);   void check_all_programs(void); + void init_program(void);   void cleanup_program(void);   void gc_mark_program_as_referenced(struct program *p);   void gc_check_all_programs(void);   void gc_mark_all_programs(void);   void gc_free_all_unreferenced_programs(void);   void count_memory_in_programs(INT32 *num_, INT32 *size_); - void push_compiler_frame(void); + void push_compiler_frame(int lexical_scope);   void pop_local_variables(int level);   void pop_compiler_frame(void);   int low_get_storage(struct program *o, struct program *p);
381:   void yywarning(char *fmt, ...) ATTRIBUTE((format(printf,1,2)));   struct implements_cache_s;   int implements(struct program *a, struct program *b); - void f_encode_program(INT32 args); +    /* Prototypes end here */