e576bb | 2002-10-11 | Martin Nilsson | |
|
24ddc7 | 1998-03-28 | Henrik Grubbström (Grubba) | |
|
558069 | 1996-06-21 | Fredrik Hübinette (Hubbe) | | #ifndef PROGRAM_H
#define PROGRAM_H
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
afa694 | 1997-01-28 | Fredrik Hübinette (Hubbe) | | #include "global.h"
|
90e978 | 1999-01-31 | Fredrik Hübinette (Hubbe) | | #include "pike_macros.h"
|
7ea793 | 2003-08-03 | Martin Stjernholm | | #include "pike_error.h"
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | #include "svalue.h"
|
72389e | 2004-09-27 | Martin Stjernholm | | #include "dmalloc.h"
|
05590d | 1998-04-23 | Fredrik Hübinette (Hubbe) | | #include "time_stuff.h"
|
e9ce61 | 2001-03-29 | Per Hedbor | | #include "program_id.h"
|
b2630d | 2004-05-20 | Henrik Grubbström (Grubba) | | #include "pike_rusage.h"
|
44e340 | 2013-10-09 | Arne Goedeke | | #include "block_allocator.h"
|
bad516 | 2000-06-23 | Fredrik Hübinette (Hubbe) | |
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | |
|
3a1011 | 2006-07-05 | Martin Stjernholm | | PMOD_EXPORT extern struct program_state * Pike_compiler;
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | |
|
cd2be3 | 2004-03-13 | Henrik Grubbström (Grubba) | |
#define COMPILATION_CHECK_FINAL 0x01
#define COMPILATION_FORCE_RESOLVE 0x02
|
f1ad63 | 2004-03-16 | Henrik Grubbström (Grubba) | |
#ifdef FORCE_RESOLVE_DEBUG
#define DO_IF_FRD(X) X
#else /* !FORCE_RESOLVE_DEBUG */
#define DO_IF_FRD(X)
#endif /* FORCE_RESOLVE_DEBUG */
#define SET_FORCE_RESOLVE(OLD) do { \
int tmp_ = (OLD) = Pike_compiler->flags; \
Pike_compiler->flags |= COMPILATION_FORCE_RESOLVE; \
DO_IF_FRD(fprintf(stderr, \
"Force resolve on. Flags:0x%04x (0x%04x)\n", \
Pike_compiler->flags, tmp_)); \
} while(0)
#define UNSET_FORCE_RESOLVE(OLD) do { \
int tmp_ = (Pike_compiler->flags & ~COMPILATION_FORCE_RESOLVE) | \
((OLD) & COMPILATION_FORCE_RESOLVE); \
DO_IF_FRD(fprintf(stderr, \
"Force resolve unset. Flags:0x%04x (0x%04x)\n", \
tmp_, Pike_compiler->flags)); \
Pike_compiler->flags = tmp_; \
} while(0)
|
9e2686 | 1999-12-31 | Martin Stjernholm | | extern struct pike_string *this_program_string;
|
6a2250 | 2014-09-30 | Per Hedbor | | extern struct pike_string *this_string;
|
9e2686 | 1999-12-31 | Martin Stjernholm | |
|
94d66b | 2008-05-24 | Henrik Grubbström (Grubba) | |
extern struct pike_string *parser_system_string;
extern struct pike_string *type_check_system_string;
|
558069 | 1996-06-21 | Fredrik Hübinette (Hubbe) | | #define LFUN___INIT 0
#define LFUN_CREATE 1
#define LFUN_DESTROY 2
#define LFUN_ADD 3
#define LFUN_SUBTRACT 4
#define LFUN_AND 5
#define LFUN_OR 6
#define LFUN_XOR 7
#define LFUN_LSH 8
#define LFUN_RSH 9
#define LFUN_MULTIPLY 10
#define LFUN_DIVIDE 11
#define LFUN_MOD 12
#define LFUN_COMPL 13
#define LFUN_EQ 14
#define LFUN_LT 15
#define LFUN_GT 16
#define LFUN___HASH 17
#define LFUN_CAST 18
#define LFUN_NOT 19
|
774b06 | 1996-08-03 | Fredrik Hübinette (Hubbe) | | #define LFUN_INDEX 20
#define LFUN_ASSIGN_INDEX 21
|
dffa01 | 1997-01-15 | Fredrik Hübinette (Hubbe) | | #define LFUN_ARROW 22
#define LFUN_ASSIGN_ARROW 23
|
0683be | 1997-01-26 | Fredrik Hübinette (Hubbe) | | #define LFUN__SIZEOF 24
#define LFUN__INDICES 25
#define LFUN__VALUES 26
#define LFUN_CALL 27
|
1b89ad | 1997-10-10 | Fredrik Hübinette (Hubbe) | | #define LFUN_RADD 28
#define LFUN_RSUBTRACT 29
#define LFUN_RAND 30
#define LFUN_ROR 31
#define LFUN_RXOR 32
#define LFUN_RLSH 33
#define LFUN_RRSH 34
#define LFUN_RMULTIPLY 35
#define LFUN_RDIVIDE 36
#define LFUN_RMOD 37
|
ee3780 | 1999-02-09 | Fredrik Hübinette (Hubbe) | | #define LFUN_ADD_EQ 38
|
aa73fc | 1999-10-21 | Fredrik Hübinette (Hubbe) | | #define LFUN__IS_TYPE 39
#define LFUN__SPRINTF 40
|
2ba919 | 1999-10-23 | Fredrik Hübinette (Hubbe) | | #define LFUN__EQUAL 41
|
a3453e | 2001-02-05 | Per Hedbor | | #define LFUN__M_DELETE 42
|
226d64 | 2001-02-24 | Henrik Grubbström (Grubba) | | #define LFUN__GET_ITERATOR 43
|
408a1e | 2004-10-30 | Martin Stjernholm | | #define LFUN_RANGE 44
|
558069 | 1996-06-21 | Fredrik Hübinette (Hubbe) | |
|
408a1e | 2004-10-30 | Martin Stjernholm | | #define NUM_LFUNS 45
|
558069 | 1996-06-21 | Fredrik Hübinette (Hubbe) | |
|
142c80 | 2003-09-04 | Henrik Grubbström (Grubba) | |
|
408a1e | 2004-10-30 | Martin Stjernholm | | #define LFUN__SEARCH 45
|
7195af | 2011-01-15 | Henrik Grubbström (Grubba) | | #define LFUN__TYPES 46
|
103136 | 2011-01-21 | Henrik Grubbström (Grubba) | | #define LFUN__SERIALIZE 47
#define LFUN__DESERIALIZE 48
|
a3a007 | 2013-09-18 | Per Hedbor | | #define LFUN__SIZE_OBJECT 49
|
e24c3d | 2013-11-18 | Henrik Grubbström (Grubba) | | #define LFUN__RANDOM 50
|
142c80 | 2003-09-04 | Henrik Grubbström (Grubba) | |
|
ebf5bb | 2004-09-18 | Per Hedbor | | extern const char *const lfun_names[];
|
558069 | 1996-06-21 | Fredrik Hübinette (Hubbe) | |
|
286afb | 2001-02-05 | Henrik Grubbström (Grubba) | | extern struct pike_string *lfun_strings[];
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | #ifndef STRUCT_NODE_S_DECLARED
#define STRUCT_NODE_S_DECLARED
struct node_s;
|
e772e4 | 2003-11-14 | Martin Stjernholm | | typedef struct node_s node;
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | #endif
|
dfa5b3 | 1996-12-05 | Fredrik Hübinette (Hubbe) | | #ifndef STRUCT_OBJECT_DECLARED
#define STRUCT_OBJECT_DECLARED
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | struct object;
|
dfa5b3 | 1996-12-05 | Fredrik Hübinette (Hubbe) | | #endif
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
3a8dd0 | 2006-07-09 | Marcus Comstedt | | #undef EXTERN
#undef STRUCT
#undef PUSH
#undef POP
#undef DECLARE
|
e772e4 | 2003-11-14 | Martin Stjernholm | | #define STRUCT
#include "compilation.h"
#define EXTERN
#include "compilation.h"
|
aeaab7 | 2002-04-08 | Martin Stjernholm | |
|
221370 | 2003-11-25 | Henrik Grubbström (Grubba) | | #define PIKE_BYTECODE_PORTABLE -1 /* Only used by the codec. */
|
aeaab7 | 2002-04-08 | Martin Stjernholm | | #define PIKE_BYTECODE_DEFAULT 0
#define PIKE_BYTECODE_GOTO 1
#define PIKE_BYTECODE_SPARC 2
#define PIKE_BYTECODE_IA32 3
|
d995a2 | 2006-04-27 | Tor Edvardsson | | #define PIKE_BYTECODE_PPC32 4
#define PIKE_BYTECODE_AMD64 5
|
a00f6f | 2007-04-01 | Marcus Comstedt | | #define PIKE_BYTECODE_PPC64 6
|
aeaab7 | 2002-04-08 | Martin Stjernholm | |
|
d9a40a | 2005-11-19 | Henrik Grubbström (Grubba) | | #ifndef PIKE_BYTECODE_METHOD
#error PIKE_BYTECODE_METHOD not set.
#endif
|
d8e19a | 2002-04-07 | Martin Stjernholm | | #if PIKE_BYTECODE_METHOD == PIKE_BYTECODE_IA32
#define PIKE_OPCODE_T unsigned INT8
|
d995a2 | 2006-04-27 | Tor Edvardsson | | #elif PIKE_BYTECODE_METHOD == PIKE_BYTECODE_AMD64
#define PIKE_OPCODE_T unsigned INT8
|
d8e19a | 2002-04-07 | Martin Stjernholm | | #elif PIKE_BYTECODE_METHOD == PIKE_BYTECODE_SPARC
#define PIKE_OPCODE_T unsigned INT32
#elif PIKE_BYTECODE_METHOD == PIKE_BYTECODE_PPC32
#define PIKE_OPCODE_T unsigned INT32
|
a00f6f | 2007-04-01 | Marcus Comstedt | | #elif PIKE_BYTECODE_METHOD == PIKE_BYTECODE_PPC64
#define PIKE_OPCODE_T unsigned INT32
|
d8e19a | 2002-04-07 | Martin Stjernholm | | #elif PIKE_BYTECODE_METHOD == PIKE_BYTECODE_GOTO
#define PIKE_OPCODE_T void *
|
b97cd9 | 2003-03-20 | Martin Stjernholm | | #define PIKE_INSTR_T void *
|
d8e19a | 2002-04-07 | Martin Stjernholm | | #else
#define PIKE_OPCODE_T unsigned INT8
#endif
|
b97cd9 | 2003-03-20 | Martin Stjernholm | |
#ifndef PIKE_INSTR_T
#define PIKE_INSTR_T unsigned int
#endif
|
d8e19a | 2002-04-07 | Martin Stjernholm | |
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | |
06983f | 1996-09-22 | Fredrik Hübinette (Hubbe) | | * to the C/PIKE function body.
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | *
* c) A number of flags to send to 'add_simul_efun' to specify side effects
* and such.
*/
|
558069 | 1996-06-21 | Fredrik Hübinette (Hubbe) | | * 2^16 functions + global variables
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | * 2^16 inherits
|
06983f | 1996-09-22 | Fredrik Hübinette (Hubbe) | | * 2^16 arguments to pike functions
|
558069 | 1996-06-21 | Fredrik Hübinette (Hubbe) | | * 2^32 efuns
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | * 2^8 local variables (and arguments)
*/
union idptr
{
|
77fbd7 | 2010-11-25 | Henrik Grubbström (Grubba) | |
ptrdiff_t offset;
|
b6f302 | 2007-09-25 | Henrik Grubbström (Grubba) | |
struct {
unsigned short depth;
unsigned short id;
} ext_ref;
|
89378b | 2010-11-23 | Henrik Grubbström (Grubba) | |
struct {
ptrdiff_t offset;
} const_info;
|
85e455 | 2008-05-13 | Henrik Grubbström (Grubba) | |
struct {
INT16 getter;
INT16 setter;
} gs_info;
|
b6f302 | 2007-09-25 | Henrik Grubbström (Grubba) | |
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | void (*c_fun)(INT32);
|
9823d6 | 2003-08-02 | Martin Stjernholm | |
|
77fbd7 | 2010-11-25 | Henrik Grubbström (Grubba) | |
struct svalue *sval;
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | };
|
7ea793 | 2003-08-03 | Martin Stjernholm | | #define IDENTIFIER_VARIABLE 0
|
354bbe | 2007-09-24 | Henrik Grubbström (Grubba) | | #define IDENTIFIER_CONSTANT 1
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #define IDENTIFIER_C_FUNCTION 2
|
354bbe | 2007-09-24 | Henrik Grubbström (Grubba) | | #define IDENTIFIER_PIKE_FUNCTION 3
#define IDENTIFIER_FUNCTION 2
#define IDENTIFIER_TYPE_MASK 3
|
64dd45 | 2007-09-29 | Henrik Grubbström (Grubba) | | #define IDENTIFIER_ALIAS 4 /* Identifier is an alias for another
* (possibly extern) symbol.
*/
|
0ee38f | 2002-05-11 | Martin Stjernholm | | #define IDENTIFIER_VARARGS 8 /* Used for functions only. */
|
e0d6f5 | 2003-02-13 | Martin Stjernholm | | #define IDENTIFIER_NO_THIS_REF 8 /* Used for variables only: Don't count refs to self. */
|
98cf2a | 2003-02-24 | Martin Stjernholm | | #define IDENTIFIER_HAS_BODY 16 /* Function has a body (set already in pass 1). */
|
97f628 | 2000-03-07 | Fredrik Hübinette (Hubbe) | | #define IDENTIFIER_SCOPED 32 /* This is used for local functions only */
|
8322b6 | 2000-05-08 | Fredrik Hübinette (Hubbe) | | #define IDENTIFIER_SCOPE_USED 64 /* contains scoped local functions */
|
d2c608 | 1996-11-07 | Fredrik Hübinette (Hubbe) | |
#define IDENTIFIER_IS_FUNCTION(X) ((X) & IDENTIFIER_FUNCTION)
|
354bbe | 2007-09-24 | Henrik Grubbström (Grubba) | | #define IDENTIFIER_IS_PIKE_FUNCTION(X) (((X) & IDENTIFIER_TYPE_MASK) == IDENTIFIER_PIKE_FUNCTION)
#define IDENTIFIER_IS_C_FUNCTION(X) (((X) & IDENTIFIER_TYPE_MASK) == IDENTIFIER_C_FUNCTION)
#define IDENTIFIER_IS_CONSTANT(X) (((X) & IDENTIFIER_TYPE_MASK) == IDENTIFIER_CONSTANT)
|
7ea793 | 2003-08-03 | Martin Stjernholm | | #define IDENTIFIER_IS_VARIABLE(X) (!((X) & IDENTIFIER_TYPE_MASK))
|
eff2b0 | 2001-07-03 | Henrik Grubbström (Grubba) | | #define IDENTIFIER_IS_ALIAS(X) ((X) & IDENTIFIER_ALIAS)
|
64dd45 | 2007-09-29 | Henrik Grubbström (Grubba) | | #define IDENTIFIER_IS_SCOPED(X) ((X) & IDENTIFIER_SCOPED)
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
64dd45 | 2007-09-29 | Henrik Grubbström (Grubba) | | #define IDENTIFIER_MASK 127
|
97f628 | 2000-03-07 | Fredrik Hübinette (Hubbe) | |
|
2f075c | 2001-10-05 | Fredrik Hübinette (Hubbe) | | |
0ee38f | 2002-05-11 | Martin Stjernholm | | * gets exactly one of these.
|
2f075c | 2001-10-05 | Fredrik Hübinette (Hubbe) | | */
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | struct identifier
{
|
06983f | 1996-09-22 | Fredrik Hübinette (Hubbe) | | struct pike_string *name;
|
d68a07 | 2001-02-20 | Henrik Grubbström (Grubba) | | struct pike_type *type;
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | INT_TYPE linenumber;
|
2011cc | 2014-10-06 | Per Hedbor | | unsigned INT32 filename_strno;
|
1ef557 | 2000-08-30 | Henrik Grubbström (Grubba) | | unsigned INT8 identifier_flags;
unsigned INT8 run_time_type;
unsigned INT16 opt_flags;
|
be478c | 1997-08-30 | Henrik Grubbström (Grubba) | | #ifdef PROFILING
|
b2630d | 2004-05-20 | Henrik Grubbström (Grubba) | | unsigned INT32 num_calls;
|
5ca7b5 | 2012-01-07 | Jonas Walldén | | unsigned INT32 recur_depth;
|
b2630d | 2004-05-20 | Henrik Grubbström (Grubba) | | cpu_time_t total_time;
cpu_time_t self_time;
|
be478c | 1997-08-30 | Henrik Grubbström (Grubba) | | #endif /* PROFILING */
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | union idptr func;
};
|
2f075c | 2001-10-05 | Fredrik Hübinette (Hubbe) | | |
13670c | 2015-05-25 | Martin Nilsson | | * inline constants and those defined explicitly with
|
2f075c | 2001-10-05 | Fredrik Hübinette (Hubbe) | | * the constant keyword.
*/
|
454d54 | 1999-09-18 | Fredrik Hübinette (Hubbe) | | struct program_constant
{
|
4ea54f | 2004-05-29 | Henrik Grubbström (Grubba) | | struct svalue sval;
ptrdiff_t offset;
|
454d54 | 1999-09-18 | Fredrik Hübinette (Hubbe) | | };
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
09846a | 2007-10-06 | Henrik Grubbström (Grubba) | | #define ID_PROTECTED 0x01 /* Symbol is not visible by indexing */
|
b92e34 | 1999-12-30 | Henrik Grubbström (Grubba) | | #define ID_STATIC 0x01 /* Symbol is not visible by indexing */
#define ID_PRIVATE 0x02 /* Symbol is not visible by inherit */
|
09846a | 2007-10-06 | Henrik Grubbström (Grubba) | | #define ID_FINAL 0x04 /* Symbol may not be overloaded */
|
ab0d47 | 2007-12-28 | Martin Nilsson | | #define ID_NOMASK 0x04 /* Symbol may not be overloaded (deprecated) */
|
fa8960 | 2002-03-01 | Martin Nilsson | | #define ID_PUBLIC 0x08 /* Anti private */
|
33934f | 2008-05-21 | Henrik Grubbström (Grubba) | | #define ID_USED 0x10 /* This identifier has been used. Check
|
3f772f | 2007-10-11 | Henrik Grubbström (Grubba) | | * that the type is compatible when
* overloading. */
|
09846a | 2007-10-06 | Henrik Grubbström (Grubba) | | #define ID_LOCAL 0x20 /* Locally referenced symbol (not virtual) */
|
fa8960 | 2002-03-01 | Martin Nilsson | | #define ID_INLINE 0x20 /* Same as local */
#define ID_HIDDEN 0x40 /* Symbols that are private and inherited one step later */
#define ID_INHERITED 0x80 /* Symbol is inherited */
|
b92e34 | 1999-12-30 | Henrik Grubbström (Grubba) | | #define ID_OPTIONAL 0x100 /* Symbol is not required by the interface */
#define ID_EXTERN 0x200 /* Symbol is defined later */
|
5ca435 | 2000-07-12 | Henrik Grubbström (Grubba) | | #define ID_VARIANT 0x400 /* Function is overloaded by argument. */
|
f80d57 | 1999-11-23 | Henrik Grubbström (Grubba) | |
|
3f772f | 2007-10-11 | Henrik Grubbström (Grubba) | | #define ID_MODIFIER_MASK 0x07ff
|
f80d57 | 1999-11-23 | Henrik Grubbström (Grubba) | |
|
1fd11d | 2008-05-29 | Henrik Grubbström (Grubba) | | #define ID_STRICT_TYPES 0x8000 /* #pragma strict_types */
#define ID_SAVE_PARENT 0x10000 /* #pragma save_parent */
#define ID_DONT_SAVE_PARENT 0x20000 /* #pragma dont_save_parent */
#define ID_NO_DEPRECATION_WARNINGS 0x40000 /* #pragma no_deprecation_warnings */
|
9b4ac3 | 2014-11-26 | Henrik Grubbström (Grubba) | | #define ID_DISASSEMBLE 0x80000 /* #pragma disassemble */
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
2f075c | 2001-10-05 | Fredrik Hübinette (Hubbe) | |
|
fb79e0 | 2002-12-16 | Henrik Grubbström (Grubba) | | * need to have a 'struct reference' in this
|
2f075c | 2001-10-05 | Fredrik Hübinette (Hubbe) | | * program. When we overload a function, we simply
* change the reference to point to the new 'struct identifier'.
|
9823d6 | 2003-08-02 | Martin Stjernholm | | *
* When an identifier is represented as an integer, it's typically the
* offset of the corresponding struct reference in
* program.identifier_references.
|
2f075c | 2001-10-05 | Fredrik Hübinette (Hubbe) | | */
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | struct reference
{
|
9823d6 | 2003-08-02 | Martin Stjernholm | |
|
cb2256 | 1995-10-11 | Fredrik Hübinette (Hubbe) | | unsigned INT16 inherit_offset;
|
9823d6 | 2003-08-02 | Martin Stjernholm | |
|
cb2256 | 1995-10-11 | Fredrik Hübinette (Hubbe) | | unsigned INT16 identifier_offset;
|
9823d6 | 2003-08-02 | Martin Stjernholm | |
|
977987 | 2008-06-28 | Martin Stjernholm | |
|
583850 | 2007-01-01 | Martin Nilsson | | unsigned INT16 id_flags;
|
77fbd7 | 2010-11-25 | Henrik Grubbström (Grubba) | |
INT16 run_time_type;
union idptr func;
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | };
|
7ea793 | 2003-08-03 | Martin Stjernholm | |
#define IDREF_MAGIC_THIS -1
|
9823d6 | 2003-08-02 | Martin Stjernholm | |
#define OBJECT_PARENT -18
#define INHERIT_PARENT -17
|
2f075c | 2001-10-05 | Fredrik Hübinette (Hubbe) | | |
414596 | 2003-01-31 | Martin Stjernholm | | * all 'struct inherit' from that program are
|
2f075c | 2001-10-05 | Fredrik Hübinette (Hubbe) | | * copied, so the whole tree of inherits is
* represented.
*/
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | struct inherit
{
|
9823d6 | 2003-08-02 | Martin Stjernholm | |
|
342fef | 2000-08-23 | Fredrik Hübinette (Hubbe) | | INT16 inherit_level;
|
9823d6 | 2003-08-02 | Martin Stjernholm | |
|
89378b | 2010-11-23 | Henrik Grubbström (Grubba) | | |
9823d6 | 2003-08-02 | Martin Stjernholm | | * copied to this program with the first one at this offset. */
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | INT16 identifier_level;
|
9823d6 | 2003-08-02 | Martin Stjernholm | |
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | INT16 parent_identifier;
|
9823d6 | 2003-08-02 | Martin Stjernholm | |
|
61e9a0 | 1998-01-25 | Fredrik Hübinette (Hubbe) | | INT16 parent_offset;
|
9823d6 | 2003-08-02 | Martin Stjernholm | |
|
1a4936 | 2002-05-10 | Henrik Grubbström (Grubba) | | size_t identifier_ref_offset;
|
9823d6 | 2003-08-02 | Martin Stjernholm | |
|
b81935 | 2000-08-14 | Henrik Grubbström (Grubba) | | ptrdiff_t storage_offset;
|
9823d6 | 2003-08-02 | Martin Stjernholm | |
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | struct object *parent;
|
9823d6 | 2003-08-02 | Martin Stjernholm | |
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | struct program *prog;
|
9823d6 | 2003-08-02 | Martin Stjernholm | |
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | struct pike_string *name;
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | };
|
2f075c | 2001-10-05 | Fredrik Hübinette (Hubbe) | |
|
454d54 | 1999-09-18 | Fredrik Hübinette (Hubbe) | | struct pike_trampoline
{
struct pike_frame *frame;
INT32 func;
};
|
aa68b1 | 2001-03-19 | Fredrik Hübinette (Hubbe) | |
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | |
#define PROGRAM_OPTIMIZED 1
#define PROGRAM_FIXED 2
#define PROGRAM_FINISHED 4
#define PROGRAM_PASS_1_DONE 8
|
8aae6d | 1999-08-19 | Fredrik Hübinette (Hubbe) | |
|
f3c715 | 2001-04-14 | Fredrik Hübinette (Hubbe) | | #define PROGRAM_DESTRUCT_IMMEDIATE 0x10
|
b504ed | 1997-09-21 | Fredrik Hübinette (Hubbe) | |
|
8aae6d | 1999-08-19 | Fredrik Hübinette (Hubbe) | |
|
f3c715 | 2001-04-14 | Fredrik Hübinette (Hubbe) | | #define PROGRAM_HAS_C_METHODS 0x20
|
05590d | 1998-04-23 | Fredrik Hübinette (Hubbe) | |
|
f3c715 | 2001-04-14 | Fredrik Hübinette (Hubbe) | |
#define PROGRAM_CONSTANT 0x40
|
8aae6d | 1999-08-19 | Fredrik Hübinette (Hubbe) | |
|
9823d6 | 2003-08-02 | Martin Stjernholm | |
|
f3c715 | 2001-04-14 | Fredrik Hübinette (Hubbe) | | #define PROGRAM_USES_PARENT 0x80
|
199425 | 1999-09-06 | Fredrik Hübinette (Hubbe) | |
|
2b1b5f | 2002-02-06 | Henrik Grubbström (Grubba) | | |
1b0ac8 | 1999-10-29 | Martin Stjernholm | | * references left. */
|
f3c715 | 2001-04-14 | Fredrik Hübinette (Hubbe) | | #define PROGRAM_NO_WEAK_FREE 0x100
|
1b0ac8 | 1999-10-29 | Martin Stjernholm | |
|
f3c715 | 2001-04-14 | Fredrik Hübinette (Hubbe) | | #define PROGRAM_NO_EXPLICIT_DESTRUCT 0x200
|
1b0ac8 | 1999-10-29 | Martin Stjernholm | |
|
8ba59a | 2000-03-26 | Fredrik Hübinette (Hubbe) | |
|
f3c715 | 2001-04-14 | Fredrik Hübinette (Hubbe) | | #define PROGRAM_AVOID_CHECK 0x400
|
8ba59a | 2000-03-26 | Fredrik Hübinette (Hubbe) | |
|
aa68b1 | 2001-03-19 | Fredrik Hübinette (Hubbe) | |
|
f3c715 | 2001-04-14 | Fredrik Hübinette (Hubbe) | | #define PROGRAM_VIRGIN 0x800
|
aa68b1 | 2001-03-19 | Fredrik Hübinette (Hubbe) | |
|
9823d6 | 2003-08-02 | Martin Stjernholm | | |
99cce5 | 2007-05-26 | Martin Stjernholm | | * parent object. Might only be set if PROGRAM_USES_PARENT is. */
|
22d799 | 2001-06-23 | Fredrik Hübinette (Hubbe) | | #define PROGRAM_NEEDS_PARENT 0x1000
|
99cce5 | 2007-05-26 | Martin Stjernholm | |
#define PROGRAM_LIVE_OBJ 0x2000
|
a94712 | 2014-06-16 | Henrik Grubbström (Grubba) | |
#define PROGRAM_CLEAR_STORAGE 0x4000
|
b5dc81 | 2001-07-12 | Fredrik Hübinette (Hubbe) | |
#define PROG_EVENT_INIT 0
#define PROG_EVENT_EXIT 1
#define PROG_EVENT_GC_RECURSE 2
#define PROG_EVENT_GC_CHECK 3
#define NUM_PROG_EVENTS 4
|
8ba59a | 2000-03-26 | Fredrik Hübinette (Hubbe) | |
|
f3c715 | 2001-04-14 | Fredrik Hübinette (Hubbe) | |
#define LOW_PARENT_INFO(O,P) ((struct parent_info *)(PIKE_OBJ_STORAGE((O)) + (P)->parent_info_storage))
#define PARENT_INFO(O) LOW_PARENT_INFO( (O), (O)->prog)
|
2f075c | 2001-10-05 | Fredrik Hübinette (Hubbe) | |
|
f3c715 | 2001-04-14 | Fredrik Hübinette (Hubbe) | | struct parent_info
{
struct object *parent;
INT16 parent_identifier;
};
|
79788d | 2009-06-22 | Henrik Grubbström (Grubba) | |
struct identifier_lookup_cache
{
INT32 program_id;
INT32 identifier_id;
};
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | struct program
{
|
f42642 | 2015-03-17 | Martin Nilsson | | INT32 refs;
|
45637c | 2001-04-07 | Fredrik Hübinette (Hubbe) | |
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | INT32 id;
|
2ad3c0 | 1999-09-16 | Fredrik Hübinette (Hubbe) | |
|
b81935 | 2000-08-14 | Henrik Grubbström (Grubba) | | ptrdiff_t storage_needed;
|
f3c715 | 2001-04-14 | Fredrik Hübinette (Hubbe) | | ptrdiff_t xstorage;
ptrdiff_t parent_info_storage;
|
8f29a3 | 1999-09-15 | Fredrik Hübinette (Hubbe) | | INT16 flags;
|
90e978 | 1999-01-31 | Fredrik Hübinette (Hubbe) | | unsigned INT8 alignment_needed;
|
05590d | 1998-04-23 | Fredrik Hübinette (Hubbe) | | struct timeval timestamp;
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
struct program *next;
struct program *prev;
|
f3c715 | 2001-04-14 | Fredrik Hübinette (Hubbe) | | struct program *parent;
|
13670c | 2015-05-25 | Martin Nilsson | |
|
e772e4 | 2003-11-14 | Martin Stjernholm | | node *(*optimize)(node *n);
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | |
|
b5dc81 | 2001-07-12 | Fredrik Hübinette (Hubbe) | | void (*event_handler)(int);
|
71f3a2 | 1998-11-22 | Fredrik Hübinette (Hubbe) | | #ifdef PIKE_DEBUG
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | unsigned INT32 checksum;
#endif
|
be478c | 1997-08-30 | Henrik Grubbström (Grubba) | | #ifdef PROFILING
unsigned INT32 num_clones;
#endif /* PROFILING */
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
de1d7d | 2000-07-10 | Henrik Grubbström (Grubba) | | size_t total_size;
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | |
|
7e877a | 2003-04-02 | Martin Stjernholm | | #define FOO(NUMTYPE,TYPE,ARGTYPE,NAME) TYPE * NAME ;
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | #include "program_areas.h"
|
7e877a | 2003-04-02 | Martin Stjernholm | | #define FOO(NUMTYPE,TYPE,ARGTYPE,NAME) NUMTYPE PIKE_CONCAT(num_,NAME) ;
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | #include "program_areas.h"
|
13670c | 2015-05-25 | Martin Nilsson | |
|
558069 | 1996-06-21 | Fredrik Hübinette (Hubbe) | | INT16 lfuns[NUM_LFUNS];
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | };
|
aa0422 | 2013-02-25 | Arne Goedeke | | PMOD_EXPORT void dump_program_tables (const struct program *p, int indent);
|
cc6044 | 2008-12-13 | Martin Nilsson | | #ifdef PIKE_DEBUG
|
e993fe | 2015-04-01 | Henrik Grubbström (Grubba) | | static INLINE int PIKE_UNUSED_ATTRIBUTE CHECK_IDREF_RANGE (int x, const struct program *p)
|
7ea793 | 2003-08-03 | Martin Stjernholm | | {
|
79788d | 2009-06-22 | Henrik Grubbström (Grubba) | | if (x < 0 || x >= p->num_identifier_references) {
|
c06452 | 2009-06-22 | Henrik Grubbström (Grubba) | | dump_program_tables(p, 4);
|
7ea793 | 2003-08-03 | Martin Stjernholm | | debug_fatal ("Identifier reference index %d out of range 0..%d\n", x,
p->num_identifier_references - 1);
|
79788d | 2009-06-22 | Henrik Grubbström (Grubba) | | }
|
7ea793 | 2003-08-03 | Martin Stjernholm | | return x;
}
#else
|
a2ffef | 2003-08-20 | Henrik Grubbström (Grubba) | | #define CHECK_IDREF_RANGE(X, P) (X)
|
7ea793 | 2003-08-03 | Martin Stjernholm | | #endif
|
a2ffef | 2003-08-20 | Henrik Grubbström (Grubba) | | #define PTR_FROM_INT(P, X) ((P)->identifier_references + \
CHECK_IDREF_RANGE((X), (P)))
|
3c43b8 | 1999-03-19 | Fredrik Hübinette (Hubbe) | | #define INHERIT_FROM_PTR(P,X) (dmalloc_touch(struct program *,(P))->inherits + (X)->inherit_offset)
#define PROG_FROM_PTR(P,X) (dmalloc_touch(struct program *,INHERIT_FROM_PTR(P,X)->prog))
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #define ID_FROM_PTR(P,X) (PROG_FROM_PTR(P,X)->identifiers+(X)->identifier_offset)
|
a2ffef | 2003-08-20 | Henrik Grubbström (Grubba) | | #define INHERIT_FROM_INT(P,X) INHERIT_FROM_PTR(P, PTR_FROM_INT(P, X))
#define PROG_FROM_INT(P,X) PROG_FROM_PTR(P, PTR_FROM_INT(P, X))
#define ID_FROM_INT(P,X) ID_FROM_PTR(P, PTR_FROM_INT(P, X))
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
962448 | 2003-01-15 | Martin Stjernholm | | #define QUICK_FIND_LFUN(P,N) (dmalloc_touch(struct program *,(P))->lfuns[N])
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | |
|
3b6567 | 2004-05-23 | Martin Nilsson | | #ifdef DO_PIKE_CLEANUP
|
3a1011 | 2006-07-05 | Martin Stjernholm | | PMOD_EXPORT extern int gc_external_refs_zapped;
|
8b03a6 | 2012-01-27 | Henrik Grubbström (Grubba) | | PMOD_EXPORT void gc_check_zapped (void *a, TYPE_T type, const char *file, INT_TYPE line);
|
3b6567 | 2004-05-23 | Martin Nilsson | | #endif
|
3a1011 | 2006-07-05 | Martin Stjernholm | | #if defined (USE_DLL) && defined (DYNAMIC_MODULE)
#define free_program(p) do_free_program(p)
#else
|
4fab5f | 2004-04-18 | Martin Stjernholm | | #define free_program(p) do{ \
struct program *_=(p); \
debug_malloc_touch(_); \
|
31a868 | 2004-09-27 | Martin Stjernholm | | DO_IF_DEBUG ( \
|
dbcb29 | 2004-09-29 | Martin Stjernholm | | DO_IF_PIKE_CLEANUP ( \
if (gc_external_refs_zapped) \
gc_check_zapped (_, PIKE_T_PROGRAM, __FILE__, __LINE__))); \
|
4fab5f | 2004-04-18 | Martin Stjernholm | | if(!sub_ref(_)) \
really_free_program(_); \
}while(0)
|
3a1011 | 2006-07-05 | Martin Stjernholm | | #endif
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
d47659 | 2013-06-12 | Arne Goedeke | | ATTRIBUTE((malloc))
|
3b54e5 | 2014-08-21 | Martin Nilsson | | PMOD_EXPORT struct program * alloc_program(void);
|
d47659 | 2013-06-12 | Arne Goedeke | | PMOD_EXPORT void really_free_program(struct program * p);
|
990eb5 | 2013-11-03 | Tobias S. Josefowitz | | void count_memory_in_programs(size_t *num, size_t *_size);
|
3b54e5 | 2014-08-21 | Martin Nilsson | | void free_all_program_blocks(void);
|
13e01d | 2001-12-16 | Martin Stjernholm | |
|
199498 | 1998-04-07 | Fredrik Hübinette (Hubbe) | |
|
1ca3ba | 1997-10-13 | Fredrik Hübinette (Hubbe) | | extern struct program *first_program;
|
92c73b | 2001-11-08 | Fredrik Hübinette (Hubbe) | | extern struct program *null_program;
|
41c915 | 2008-04-18 | Henrik Grubbström (Grubba) | | extern struct program *compilation_env_program;
|
e021fe | 2008-04-14 | Henrik Grubbström (Grubba) | | extern struct program *compilation_program;
|
41c915 | 2008-04-18 | Henrik Grubbström (Grubba) | | extern struct object *compilation_environment;
|
421801 | 1999-01-31 | Fredrik Hübinette (Hubbe) | | extern struct program *pike_trampoline_program;
|
e2d9e6 | 2000-06-10 | Martin Stjernholm | | extern struct program *gc_internal_program;
|
eaa4da | 2001-10-04 | Fredrik Hübinette (Hubbe) | | extern struct program *placeholder_program;
extern struct object *placeholder_object;
|
964949 | 1998-02-27 | Fredrik Hübinette (Hubbe) | |
|
8aae6d | 1999-08-19 | Fredrik Hübinette (Hubbe) | |
#define SEE_STATIC 1
|
24736a | 2008-06-29 | Martin Nilsson | | #define SEE_PROTECTED 1
|
8aae6d | 1999-08-19 | Fredrik Hübinette (Hubbe) | | #define SEE_PRIVATE 2
|
94d66b | 2008-05-24 | Henrik Grubbström (Grubba) | |
#define REPORT_NOTICE 0 /* FYI. */
#define REPORT_WARNING 1 /* Compiler warning. */
#define REPORT_ERROR 2 /* Compilation error. */
#define REPORT_FATAL 3 /* Unrecoverable error. */
|
8aae6d | 1999-08-19 | Fredrik Hübinette (Hubbe) | |
|
964949 | 1998-02-27 | Fredrik Hübinette (Hubbe) | | #define COMPILER_IN_CATCH 1
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | |
|
365369 | 2005-03-14 | Per Hedbor | | #define ADD_STORAGE(X) low_add_storage(sizeof(X), ALIGNOF(X),0)
|
dfd8b3 | 2005-03-14 | Per Hedbor | |
|
1f5bfe | 1999-09-28 | Fredrik Hübinette (Hubbe) | | #define STORAGE_NEEDED(X) ((X)->storage_needed - (X)->inherits[0].storage_offset)
|
90e978 | 1999-01-31 | Fredrik Hübinette (Hubbe) | |
|
e18a68 | 2009-08-17 | Henrik Grubbström (Grubba) | | #define FOO(NUMTYPE,TYPE,ARGTYPE,NAME) \
void PIKE_CONCAT(add_to_,NAME)(ARGTYPE ARG);
#define BAR(NUMTYPE,TYPE,ARGTYPE,NAME) \
void PIKE_CONCAT(low_add_many_to_,NAME)(struct program_state *state, ARGTYPE *ARG, NUMTYPE cnt); \
void PIKE_CONCAT(add_to_,NAME)(ARGTYPE ARG);
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | #include "program_areas.h"
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
c6cf60 | 2001-12-13 | Martin Stjernholm | | typedef int supporter_callback (void *, int);
|
216eac | 2008-08-17 | Martin Stjernholm | |
|
92c73b | 2001-11-08 | Fredrik Hübinette (Hubbe) | | struct Supporter
{
#ifdef PIKE_DEBUG
int magic;
#endif
|
216eac | 2008-08-17 | Martin Stjernholm | |
|
92c73b | 2001-11-08 | Fredrik Hübinette (Hubbe) | | struct Supporter *previous;
|
216eac | 2008-08-17 | Martin Stjernholm | |
|
92c73b | 2001-11-08 | Fredrik Hübinette (Hubbe) | | struct Supporter *depends_on;
|
216eac | 2008-08-17 | Martin Stjernholm | |
struct Supporter *dependants, *next_dependant;
|
e021fe | 2008-04-14 | Henrik Grubbström (Grubba) | | struct object *self;
|
c6cf60 | 2001-12-13 | Martin Stjernholm | | supporter_callback *fun;
|
92c73b | 2001-11-08 | Fredrik Hübinette (Hubbe) | | void *data;
|
216eac | 2008-08-17 | Martin Stjernholm | |
|
92c73b | 2001-11-08 | Fredrik Hübinette (Hubbe) | | struct program *prog;
|
216eac | 2008-08-17 | Martin Stjernholm | |
|
92c73b | 2001-11-08 | Fredrik Hübinette (Hubbe) | | };
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
8b5b3a | 2014-04-28 | Henrik Grubbström (Grubba) | | PMOD_EXPORT void lock_pike_compiler(void);
PMOD_EXPORT void unlock_pike_compiler(void);
|
3a1011 | 2006-07-05 | Martin Stjernholm | | PMOD_EXPORT void do_free_program (struct program *p);
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | void ins_int(INT32 i, void (*func)(char tmp));
|
1a4936 | 2002-05-10 | Henrik Grubbström (Grubba) | | void add_relocated_int_to_program(INT32 i);
|
591c0c | 1997-01-19 | Fredrik Hübinette (Hubbe) | | void use_module(struct svalue *s);
|
05590d | 1998-04-23 | Fredrik Hübinette (Hubbe) | | void unuse_modules(INT32 howmany);
|
e772e4 | 2003-11-14 | Martin Stjernholm | | node *find_module_identifier(struct pike_string *ident,
int see_inherit);
node *resolve_identifier(struct pike_string *ident);
|
ef2adb | 2013-04-21 | Henrik Grubbström (Grubba) | | PMOD_EXPORT struct program *resolve_program(struct pike_string *ident);
|
e772e4 | 2003-11-14 | Martin Stjernholm | | node *program_magic_identifier (struct program_state *state,
int state_depth, int inherit_num,
struct pike_string *ident,
int colon_colon_ref);
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | struct program *parent_compilation(int level);
|
b8cda2 | 1997-01-21 | Fredrik Hübinette (Hubbe) | | struct program *id_to_program(INT32 id);
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | void optimize_program(struct program *p);
|
ab9db5 | 2003-02-20 | Henrik Grubbström (Grubba) | | void fsort_program_identifier_index(unsigned short *start,
unsigned short *end,
struct program *p);
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | struct pike_string *find_program_name(struct program *p, INT_TYPE *line);
|
aaf40c | 2013-11-03 | Henrik Grubbström (Grubba) | | int override_identifier (struct reference *ref, struct pike_string *name,
int required_flags);
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | void fixate_program(void);
|
05590d | 1998-04-23 | Fredrik Hübinette (Hubbe) | | struct program *low_allocate_program(void);
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | void low_start_new_program(struct program *p,
|
6d3bc8 | 2003-06-03 | Martin Stjernholm | | int pass,
|
993ba7 | 2000-02-15 | Fredrik Hübinette (Hubbe) | | struct pike_string *name,
int flags,
int *idp);
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | PMOD_EXPORT void debug_start_new_program(INT_TYPE line, const char *file);
|
5683de | 1995-11-06 | Fredrik Hübinette (Hubbe) | | void dump_program_desc(struct program *p);
|
e964ae | 1998-04-08 | Fredrik Hübinette (Hubbe) | | int sizeof_variable(int run_time_type);
|
624d09 | 1996-02-24 | Fredrik Hübinette (Hubbe) | | void check_program(struct program *p);
|
b70622 | 2014-08-20 | Henrik Grubbström (Grubba) | | int low_is_variant_dispatcher(struct identifier *id);
|
a0a83a | 2013-06-16 | Henrik Grubbström (Grubba) | | int is_variant_dispatcher(struct program *prog, int fun);
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | struct program *end_first_pass(int finish);
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT struct program *debug_end_program(void);
|
b81935 | 2000-08-14 | Henrik Grubbström (Grubba) | | PMOD_EXPORT size_t low_add_storage(size_t size, size_t alignment,
ptrdiff_t modulo_orig);
|
6e4c64 | 2002-09-11 | Marcus Comstedt | | PMOD_EXPORT void set_init_callback(void (*init_callback)(struct object *));
PMOD_EXPORT void set_exit_callback(void (*exit_callback)(struct object *));
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT void set_gc_recurse_callback(void (*m)(struct object *));
PMOD_EXPORT void set_gc_check_callback(void (*m)(struct object *));
|
3a1011 | 2006-07-05 | Martin Stjernholm | | PMOD_EXPORT void pike_set_prog_event_callback(void (*cb)(int));
PMOD_EXPORT void pike_set_prog_optimize_callback(node *(*opt)(node *));
|
b0c1a0 | 2013-10-28 | Henrik Grubbström (Grubba) | | PMOD_EXPORT int really_low_reference_inherited_identifier(struct program_state *q,
|
8029d7 | 2013-10-31 | Henrik Grubbström (Grubba) | | int i,
int f);
|
b0c1a0 | 2013-10-28 | Henrik Grubbström (Grubba) | | PMOD_EXPORT int low_reference_inherited_identifier(struct program_state *q,
int e,
struct pike_string *name,
int flags);
|
ddc142 | 2000-06-26 | Henrik Grubbström (Grubba) | | int find_inherit(struct program *p, struct pike_string *name);
|
6d0fdb | 2013-04-28 | Henrik Grubbström (Grubba) | | PMOD_EXPORT int reference_inherited_identifier(struct program_state *state,
struct pike_string *inherit,
struct pike_string *name);
|
06983f | 1996-09-22 | Fredrik Hübinette (Hubbe) | | void rename_last_inherit(struct pike_string *n);
|
a0c9f6 | 2013-06-15 | Henrik Grubbström (Grubba) | | void lower_inherit(struct program *p,
struct object *parent,
int parent_identifier,
int parent_offset,
INT32 flags,
struct pike_string *name);
|
56f283 | 2006-07-05 | Martin Stjernholm | | PMOD_EXPORT void low_inherit(struct program *p,
struct object *parent,
int parent_identifier,
int parent_offset,
INT32 flags,
struct pike_string *name);
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT void do_inherit(struct svalue *s,
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | INT32 flags,
struct pike_string *name);
|
e772e4 | 2003-11-14 | Martin Stjernholm | | void compiler_do_inherit(node *n, INT32 flags, struct pike_string *name);
|
9036e8 | 2001-08-16 | Martin Stjernholm | | int call_handle_inherit(struct pike_string *s);
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | void simple_do_inherit(struct pike_string *s,
INT32 flags,
struct pike_string *name);
|
06983f | 1996-09-22 | Fredrik Hübinette (Hubbe) | | int isidentifier(struct pike_string *s);
|
64dd45 | 2007-09-29 | Henrik Grubbström (Grubba) | | int low_define_alias(struct pike_string *name, struct pike_type *type,
int flags, int depth, int refno);
PMOD_EXPORT int define_alias(struct pike_string *name, struct pike_type *type,
int flags, int depth, int refno);
|
05c7cd | 1997-07-19 | Fredrik Hübinette (Hubbe) | | int low_define_variable(struct pike_string *name,
|
d68a07 | 2001-02-20 | Henrik Grubbström (Grubba) | | struct pike_type *type,
|
05c7cd | 1997-07-19 | Fredrik Hübinette (Hubbe) | | INT32 flags,
|
de1d7d | 2000-07-10 | Henrik Grubbström (Grubba) | | size_t offset,
|
05c7cd | 1997-07-19 | Fredrik Hübinette (Hubbe) | | INT32 run_time_type);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | PMOD_EXPORT int map_variable(const char *name,
const char *type,
|
05c7cd | 1997-07-19 | Fredrik Hübinette (Hubbe) | | INT32 flags,
|
de1d7d | 2000-07-10 | Henrik Grubbström (Grubba) | | size_t offset,
|
05c7cd | 1997-07-19 | Fredrik Hübinette (Hubbe) | | INT32 run_time_type);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | PMOD_EXPORT int quick_map_variable(const char *name,
|
e2d9e6 | 2000-06-10 | Martin Stjernholm | | int name_length,
|
de1d7d | 2000-07-10 | Henrik Grubbström (Grubba) | | size_t offset,
|
0929a0 | 2002-09-12 | Marcus Comstedt | | const char *type,
|
e2d9e6 | 2000-06-10 | Martin Stjernholm | | int type_length,
INT32 run_time_type,
INT32 flags);
|
06983f | 1996-09-22 | Fredrik Hübinette (Hubbe) | | int define_variable(struct pike_string *name,
|
d68a07 | 2001-02-20 | Henrik Grubbström (Grubba) | | struct pike_type *type,
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | INT32 flags);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | PMOD_EXPORT int simple_add_variable(const char *name,
const char *type,
|
eaa4da | 2001-10-04 | Fredrik Hübinette (Hubbe) | | INT32 flags);
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT int add_constant(struct pike_string *name,
|
cca487 | 2010-02-18 | Stephen R. van den Berg | | const struct svalue *c,
|
eaa4da | 2001-10-04 | Fredrik Hübinette (Hubbe) | | INT32 flags);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | PMOD_EXPORT int simple_add_constant(const char *name,
|
eaa4da | 2001-10-04 | Fredrik Hübinette (Hubbe) | | struct svalue *c,
INT32 flags);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | PMOD_EXPORT int add_integer_constant(const char *name,
|
e6f913 | 2003-11-07 | Martin Stjernholm | | INT_ARG_TYPE i,
INT32 flags);
|
fa53ec | 2012-06-05 | Stephen R. van den Berg | | PMOD_EXPORT int low_add_integer_constant(struct pike_string *name,
INT_ARG_TYPE i,
INT32 flags);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | PMOD_EXPORT int quick_add_integer_constant(const char *name,
|
e6f913 | 2003-11-07 | Martin Stjernholm | | int name_length,
INT_ARG_TYPE i,
INT32 flags);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | PMOD_EXPORT int add_float_constant(const char *name,
|
e6f913 | 2003-11-07 | Martin Stjernholm | | FLOAT_ARG_TYPE f,
INT32 flags);
PMOD_EXPORT int quick_add_float_constant(const char *name,
int name_length,
FLOAT_ARG_TYPE f,
INT32 flags);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | PMOD_EXPORT int add_string_constant(const char *name,
|
e6f913 | 2003-11-07 | Martin Stjernholm | | const char *str,
INT32 flags);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | PMOD_EXPORT int add_program_constant(const char *name,
|
eaa4da | 2001-10-04 | Fredrik Hübinette (Hubbe) | | struct program *p,
INT32 flags);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | PMOD_EXPORT int add_object_constant(const char *name,
|
eaa4da | 2001-10-04 | Fredrik Hübinette (Hubbe) | | struct object *o,
INT32 flags);
|
7e877a | 2003-04-02 | Martin Stjernholm | | PMOD_EXPORT int add_function_constant(const char *name, void (*cfun)(INT32), const char * type, int flags);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | PMOD_EXPORT int debug_end_class(const char *name, ptrdiff_t namelen, INT32 flags);
|
06983f | 1996-09-22 | Fredrik Hübinette (Hubbe) | | INT32 define_function(struct pike_string *name,
|
d68a07 | 2001-02-20 | Henrik Grubbström (Grubba) | | struct pike_type *type,
|
7e877a | 2003-04-02 | Martin Stjernholm | | unsigned flags,
unsigned function_flags,
|
1ef557 | 2000-08-30 | Henrik Grubbström (Grubba) | | union idptr *func,
|
7e877a | 2003-04-02 | Martin Stjernholm | | unsigned opt_flags);
|
22f300 | 2013-10-05 | Henrik Grubbström (Grubba) | | PMOD_EXPORT int really_low_find_shared_string_identifier(struct pike_string *name,
|
1117cf | 2014-11-06 | Martin Nilsson | | const struct program *prog,
|
22f300 | 2013-10-05 | Henrik Grubbström (Grubba) | | int flags);
|
295afd | 2013-05-26 | Henrik Grubbström (Grubba) | | int really_low_find_variant_identifier(struct pike_string *name,
struct program *prog,
struct pike_type *type,
int start_pos,
int flags);
|
3a1011 | 2006-07-05 | Martin Stjernholm | | PMOD_EXPORT int low_find_lfun(struct program *p, ptrdiff_t lfun);
|
e2f740 | 2014-01-15 | Henrik Grubbström (Grubba) | | PMOD_EXPORT int find_lfun_fatal(struct program *p, ptrdiff_t lfun);
|
286afb | 2001-02-05 | Henrik Grubbström (Grubba) | | int lfun_lookup_id(struct pike_string *lfun_name);
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | int low_find_shared_string_identifier(struct pike_string *name,
|
1117cf | 2014-11-06 | Martin Nilsson | | const struct program *prog);
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | struct ff_hash;
|
06983f | 1996-09-22 | Fredrik Hübinette (Hubbe) | | int find_shared_string_identifier(struct pike_string *name,
|
1117cf | 2014-11-06 | Martin Nilsson | | const struct program *prog);
PMOD_EXPORT int find_identifier(const char *name,const struct program *prog);
|
06983f | 1996-09-22 | Fredrik Hübinette (Hubbe) | | int store_prog_string(struct pike_string *str);
|
cca487 | 2010-02-18 | Stephen R. van den Berg | | int store_constant(const struct svalue *foo,
|
101602 | 1999-10-28 | Fredrik Hübinette (Hubbe) | | int equal,
struct pike_string *constant_name);
|
15ff8c | 1998-05-25 | Henrik Grubbström (Grubba) | | struct array *program_indices(struct program *p);
struct array *program_values(struct program *p);
|
7195af | 2011-01-15 | Henrik Grubbström (Grubba) | | struct array *program_types(struct program *p);
|
5dcae8 | 2010-11-11 | Henrik Grubbström (Grubba) | | int low_program_index_no_free(struct svalue *to, struct program *p, int e,
struct object *parent, int parent_identifier);
|
354bbe | 2007-09-24 | Henrik Grubbström (Grubba) | | int program_index_no_free(struct svalue *to, struct svalue *what,
struct svalue *ind);
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | INT_TYPE get_small_number(char **q);
void ext_store_program_line (struct program *prog, INT_TYPE line,
struct pike_string *file);
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | void start_line_numbering(void);
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | void store_linenumber(INT_TYPE current_line, struct pike_string *current_file);
|
7c7a3f | 2002-12-01 | Martin Stjernholm | | PMOD_EXPORT struct pike_string *low_get_program_line(struct program *prog,
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | INT_TYPE *linep);
|
50edc8 | 2001-07-13 | Henrik Grubbström (Grubba) | | PMOD_EXPORT struct pike_string *get_program_line(struct program *prog,
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | INT_TYPE *linep);
PMOD_EXPORT char *low_get_program_line_plain (struct program *prog,
INT_TYPE *linep,
|
90a1ad | 2003-03-29 | Martin Stjernholm | | int malloced);
|
7c7a3f | 2002-12-01 | Martin Stjernholm | | PMOD_EXPORT struct pike_string *low_get_line(PIKE_OPCODE_T *pc,
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | struct program *prog,
INT_TYPE *linep);
|
90a1ad | 2003-03-29 | Martin Stjernholm | | PMOD_EXPORT char *low_get_line_plain (PIKE_OPCODE_T *pc, struct program *prog,
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | INT_TYPE *linep, int malloced);
|
50edc8 | 2001-07-13 | Henrik Grubbström (Grubba) | | PMOD_EXPORT struct pike_string *get_line(PIKE_OPCODE_T *pc,
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | struct program *prog,
INT_TYPE *linep);
|
414596 | 2003-01-31 | Martin Stjernholm | | PMOD_EXPORT struct pike_string *low_get_function_line (struct object *o,
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | int fun,
INT_TYPE *linep);
|
4266ce | 2008-05-31 | Henrik Grubbström (Grubba) | | PMOD_EXPORT struct pike_string *get_identifier_line(struct program *p,
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | int fun,
INT_TYPE *linep);
|
94d66b | 2008-05-24 | Henrik Grubbström (Grubba) | | PMOD_EXPORT void va_yyreport(int severity_level,
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | struct pike_string *file, INT_TYPE line,
|
94d66b | 2008-05-24 | Henrik Grubbström (Grubba) | | struct pike_string *system, INT32 args,
const char *fmt, va_list vargs);
PMOD_EXPORT void low_yyreport(int severity_level,
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | struct pike_string *file, INT_TYPE line,
|
94d66b | 2008-05-24 | Henrik Grubbström (Grubba) | | struct pike_string *system,
INT32 args, const char *fmt, ...);
PMOD_EXPORT void yyreport(int severity_level, struct pike_string *system,
INT32 args, const char *fmt, ...);
PMOD_EXPORT void yywarning(char *fmt, ...);
|
e68c78 | 2006-07-05 | Martin Stjernholm | | PMOD_EXPORT void my_yyerror(const char *fmt,...);
|
94d66b | 2008-05-24 | Henrik Grubbström (Grubba) | | PMOD_EXPORT void yyerror(const char *s);
void yytype_report(int severity_level,
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | struct pike_string *expect_file, INT_TYPE expect_line,
|
94d66b | 2008-05-24 | Henrik Grubbström (Grubba) | | struct pike_type *expected_t,
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | struct pike_string *got_file, INT_TYPE got_line,
|
94d66b | 2008-05-24 | Henrik Grubbström (Grubba) | | struct pike_type *got_t,
INT32 args, const char *fmt, ...);
void yytype_error(const char *msg, struct pike_type *expected_t,
struct pike_type *got_t, unsigned int flags);
|
4bb5d0 | 2003-11-14 | Martin Stjernholm | | struct pike_string *format_exception_for_error_msg (struct svalue *thrown);
|
ce060e | 2004-06-30 | Martin Nilsson | | void handle_compile_exception (const char *yyerror_fmt, ...);
|
92c73b | 2001-11-08 | Fredrik Hübinette (Hubbe) | | struct supporter_marker;
|
7db316 | 2012-03-08 | Henrik Grubbström (Grubba) | | void count_memory_in_supporter_markers(size_t *num, size_t *size);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | void verify_supporters(void);
|
92c73b | 2001-11-08 | Fredrik Hübinette (Hubbe) | | void init_supporter(struct Supporter *s,
|
c6cf60 | 2001-12-13 | Martin Stjernholm | | supporter_callback *fun,
|
92c73b | 2001-11-08 | Fredrik Hübinette (Hubbe) | | void *data);
int unlink_current_supporter(struct Supporter *c);
|
c6cf60 | 2001-12-13 | Martin Stjernholm | | int call_dependants(struct Supporter *s, int finish);
|
92c73b | 2001-11-08 | Fredrik Hübinette (Hubbe) | | int report_compiler_dependency(struct program *p);
|
eaa4da | 2001-10-04 | Fredrik Hübinette (Hubbe) | | struct compilation;
void run_pass2(struct compilation *c);
|
ef24a8 | 2012-01-12 | Henrik Grubbström (Grubba) | | PMOD_EXPORT void enter_compiler(struct pike_string *filename,
INT_TYPE linenumber);
|
6ed4c8 | 2008-04-15 | Henrik Grubbström (Grubba) | | PMOD_EXPORT void exit_compiler(void);
|
eaa4da | 2001-10-04 | Fredrik Hübinette (Hubbe) | | struct program *compile(struct pike_string *aprog,
struct object *ahandler,
int amajor, int aminor,
struct program *atarget,
struct object *aplaceholder);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | PMOD_EXPORT int pike_add_function2(const char *name, void (*cfun)(INT32),
|
7e877a | 2003-04-02 | Martin Stjernholm | | const char *type, unsigned flags,
unsigned opt_flags);
|
0929a0 | 2002-09-12 | Marcus Comstedt | | PMOD_EXPORT int quick_add_function(const char *name,
|
1ef557 | 2000-08-30 | Henrik Grubbström (Grubba) | | int name_length,
void (*cfun)(INT32),
|
0929a0 | 2002-09-12 | Marcus Comstedt | | const char *type,
|
1ef557 | 2000-08-30 | Henrik Grubbström (Grubba) | | int type_length,
|
7e877a | 2003-04-02 | Martin Stjernholm | | unsigned flags,
unsigned opt_flags);
|
be478c | 1997-08-30 | Henrik Grubbström (Grubba) | | void check_all_programs(void);
|
eaa4da | 2001-10-04 | Fredrik Hübinette (Hubbe) | | void placeholder_index(INT32 args);
|
421801 | 1999-01-31 | Fredrik Hübinette (Hubbe) | | void init_program(void);
|
be478c | 1997-08-30 | Henrik Grubbström (Grubba) | | void cleanup_program(void);
|
d05654 | 2014-06-17 | Henrik Grubbström (Grubba) | | PMOD_EXPORT void visit_program (struct program *p, int action, void *extra);
|
c94c37 | 1996-03-28 | Fredrik Hübinette (Hubbe) | | void gc_mark_program_as_referenced(struct program *p);
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | | void real_gc_cycle_check_program(struct program *p, int weak);
|
e2d9e6 | 2000-06-10 | Martin Stjernholm | | unsigned gc_touch_all_programs(void);
|
be478c | 1997-08-30 | Henrik Grubbström (Grubba) | | void gc_check_all_programs(void);
void gc_mark_all_programs(void);
|
e2d9e6 | 2000-06-10 | Martin Stjernholm | | void gc_cycle_check_all_programs(void);
|
45d87e | 2000-07-18 | Martin Stjernholm | | void gc_zap_ext_weak_refs_in_programs(void);
|
88cf4f | 2003-01-11 | Martin Stjernholm | | size_t gc_free_all_unreferenced_programs(void);
|
421801 | 1999-01-31 | Fredrik Hübinette (Hubbe) | | void push_compiler_frame(int lexical_scope);
|
40a5d9 | 2015-02-07 | Henrik Grubbström (Grubba) | | node *low_pop_local_variables(int level, node *block);
node *pop_local_variables(int level, node *block);
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | void pop_compiler_frame(void);
|
e129c3 | 2014-05-26 | Per Hedbor | | PMOD_EXPORT void *get_inherit_storage(struct object *o, int inherit);
|
c7de53 | 2008-06-02 | Martin Stjernholm | | PMOD_EXPORT ptrdiff_t low_get_storage(struct program *o, struct program *p);
|
e129c3 | 2014-05-26 | Per Hedbor | | PMOD_EXPORT void *get_storage(struct object *o, struct program *p);
|
22f300 | 2013-10-05 | Henrik Grubbström (Grubba) | | PMOD_EXPORT struct program *low_program_from_function(struct object *o, INT32 i);
|
3cd748 | 2001-04-28 | Martin Stjernholm | | PMOD_EXPORT struct program *program_from_function(const struct svalue *f);
|
fe46a5 | 2014-02-26 | Henrik Grubbström (Grubba) | | PMOD_EXPORT struct program *program_from_type(const struct pike_type *t);
|
ae62c0 | 2012-10-27 | Henrik Grubbström (Grubba) | | PMOD_EXPORT struct program *low_program_from_svalue(const struct svalue *s,
struct object **parent_obj,
int *parent_id);
|
3cd748 | 2001-04-28 | Martin Stjernholm | | PMOD_EXPORT struct program *program_from_svalue(const struct svalue *s);
|
b1f4eb | 1998-01-13 | Fredrik Hübinette (Hubbe) | | struct find_child_cache_s;
int find_child(struct program *parent, struct program *child);
|
0ee27b | 1998-04-14 | Fredrik Hübinette (Hubbe) | | struct implements_cache_s;
|
d6896c | 2000-12-16 | Marcus Comstedt | | PMOD_EXPORT int implements(struct program *a, struct program *b);
PMOD_EXPORT int is_compatible(struct program *a, struct program *b);
|
94d66b | 2008-05-24 | Henrik Grubbström (Grubba) | | void yyexplain_not_compatible(int severity_level,
struct program *a, struct program *b);
void yyexplain_not_implements(int severity_level,
struct program *a, struct program *b);
|
4d404a | 2013-02-19 | Henrik Grubbström (Grubba) | | void string_builder_explain_not_compatible(struct string_builder *s,
struct program *a,
struct program *b);
void string_builder_explain_not_implements(struct string_builder *s,
struct program *a,
struct program *b);
|
13e2ba | 2014-04-26 | Henrik Grubbström (Grubba) | | PMOD_EXPORT void *parent_storage(int depth, struct program *expected);
|
e31066 | 2014-06-02 | Henrik Grubbström (Grubba) | | PMOD_EXPORT void *get_inherited_storage(int inh, struct program *expected);
|
ac8715 | 2000-09-25 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT void change_compiler_compatibility(int major, int minor);
|
44d4dd | 2008-06-28 | Martin Stjernholm | | void make_area_executable (char *start, size_t len);
|
f82226 | 2001-07-16 | Fredrik Hübinette (Hubbe) | | void make_program_executable(struct program *p);
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
e993fe | 2015-04-01 | Henrik Grubbström (Grubba) | | static INLINE int PIKE_UNUSED_ATTRIBUTE FIND_LFUN(struct program * p, int lfun) {
|
900bf9 | 2014-02-25 | Per Hedbor | | #ifdef PIKE_DEBUG
|
0147f8 | 2014-01-16 | Arne Goedeke | | dmalloc_touch(struct program*, p);
|
900bf9 | 2014-02-25 | Per Hedbor | | if (lfun < 0) return find_lfun_fatal(p, lfun);
#endif
if (p->flags & PROGRAM_FIXED && lfun < NUM_LFUNS) return p->lfuns[lfun];
|
0147f8 | 2014-01-16 | Arne Goedeke | | return low_find_lfun(p, lfun);
}
|
f82226 | 2001-07-16 | Fredrik Hübinette (Hubbe) | | #ifndef PIKE_USE_MACHINE_CODE
#define make_program_executable(X)
#endif
|
1ef557 | 2000-08-30 | Henrik Grubbström (Grubba) | | #define ADD_FUNCTION(NAME, FUNC, TYPE, FLAGS) \
quick_add_function(NAME, CONSTANT_STRLEN(NAME), FUNC, TYPE,\
CONSTANT_STRLEN(TYPE), FLAGS, \
OPT_SIDE_EFFECT|OPT_EXTERNAL_DEPEND)
|
45ee5d | 1999-02-10 | Fredrik Hübinette (Hubbe) | |
|
1ef557 | 2000-08-30 | Henrik Grubbström (Grubba) | | #define ADD_PROTOTYPE(NAME, TYPE, FLAGS) \
|
106f59 | 2000-08-31 | Henrik Grubbström (Grubba) | | ADD_FUNCTION(NAME, 0, TYPE, FLAGS)
#define ADD_FUNCTION2(NAME, FUNC, TYPE, FLAGS, OPT_FLAGS) \
quick_add_function(NAME, CONSTANT_STRLEN(NAME), FUNC, TYPE,\
CONSTANT_STRLEN(TYPE), FLAGS, OPT_FLAGS)
#define ADD_PROTOTYPE2(NAME, TYPE, FLAGS, OPT_FLAGS) \
ADD_FUNCTION2(NAME, 0, TYPE, FLAGS, OPT_FLAGS)
|
f0dcda | 2000-03-13 | Henrik Grubbström (Grubba) | |
|
106f59 | 2000-08-31 | Henrik Grubbström (Grubba) | | #define ADD_INT_CONSTANT(NAME, CONST, FLAGS) \
quick_add_integer_constant(NAME, CONSTANT_STRLEN(NAME), CONST, FLAGS)
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
e6f913 | 2003-11-07 | Martin Stjernholm | | #define ADD_FLOAT_CONSTANT(NAME, CONST, FLAGS) \
quick_add_float_constant(NAME, CONSTANT_STRLEN(NAME), CONST, FLAGS)
|
106f59 | 2000-08-31 | Henrik Grubbström (Grubba) | | #define PIKE_MAP_VARIABLE(NAME, OFFSET, TYPE, RTTYPE, FLAGS) \
quick_map_variable(NAME, CONSTANT_STRLEN(NAME), OFFSET, \
TYPE, CONSTANT_STRLEN(TYPE), RTTYPE, FLAGS)
|
e2d9e6 | 2000-06-10 | Martin Stjernholm | |
|
2872a2 | 2005-01-20 | Martin Nilsson | | #define MAP_VARIABLE(NAME, TYPE, FLAGS, OFFSET, RTYPE) \
PIKE_MAP_VARIABLE(NAME, OFFSET, TYPE, RTYPE, FLAGS)
|
1ef557 | 2000-08-30 | Henrik Grubbström (Grubba) | | #define ADD_FUNCTION_DTYPE(NAME,FUN,DTYPE,FLAGS) do { \
DTYPE_START; \
{DTYPE} \
{ \
struct pike_string *_t; \
DTYPE_END(_t); \
quick_add_function(NAME, CONSTANT_STRLEN(NAME), FUN, \
_t->str, _t->len, FLAGS, \
OPT_SIDE_EFFECT|OPT_EXTERNAL_DEPEND); \
free_string(_t); \
} \
|
91aab4 | 1999-12-13 | Martin Stjernholm | | } while (0)
|
1ef557 | 2000-08-30 | Henrik Grubbström (Grubba) | | #define pike_add_function(NAME, CFUN, TYPE, FLAGS) \
pike_add_function2(NAME, CFUN, TYPE, FLAGS, \
OPT_SIDE_EFFECT|OPT_EXTERNAL_DEPEND)
|
0542ef | 1999-11-17 | Fredrik Hübinette (Hubbe) | | #ifndef NO_PIKE_SHORTHAND
#define add_function pike_add_function
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #endif
|
3c0c28 | 1998-01-26 | Fredrik Hübinette (Hubbe) | |
|
9036e8 | 2001-08-16 | Martin Stjernholm | | #define ADD_INHERIT(PROGRAM, FLAGS) \
low_inherit((PROGRAM), 0, 0, 0, (FLAGS), 0)
|
852415 | 1999-12-14 | Fredrik Hübinette (Hubbe) | | #define START_NEW_PROGRAM_ID(ID) do { \
|
1ef557 | 2000-08-30 | Henrik Grubbström (Grubba) | | start_new_program(); \
Pike_compiler->new_program->id=PIKE_CONCAT3(PROG_,ID,_ID); \
}while(0)
|
852415 | 1999-12-14 | Fredrik Hübinette (Hubbe) | |
|
3c0c28 | 1998-01-26 | Fredrik Hübinette (Hubbe) | | #ifdef DEBUG_MALLOC
|
d00c50 | 1999-03-11 | Henrik Grubbström (Grubba) | | #define end_program() ((struct program *)debug_malloc_pass(debug_end_program()))
|
bad516 | 2000-06-23 | Fredrik Hübinette (Hubbe) | | #define end_class(NAME, FLAGS) (debug_malloc_touch(Pike_compiler->new_program), debug_end_class(NAME, CONSTANT_STRLEN(NAME), FLAGS))
|
3c0c28 | 1998-01-26 | Fredrik Hübinette (Hubbe) | | #else
|
45ee5d | 1999-02-10 | Fredrik Hübinette (Hubbe) | | #define end_class(NAME,FLAGS) debug_end_class(NAME, CONSTANT_STRLEN(NAME), FLAGS)
|
3c0c28 | 1998-01-26 | Fredrik Hübinette (Hubbe) | | #define end_program debug_end_program
#endif
|
bcd574 | 1999-03-17 | Fredrik Hübinette (Hubbe) | |
#define start_new_program() debug_start_new_program(__LINE__,__FILE__)
|
852415 | 1999-12-14 | Fredrik Hübinette (Hubbe) | |
|
7c36d5 | 2014-06-17 | Henrik Grubbström (Grubba) | | #define visit_program_ref(P, REF_TYPE, EXTRA) \
|
5e8344 | 2008-05-11 | Martin Stjernholm | | visit_ref (pass_program (P), (REF_TYPE), \
|
7c36d5 | 2014-06-17 | Henrik Grubbström (Grubba) | | (visit_thing_fn *) &visit_program, (EXTRA))
|
45d87e | 2000-07-18 | Martin Stjernholm | | #define gc_cycle_check_program(X, WEAK) \
gc_cycle_enqueue((gc_cycle_check_cb *) real_gc_cycle_check_program, (X), (WEAK))
|
e2d9e6 | 2000-06-10 | Martin Stjernholm | |
|
bad516 | 2000-06-23 | Fredrik Hübinette (Hubbe) | |
#define Pike_new_program Pike_compiler->new_program
|
e2d9e6 | 2000-06-10 | Martin Stjernholm | |
|
4f9158 | 2001-01-10 | Martin Stjernholm | |
|
ac8715 | 2000-09-25 | Fredrik Hübinette (Hubbe) | | #define TEST_COMPAT(MAJOR,MINOR) \
(Pike_compiler->compat_major < (MAJOR) || \
(Pike_compiler->compat_major == (MAJOR) && \
Pike_compiler->compat_minor <= (MINOR)))
|
e2d9e6 | 2000-06-10 | Martin Stjernholm | | #endif /* PROGRAM_H */
|
1ef557 | 2000-08-30 | Henrik Grubbström (Grubba) | |
#ifndef LAS_H
#include "las.h"
#endif /* !LAS_H */
|