ruby-internal 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +204 -6
- data/ext/cached/ruby-1.6.8/internal/binding/block.h +35 -0
- data/ext/cached/ruby-1.6.8/internal/method/method.h +19 -0
- data/ext/cached/ruby-1.6.8/internal/module/classpath.c +3 -0
- data/ext/cached/ruby-1.6.8/internal/module/classpath.h +8 -0
- data/ext/cached/ruby-1.6.8/internal/node/block.h +35 -0
- data/ext/cached/ruby-1.6.8/internal/node/global_entry.h +15 -0
- data/ext/cached/ruby-1.6.8/internal/node/node_type_descrip.c +149 -0
- data/ext/cached/ruby-1.6.8/internal/node/nodeinfo.c +5582 -0
- data/ext/cached/ruby-1.6.8/internal/node/nodeinfo.h +69 -0
- data/ext/cached/ruby-1.6.8/internal/proc/block.h +35 -0
- data/ext/cached/ruby-1.6.8/internal/tag/tag.h +15 -0
- data/ext/cached/ruby-1.6.8/internal/vm/instruction/insns_info.c +39 -0
- data/ext/cached/ruby-1.6.8/internal/vm/instruction/insns_info.h +21 -0
- data/ext/cached/ruby-1.6.8/internal/vm/iseq/insns_info.inc +12 -0
- data/ext/cached/ruby-1.6.8/internal/vm/iseq/iseq_load.inc +9 -0
- data/ext/cached/ruby-1.8.0/internal/node/node_type_descrip.c +91 -91
- data/ext/cached/ruby-1.8.0/internal/node/nodeinfo.c +1909 -1909
- data/ext/cached/ruby-1.8.0/internal/vm/iseq/iseq_load.inc +9 -0
- data/ext/cached/ruby-1.8.1/internal/node/node_type_descrip.c +90 -90
- data/ext/cached/ruby-1.8.1/internal/node/nodeinfo.c +1946 -1946
- data/ext/cached/ruby-1.8.1/internal/vm/iseq/iseq_load.inc +9 -0
- data/ext/cached/ruby-1.8.2/internal/node/node_type_descrip.c +90 -90
- data/ext/cached/ruby-1.8.2/internal/node/nodeinfo.c +1946 -1946
- data/ext/cached/ruby-1.8.2/internal/vm/iseq/iseq_load.inc +9 -0
- data/ext/cached/ruby-1.8.3/internal/node/node_type_descrip.c +90 -90
- data/ext/cached/ruby-1.8.3/internal/node/nodeinfo.c +1946 -1946
- data/ext/cached/ruby-1.8.3/internal/vm/iseq/iseq_load.inc +9 -0
- data/ext/cached/ruby-1.8.4/internal/node/node_type_descrip.c +90 -90
- data/ext/cached/ruby-1.8.4/internal/node/nodeinfo.c +1946 -1946
- data/ext/cached/ruby-1.8.4/internal/vm/iseq/iseq_load.inc +9 -0
- data/ext/cached/ruby-1.8.5/internal/node/node_type_descrip.c +90 -90
- data/ext/cached/ruby-1.8.5/internal/node/nodeinfo.c +1909 -1909
- data/ext/cached/ruby-1.8.5/internal/vm/iseq/iseq_load.inc +9 -0
- data/ext/cached/ruby-1.8.6/internal/node/node_type_descrip.c +90 -90
- data/ext/cached/ruby-1.8.6/internal/node/nodeinfo.c +1909 -1909
- data/ext/cached/ruby-1.8.6/internal/vm/iseq/iseq_load.inc +9 -0
- data/ext/cached/ruby-1.8.7/internal/node/node_type_descrip.c +90 -90
- data/ext/cached/ruby-1.8.7/internal/node/nodeinfo.c +1909 -1909
- data/ext/cached/ruby-1.8.7/internal/vm/iseq/iseq_load.inc +9 -0
- data/ext/cached/ruby-1.9.0/internal/node/node_type_descrip.c +85 -85
- data/ext/cached/ruby-1.9.0/internal/node/nodeinfo.c +1800 -1800
- data/ext/cached/ruby-1.9.0/internal/vm/iseq/iseq_load.inc +13 -0
- data/ext/cached/ruby-1.9.0/internal/yarv-headers/transdb.h +51 -51
- data/ext/cached/ruby-1.9.1/internal/node/node_type_descrip.c +85 -85
- data/ext/cached/ruby-1.9.1/internal/node/nodeinfo.c +1800 -1800
- data/ext/cached/ruby-1.9.1/internal/vm/instruction/insns_info.h +1 -2
- data/ext/cached/ruby-1.9.1/internal/vm/iseq/iseq_load.inc +356 -0
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/eval_intern.h +15 -9
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/id.h +45 -66
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/iseq.h +12 -3
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/node.h +2 -2
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/parse.h +23 -138
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/revision.h +1 -1
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/transcode_data.h +9 -2
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/transdb.h +62 -0
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/version.h +17 -23
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/vm_core.h +20 -29
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/vm_exec.h +4 -7
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/vm_insnhelper.h +6 -5
- data/ext/internal/module/cfp.h +13 -0
- data/ext/internal/module/extconf.rb +2 -2
- data/ext/internal/module/module.c +3 -8
- data/ext/internal/node/nodes.rb +2 -1
- data/ext/internal/vm/iseq/iseq.c +2 -3
- data/ext/internal/vm/iseq/iseq_load.inc.rpp +61 -0
- data/ext/internal/yarv-headers/debug.h +36 -0
- data/ext/internal/yarv-headers/dln.h +41 -0
- data/ext/internal/yarv-headers/encdb.h +147 -0
- data/ext/internal/yarv-headers/eval_intern.h +215 -0
- data/ext/internal/yarv-headers/gc.h +75 -0
- data/ext/internal/yarv-headers/id.h +163 -0
- data/ext/internal/yarv-headers/iseq.h +103 -0
- data/ext/internal/yarv-headers/node.h +516 -0
- data/ext/internal/yarv-headers/parse.h +188 -0
- data/ext/internal/yarv-headers/regenc.h +207 -0
- data/ext/internal/yarv-headers/regint.h +842 -0
- data/ext/internal/yarv-headers/regparse.h +351 -0
- data/ext/internal/yarv-headers/revision.h +1 -0
- data/ext/internal/yarv-headers/thread_pthread.h +24 -0
- data/ext/internal/yarv-headers/thread_win32.h +33 -0
- data/ext/internal/yarv-headers/transcode_data.h +106 -0
- data/ext/internal/yarv-headers/transdb.h +147 -0
- data/ext/internal/yarv-headers/version.h +54 -0
- data/ext/internal/yarv-headers/vm_core.h +646 -0
- data/ext/internal/yarv-headers/vm_exec.h +184 -0
- data/ext/internal/yarv-headers/vm_insnhelper.h +195 -0
- data/ext/internal/yarv-headers/vm_opts.h +51 -0
- data/publish_rdoc.rb +4 -0
- metadata +52 -2
@@ -0,0 +1,163 @@
|
|
1
|
+
/* DO NOT EDIT THIS FILE DIRECTLY */
|
2
|
+
/**********************************************************************
|
3
|
+
|
4
|
+
id.h -
|
5
|
+
|
6
|
+
$Author: nobu $
|
7
|
+
created at: Sun Oct 19 21:12:51 2008
|
8
|
+
|
9
|
+
Copyright (C) 2007 Koichi Sasada
|
10
|
+
|
11
|
+
**********************************************************************/
|
12
|
+
|
13
|
+
#ifndef RUBY_ID_H
|
14
|
+
#define RUBY_ID_H
|
15
|
+
|
16
|
+
#define ID_SCOPE_SHIFT 3
|
17
|
+
#define ID_SCOPE_MASK 0x07
|
18
|
+
#define ID_LOCAL 0x00
|
19
|
+
#define ID_INSTANCE 0x01
|
20
|
+
#define ID_GLOBAL 0x03
|
21
|
+
#define ID_ATTRSET 0x04
|
22
|
+
#define ID_CONST 0x05
|
23
|
+
#define ID_CLASS 0x06
|
24
|
+
#define ID_JUNK 0x07
|
25
|
+
#define ID_INTERNAL ID_JUNK
|
26
|
+
|
27
|
+
#ifdef USE_PARSE_H
|
28
|
+
#include "parse.h"
|
29
|
+
#endif
|
30
|
+
|
31
|
+
#define symIFUNC ID2SYM(idIFUNC)
|
32
|
+
#define symCFUNC ID2SYM(idCFUNC)
|
33
|
+
|
34
|
+
#if !defined tLAST_TOKEN && defined YYTOKENTYPE
|
35
|
+
#define tLAST_TOKEN tLAST_TOKEN
|
36
|
+
#endif
|
37
|
+
|
38
|
+
enum ruby_method_ids {
|
39
|
+
#ifndef tLAST_TOKEN
|
40
|
+
tUPLUS = 321,
|
41
|
+
tUMINUS = 322,
|
42
|
+
tPOW = 323,
|
43
|
+
tCMP = 324,
|
44
|
+
tEQ = 325,
|
45
|
+
tEQQ = 326,
|
46
|
+
tNEQ = 327,
|
47
|
+
tGEQ = 328,
|
48
|
+
tLEQ = 329,
|
49
|
+
tANDOP = 330,
|
50
|
+
tOROP = 331,
|
51
|
+
tMATCH = 332,
|
52
|
+
tNMATCH = 333,
|
53
|
+
tDOT2 = 334,
|
54
|
+
tDOT3 = 335,
|
55
|
+
tAREF = 336,
|
56
|
+
tASET = 337,
|
57
|
+
tLSHFT = 338,
|
58
|
+
tRSHFT = 339,
|
59
|
+
tLAMBDA = 352,
|
60
|
+
idNULL = 365,
|
61
|
+
idRespond_to = 366,
|
62
|
+
idIFUNC = 367,
|
63
|
+
idCFUNC = 368,
|
64
|
+
idThrowState = 369,
|
65
|
+
id_core_set_method_alias = 370,
|
66
|
+
id_core_set_variable_alias = 371,
|
67
|
+
id_core_undef_method = 372,
|
68
|
+
id_core_define_method = 373,
|
69
|
+
id_core_define_singleton_method = 374,
|
70
|
+
id_core_set_postexe = 375,
|
71
|
+
tLAST_TOKEN = 376,
|
72
|
+
#endif
|
73
|
+
idPLUS = '+',
|
74
|
+
idMINUS = '-',
|
75
|
+
idMULT = '*',
|
76
|
+
idDIV = '/',
|
77
|
+
idMOD = '%',
|
78
|
+
idLT = '<',
|
79
|
+
idLTLT = tLSHFT,
|
80
|
+
idLE = tLEQ,
|
81
|
+
idGT = '>',
|
82
|
+
idGE = tGEQ,
|
83
|
+
idEq = tEQ,
|
84
|
+
idEqq = tEQQ,
|
85
|
+
idNeq = tNEQ,
|
86
|
+
idNot = '!',
|
87
|
+
idBackquote = '`',
|
88
|
+
idEqTilde = tMATCH,
|
89
|
+
idAREF = tAREF,
|
90
|
+
idASET = tASET,
|
91
|
+
idLAST_TOKEN = tLAST_TOKEN >> ID_SCOPE_SHIFT,
|
92
|
+
tIntern,
|
93
|
+
tMethodMissing,
|
94
|
+
tLength,
|
95
|
+
tGets,
|
96
|
+
tSucc,
|
97
|
+
tEach,
|
98
|
+
tLambda,
|
99
|
+
tSend,
|
100
|
+
t__send__,
|
101
|
+
tInitialize,
|
102
|
+
#if SUPPORT_JOKE
|
103
|
+
tBitblt,
|
104
|
+
tAnswer,
|
105
|
+
#endif
|
106
|
+
tLAST_ID,
|
107
|
+
#define TOKEN2ID(n) id##n = ((t##n<<ID_SCOPE_SHIFT)|ID_LOCAL)
|
108
|
+
#if SUPPORT_JOKE
|
109
|
+
TOKEN2ID(Bitblt),
|
110
|
+
TOKEN2ID(Answer),
|
111
|
+
#endif
|
112
|
+
TOKEN2ID(Intern),
|
113
|
+
TOKEN2ID(MethodMissing),
|
114
|
+
TOKEN2ID(Length),
|
115
|
+
TOKEN2ID(Gets),
|
116
|
+
TOKEN2ID(Succ),
|
117
|
+
TOKEN2ID(Each),
|
118
|
+
TOKEN2ID(Lambda),
|
119
|
+
TOKEN2ID(Send),
|
120
|
+
TOKEN2ID(__send__),
|
121
|
+
TOKEN2ID(Initialize)
|
122
|
+
};
|
123
|
+
|
124
|
+
#ifdef tLAST_TOKEN
|
125
|
+
struct ruby_method_ids_check {
|
126
|
+
#define ruby_method_id_check_for(name, value) \
|
127
|
+
int checking_for_##name[name == value ? 1 : -1]
|
128
|
+
ruby_method_id_check_for(tUPLUS, 321);
|
129
|
+
ruby_method_id_check_for(tUMINUS, 322);
|
130
|
+
ruby_method_id_check_for(tPOW, 323);
|
131
|
+
ruby_method_id_check_for(tCMP, 324);
|
132
|
+
ruby_method_id_check_for(tEQ, 325);
|
133
|
+
ruby_method_id_check_for(tEQQ, 326);
|
134
|
+
ruby_method_id_check_for(tNEQ, 327);
|
135
|
+
ruby_method_id_check_for(tGEQ, 328);
|
136
|
+
ruby_method_id_check_for(tLEQ, 329);
|
137
|
+
ruby_method_id_check_for(tANDOP, 330);
|
138
|
+
ruby_method_id_check_for(tOROP, 331);
|
139
|
+
ruby_method_id_check_for(tMATCH, 332);
|
140
|
+
ruby_method_id_check_for(tNMATCH, 333);
|
141
|
+
ruby_method_id_check_for(tDOT2, 334);
|
142
|
+
ruby_method_id_check_for(tDOT3, 335);
|
143
|
+
ruby_method_id_check_for(tAREF, 336);
|
144
|
+
ruby_method_id_check_for(tASET, 337);
|
145
|
+
ruby_method_id_check_for(tLSHFT, 338);
|
146
|
+
ruby_method_id_check_for(tRSHFT, 339);
|
147
|
+
ruby_method_id_check_for(tLAMBDA, 352);
|
148
|
+
ruby_method_id_check_for(idNULL, 365);
|
149
|
+
ruby_method_id_check_for(idRespond_to, 366);
|
150
|
+
ruby_method_id_check_for(idIFUNC, 367);
|
151
|
+
ruby_method_id_check_for(idCFUNC, 368);
|
152
|
+
ruby_method_id_check_for(idThrowState, 369);
|
153
|
+
ruby_method_id_check_for(id_core_set_method_alias, 370);
|
154
|
+
ruby_method_id_check_for(id_core_set_variable_alias, 371);
|
155
|
+
ruby_method_id_check_for(id_core_undef_method, 372);
|
156
|
+
ruby_method_id_check_for(id_core_define_method, 373);
|
157
|
+
ruby_method_id_check_for(id_core_define_singleton_method, 374);
|
158
|
+
ruby_method_id_check_for(id_core_set_postexe, 375);
|
159
|
+
ruby_method_id_check_for(tLAST_TOKEN, 376);
|
160
|
+
};
|
161
|
+
#endif
|
162
|
+
|
163
|
+
#endif /* RUBY_ID_H */
|
@@ -0,0 +1,103 @@
|
|
1
|
+
/**********************************************************************
|
2
|
+
|
3
|
+
iseq.h -
|
4
|
+
|
5
|
+
$Author: yugui $
|
6
|
+
created at: 04/01/01 23:36:57 JST
|
7
|
+
|
8
|
+
Copyright (C) 2004-2008 Koichi Sasada
|
9
|
+
|
10
|
+
**********************************************************************/
|
11
|
+
|
12
|
+
#ifndef RUBY_COMPILE_H
|
13
|
+
#define RUBY_COMPILE_H
|
14
|
+
|
15
|
+
/* compile.c */
|
16
|
+
VALUE rb_iseq_compile_node(VALUE self, NODE *node);
|
17
|
+
int rb_iseq_translate_threaded_code(rb_iseq_t *iseq);
|
18
|
+
VALUE rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE locals, VALUE args,
|
19
|
+
VALUE exception, VALUE body);
|
20
|
+
|
21
|
+
/* iseq.c */
|
22
|
+
VALUE ruby_iseq_load(VALUE data, VALUE parent, VALUE opt);
|
23
|
+
struct st_table *ruby_insn_make_insn_table(void);
|
24
|
+
|
25
|
+
#define ISEQ_TYPE_TOP INT2FIX(1)
|
26
|
+
#define ISEQ_TYPE_METHOD INT2FIX(2)
|
27
|
+
#define ISEQ_TYPE_BLOCK INT2FIX(3)
|
28
|
+
#define ISEQ_TYPE_CLASS INT2FIX(4)
|
29
|
+
#define ISEQ_TYPE_RESCUE INT2FIX(5)
|
30
|
+
#define ISEQ_TYPE_ENSURE INT2FIX(6)
|
31
|
+
#define ISEQ_TYPE_EVAL INT2FIX(7)
|
32
|
+
#define ISEQ_TYPE_MAIN INT2FIX(8)
|
33
|
+
#define ISEQ_TYPE_DEFINED_GUARD INT2FIX(9)
|
34
|
+
|
35
|
+
#define CATCH_TYPE_RESCUE INT2FIX(1)
|
36
|
+
#define CATCH_TYPE_ENSURE INT2FIX(2)
|
37
|
+
#define CATCH_TYPE_RETRY INT2FIX(3)
|
38
|
+
#define CATCH_TYPE_BREAK INT2FIX(4)
|
39
|
+
#define CATCH_TYPE_REDO INT2FIX(5)
|
40
|
+
#define CATCH_TYPE_NEXT INT2FIX(6)
|
41
|
+
|
42
|
+
struct iseq_insn_info_entry {
|
43
|
+
unsigned short position;
|
44
|
+
unsigned short line_no;
|
45
|
+
unsigned short sp;
|
46
|
+
};
|
47
|
+
|
48
|
+
struct iseq_catch_table_entry {
|
49
|
+
VALUE type;
|
50
|
+
VALUE iseq;
|
51
|
+
unsigned long start;
|
52
|
+
unsigned long end;
|
53
|
+
unsigned long cont;
|
54
|
+
unsigned long sp;
|
55
|
+
};
|
56
|
+
|
57
|
+
#define INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE (512)
|
58
|
+
|
59
|
+
struct iseq_compile_data_storage {
|
60
|
+
struct iseq_compile_data_storage *next;
|
61
|
+
unsigned long pos;
|
62
|
+
unsigned long size;
|
63
|
+
char *buff;
|
64
|
+
};
|
65
|
+
|
66
|
+
struct iseq_compile_data {
|
67
|
+
/* GC is needed */
|
68
|
+
VALUE err_info;
|
69
|
+
VALUE mark_ary;
|
70
|
+
VALUE catch_table_ary; /* Array */
|
71
|
+
|
72
|
+
/* GC is not needed */
|
73
|
+
struct iseq_label_data *start_label;
|
74
|
+
struct iseq_label_data *end_label;
|
75
|
+
struct iseq_label_data *redo_label;
|
76
|
+
VALUE current_block;
|
77
|
+
VALUE loopval_popped; /* used by NODE_BREAK */
|
78
|
+
VALUE ensure_node;
|
79
|
+
VALUE for_iseq;
|
80
|
+
struct iseq_compile_data_ensure_node_stack *ensure_node_stack;
|
81
|
+
int cached_const;
|
82
|
+
struct iseq_compile_data_storage *storage_head;
|
83
|
+
struct iseq_compile_data_storage *storage_current;
|
84
|
+
int last_line;
|
85
|
+
int flip_cnt;
|
86
|
+
int label_no;
|
87
|
+
int node_level;
|
88
|
+
const rb_compile_option_t *option;
|
89
|
+
};
|
90
|
+
|
91
|
+
/* defined? */
|
92
|
+
#define DEFINED_IVAR INT2FIX(1)
|
93
|
+
#define DEFINED_IVAR2 INT2FIX(2)
|
94
|
+
#define DEFINED_GVAR INT2FIX(3)
|
95
|
+
#define DEFINED_CVAR INT2FIX(4)
|
96
|
+
#define DEFINED_CONST INT2FIX(5)
|
97
|
+
#define DEFINED_METHOD INT2FIX(6)
|
98
|
+
#define DEFINED_YIELD INT2FIX(7)
|
99
|
+
#define DEFINED_REF INT2FIX(8)
|
100
|
+
#define DEFINED_ZSUPER INT2FIX(9)
|
101
|
+
#define DEFINED_FUNC INT2FIX(10)
|
102
|
+
|
103
|
+
#endif /* RUBY_COMPILE_H */
|