Branch: Tag:

2000-07-28

2000-07-28 17:16:56 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

JUMBOPATCH: dynamic loading now works on Win* !!!! (somewhat experimental :)

Rev: src/.cvsignore:1.24
Rev: src/Makefile.in:1.198
Rev: src/aclocal.m4:1.17
Rev: src/array.c:1.79
Rev: src/array.h:1.22
Rev: src/backend.c:1.53
Rev: src/backend.h:1.9
Rev: src/bignum.c:1.17
Rev: src/bignum.h:1.14
Rev: src/builtin_functions.c:1.293
Rev: src/builtin_functions.h:1.14
Rev: src/callback.c:1.20
Rev: src/configure.in:1.387
Rev: src/constants.c:1.22
Rev: src/dynamic_buffer.c:1.10
Rev: src/dynamic_load.c:1.41
Rev: src/error.c:1.56
Rev: src/error.h:1.46
Rev: src/fd_control.c:1.32
Rev: src/fdlib.c:1.37
Rev: src/fdlib.h:1.34
Rev: src/fsort.c:1.13
Rev: src/fsort_template.h:1.7
Rev: src/gc.c:1.110
Rev: src/gc.h:1.57
Rev: src/global.h:1.44
Rev: src/interpret.c:1.158
Rev: src/interpret.h:1.52
Rev: src/main.c:1.94
Rev: src/mapping.c:1.94
Rev: src/mapping.h:1.28
Rev: src/module_magic.h:1.1
Rev: src/module_support.c:1.34
Rev: src/module_support.h:1.7
Rev: src/multiset.c:1.26
Rev: src/object.c:1.137
Rev: src/object.h:1.50
Rev: src/opcodes.c:1.78
Rev: src/operators.c:1.93
Rev: src/operators.h:1.8
Rev: src/pike_macros.h:1.17
Rev: src/pike_memory.c:1.71
Rev: src/pike_memory.h:1.14
Rev: src/pike_types.c:1.132
Rev: src/port.c:1.28
Rev: src/precompile.sh.in:1.2
Rev: src/program.c:1.252
Rev: src/program.h:1.97
Rev: src/signal_handler.c:1.173
Rev: src/stralloc.c:1.85
Rev: src/stralloc.h:1.42
Rev: src/stuff.c:1.11
Rev: src/svalue.c:1.85
Rev: src/svalue.h:1.62
Rev: src/testsuite.in:1.316
Rev: src/threads.c:1.133
Rev: src/threads.h:1.99

5:   \*/      /* -  * $Id: program.h,v 1.96 2000/07/18 05:48:20 mast Exp $ +  * $Id: program.h,v 1.97 2000/07/28 17:16:55 hubbe Exp $    */   #ifndef PROGRAM_H   #define PROGRAM_H
24:   #define EXTERN   #include "compilation.h"    + /* Needed to support dynamic loading on NT */ + PMOD_PROTO extern struct program_state * Pike_compiler;    -  +    #ifdef PIKE_DEBUG   #define PROGRAM_LINE_ARGS int line, char *file   #else
329:   void ins_short(INT16 i, void (*func)(char tmp));   void use_module(struct svalue *s);   void unuse_modules(INT32 howmany); - struct node_s *find_module_identifier(struct pike_string *ident, int see_inherit); + struct node_s *find_module_identifier(struct pike_string *ident, +  int see_inherit);   struct program *parent_compilation(int level);   struct program *id_to_program(INT32 id);   void optimize_program(struct program *p);   int program_function_index_compare(const void *a,const void *b); -  + char *find_program_name(struct program *p, INT32 *line);   void fixate_program(void);   struct program *low_allocate_program(void);   void low_start_new_program(struct program *p,    struct pike_string *name,    int flags,    int *idp); - void debug_start_new_program(PROGRAM_LINE_ARGS); - void really_free_program(struct program *p); + PMOD_EXPORT void debug_start_new_program(PROGRAM_LINE_ARGS); + PMOD_EXPORT void really_free_program(struct program *p);   void dump_program_desc(struct program *p);   int sizeof_variable(int run_time_type);   void check_program(struct program *p);   struct program *end_first_pass(int finish); - struct program *debug_end_program(void); - size_t low_add_storage(size_t size, size_t alignment, int modulo_orig); - void set_init_callback(void (*init)(struct object *)); - void set_exit_callback(void (*exit)(struct object *)); - void set_gc_recurse_callback(void (*m)(struct object *)); - void set_gc_check_callback(void (*m)(struct object *)); + PMOD_EXPORT struct program *debug_end_program(void); + PMOD_EXPORT size_t low_add_storage(size_t size, size_t alignment, int modulo_orig); + PMOD_EXPORT void set_init_callback(void (*init)(struct object *)); + PMOD_EXPORT void set_exit_callback(void (*exit)(struct object *)); + PMOD_EXPORT void set_gc_recurse_callback(void (*m)(struct object *)); + PMOD_EXPORT void set_gc_check_callback(void (*m)(struct object *));   int low_reference_inherited_identifier(struct program_state *q,    int e,    struct pike_string *name,
366:    int parent_offset,    INT32 flags,    struct pike_string *name); - void do_inherit(struct svalue *s, + PMOD_EXPORT void do_inherit(struct svalue *s,    INT32 flags,    struct pike_string *name);   void compiler_do_inherit(node *n,
381:    INT32 flags,    size_t offset,    INT32 run_time_type); - int map_variable(char *name, + PMOD_EXPORT int map_variable(char *name,    char *type,    INT32 flags,    size_t offset,    INT32 run_time_type); - int quick_map_variable(char *name, + PMOD_EXPORT int quick_map_variable(char *name,    int name_length,    size_t offset,    char *type,
396:   int define_variable(struct pike_string *name,    struct pike_string *type,    INT32 flags); - int simple_add_variable(char *name, + PMOD_EXPORT int simple_add_variable(char *name,    char *type,    INT32 flags); - int add_constant(struct pike_string *name, + PMOD_EXPORT int add_constant(struct pike_string *name,    struct svalue *c,    INT32 flags); - int simple_add_constant(char *name, + PMOD_EXPORT int simple_add_constant(char *name,    struct svalue *c,    INT32 flags); - int add_integer_constant(char *name, + PMOD_EXPORT int add_integer_constant(char *name,    INT32 i,    INT32 flags); - int quick_add_integer_constant(char *name, + PMOD_EXPORT int quick_add_integer_constant(char *name,    int name_length,    INT32 i,    INT32 flags); - int add_float_constant(char *name, + PMOD_EXPORT int add_float_constant(char *name,    double f,    INT32 flags); - int add_string_constant(char *name, + PMOD_EXPORT int add_string_constant(char *name,    char *str,    INT32 flags); - int add_program_constant(char *name, + PMOD_EXPORT int add_program_constant(char *name,    struct program *p,    INT32 flags); - int add_object_constant(char *name, + PMOD_EXPORT int add_object_constant(char *name,    struct object *o,    INT32 flags); - int add_function_constant(char *name, void (*cfun)(INT32), char * type, INT16 flags); - int debug_end_class(char *name, int namelen, INT32 flags); + PMOD_EXPORT int add_function_constant(char *name, void (*cfun)(INT32), char * type, INT16 flags); + PMOD_EXPORT int debug_end_class(char *name, int namelen, INT32 flags);   INT32 define_function(struct pike_string *name,    struct pike_string *type,    INT16 flags,
457:   struct program *compile(struct pike_string *prog,    struct object *handler);   int pike_add_function(char *name,void (*cfun)(INT32),char *type,INT16 flags); - int quick_add_function(char *name, + PMOD_EXPORT int quick_add_function(char *name,    int name_length,    void (*cfun)(INT32),    char *type,
468:   void init_program(void);   void cleanup_program(void);   void gc_mark_program_as_referenced(struct program *p); + void real_gc_cycle_check_program(struct program *p, int weak);   unsigned gc_touch_all_programs(void);   void gc_check_all_programs(void);   void gc_mark_all_programs(void); - void real_gc_cycle_check_program(struct program *p, int weak); +    void gc_cycle_check_all_programs(void);   void gc_zap_ext_weak_refs_in_programs(void);   void gc_free_all_unreferenced_programs(void);