debase-ruby_core_source 0.10.17 → 0.10.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/addr2line.h +20 -0
  4. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/builtin.h +121 -0
  5. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/ccan/build_assert/build_assert.h +40 -0
  6. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/ccan/check_type/check_type.h +63 -0
  7. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/ccan/container_of/container_of.h +142 -0
  8. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/ccan/list/list.h +789 -0
  9. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/ccan/str/str.h +17 -0
  10. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/constant.h +55 -0
  11. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/darray.h +179 -0
  12. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/debug_counter.h +468 -0
  13. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/dln.h +31 -0
  14. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/encindex.h +70 -0
  15. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/eval_intern.h +339 -0
  16. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/gc.h +147 -0
  17. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/hrtime.h +227 -0
  18. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/id.h +295 -0
  19. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/id_table.h +36 -0
  20. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/insns.inc +249 -0
  21. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/insns_info.inc +9061 -0
  22. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/array.h +163 -0
  23. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/bignum.h +246 -0
  24. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/bits.h +565 -0
  25. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/class.h +181 -0
  26. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/cmdlineopt.h +61 -0
  27. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/compar.h +49 -0
  28. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/compile.h +35 -0
  29. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/compilers.h +107 -0
  30. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/complex.h +29 -0
  31. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/cont.h +29 -0
  32. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/dir.h +16 -0
  33. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/enc.h +19 -0
  34. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/encoding.h +29 -0
  35. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/enum.h +18 -0
  36. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/enumerator.h +21 -0
  37. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/error.h +191 -0
  38. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/eval.h +32 -0
  39. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/file.h +38 -0
  40. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/fixnum.h +184 -0
  41. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/gc.h +191 -0
  42. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/hash.h +243 -0
  43. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/imemo.h +242 -0
  44. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/inits.h +50 -0
  45. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/io.h +38 -0
  46. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/load.h +18 -0
  47. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/loadpath.h +16 -0
  48. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/math.h +23 -0
  49. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/missing.h +18 -0
  50. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/numeric.h +275 -0
  51. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/object.h +61 -0
  52. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/parse.h +24 -0
  53. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/proc.h +32 -0
  54. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/process.h +137 -0
  55. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/ractor.h +6 -0
  56. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/random.h +16 -0
  57. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/range.h +40 -0
  58. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/rational.h +72 -0
  59. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/re.h +30 -0
  60. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/sanitizers.h +190 -0
  61. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/serial.h +23 -0
  62. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/signal.h +21 -0
  63. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/static_assert.h +16 -0
  64. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/string.h +147 -0
  65. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/struct.h +153 -0
  66. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/symbol.h +42 -0
  67. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/thread.h +55 -0
  68. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/time.h +34 -0
  69. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/transcode.h +20 -0
  70. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/util.h +27 -0
  71. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/variable.h +88 -0
  72. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/vm.h +134 -0
  73. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal/warnings.h +16 -0
  74. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/internal.h +113 -0
  75. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/iseq.h +329 -0
  76. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/known_errors.inc +791 -0
  77. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/method.h +254 -0
  78. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/mjit.h +132 -0
  79. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/mjit_compile_attr.inc +430 -0
  80. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/mjit_compiler.h +58 -0
  81. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/mjit_unit.h +29 -0
  82. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/node.h +511 -0
  83. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/node_name.inc +210 -0
  84. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/opt_sc.inc +109 -0
  85. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/optinsn.inc +128 -0
  86. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/optunifs.inc +43 -0
  87. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/parse.h +215 -0
  88. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/probes_helper.h +44 -0
  89. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/ractor_core.h +343 -0
  90. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/regenc.h +254 -0
  91. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/regint.h +984 -0
  92. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/regparse.h +370 -0
  93. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/revision.h +5 -0
  94. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/ruby_assert.h +14 -0
  95. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/ruby_atomic.h +23 -0
  96. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/shape.h +194 -0
  97. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/siphash.h +48 -0
  98. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/symbol.h +119 -0
  99. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/thread_none.h +20 -0
  100. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/thread_pthread.h +132 -0
  101. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/thread_win32.h +63 -0
  102. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/timev.h +57 -0
  103. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/transcode_data.h +138 -0
  104. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/transient_heap.h +65 -0
  105. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/variable.h +29 -0
  106. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/version.h +65 -0
  107. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/vm.inc +5476 -0
  108. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/vm_call_iseq_optimized.inc +244 -0
  109. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/vm_callinfo.h +550 -0
  110. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/vm_core.h +2137 -0
  111. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/vm_debug.h +122 -0
  112. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/vm_exec.h +197 -0
  113. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/vm_insnhelper.h +266 -0
  114. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/vm_opts.h +73 -0
  115. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/vm_sync.h +137 -0
  116. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/vmtc.inc +243 -0
  117. data/lib/debase/ruby_core_source/ruby-3.2.0-preview3/yjit.h +72 -0
  118. data/lib/debase/ruby_core_source/version.rb +1 -1
  119. metadata +118 -3
@@ -0,0 +1,295 @@
1
+ /* DO NOT EDIT THIS FILE DIRECTLY */
2
+ /**********************************************************************
3
+
4
+ id.h -
5
+
6
+ $Author$
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
+ enum ruby_id_types {
17
+ RUBY_ID_STATIC_SYM = 0x01,
18
+ RUBY_ID_LOCAL = 0x00,
19
+ RUBY_ID_INSTANCE = (0x01<<1),
20
+ RUBY_ID_GLOBAL = (0x03<<1),
21
+ RUBY_ID_ATTRSET = (0x04<<1),
22
+ RUBY_ID_CONST = (0x05<<1),
23
+ RUBY_ID_CLASS = (0x06<<1),
24
+ RUBY_ID_JUNK = (0x07<<1),
25
+ RUBY_ID_INTERNAL = RUBY_ID_JUNK,
26
+ RUBY_ID_SCOPE_SHIFT = 4,
27
+ RUBY_ID_SCOPE_MASK = (~(~0U<<(RUBY_ID_SCOPE_SHIFT-1))<<1)
28
+ };
29
+
30
+ #define ID_STATIC_SYM RUBY_ID_STATIC_SYM
31
+ #define ID_SCOPE_SHIFT RUBY_ID_SCOPE_SHIFT
32
+ #define ID_SCOPE_MASK RUBY_ID_SCOPE_MASK
33
+ #define ID_LOCAL RUBY_ID_LOCAL
34
+ #define ID_INSTANCE RUBY_ID_INSTANCE
35
+ #define ID_GLOBAL RUBY_ID_GLOBAL
36
+ #define ID_ATTRSET RUBY_ID_ATTRSET
37
+ #define ID_CONST RUBY_ID_CONST
38
+ #define ID_CLASS RUBY_ID_CLASS
39
+ #define ID_JUNK RUBY_ID_JUNK
40
+ #define ID_INTERNAL RUBY_ID_INTERNAL
41
+
42
+ #define symIFUNC ID2SYM(idIFUNC)
43
+ #define symCFUNC ID2SYM(idCFUNC)
44
+
45
+ #define RUBY_TOKEN_DOT2 128
46
+ #define RUBY_TOKEN_DOT3 129
47
+ #define RUBY_TOKEN_BDOT2 130
48
+ #define RUBY_TOKEN_BDOT3 131
49
+ #define RUBY_TOKEN_UPLUS 132
50
+ #define RUBY_TOKEN_UMINUS 133
51
+ #define RUBY_TOKEN_POW 134
52
+ #define RUBY_TOKEN_CMP 135
53
+ #define RUBY_TOKEN_LSHFT 136
54
+ #define RUBY_TOKEN_RSHFT 137
55
+ #define RUBY_TOKEN_LEQ 138
56
+ #define RUBY_TOKEN_GEQ 139
57
+ #define RUBY_TOKEN_EQ 140
58
+ #define RUBY_TOKEN_EQQ 141
59
+ #define RUBY_TOKEN_NEQ 142
60
+ #define RUBY_TOKEN_MATCH 143
61
+ #define RUBY_TOKEN_NMATCH 144
62
+ #define RUBY_TOKEN_AREF 145
63
+ #define RUBY_TOKEN_ASET 146
64
+ #define RUBY_TOKEN_COLON2 147
65
+ #define RUBY_TOKEN_ANDOP 148
66
+ #define RUBY_TOKEN_OROP 149
67
+ #define RUBY_TOKEN_ANDDOT 150
68
+ #define RUBY_TOKEN(t) RUBY_TOKEN_##t
69
+
70
+ #define RUBY_TOKEN2ID_TYPE(tok, type) ((tok<<RUBY_ID_SCOPE_SHIFT)|type|RUBY_ID_STATIC_SYM)
71
+ #define TOKEN2LOCALID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_LOCAL)
72
+ #define TOKEN2INSTANCEID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_INSTANCE)
73
+ #define TOKEN2GLOBALID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_GLOBAL)
74
+ #define TOKEN2CONSTID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_CONST)
75
+ #define TOKEN2CLASSID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_CLASS)
76
+ #define TOKEN2ATTRSETID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_ATTRSET)
77
+
78
+ enum ruby_method_ids {
79
+ idDot2 = RUBY_TOKEN(DOT2),
80
+ idDot3 = RUBY_TOKEN(DOT3),
81
+ idUPlus = RUBY_TOKEN(UPLUS),
82
+ idUMinus = RUBY_TOKEN(UMINUS),
83
+ idPow = RUBY_TOKEN(POW),
84
+ idCmp = RUBY_TOKEN(CMP),
85
+ idPLUS = '+',
86
+ idMINUS = '-',
87
+ idMULT = '*',
88
+ idDIV = '/',
89
+ idMOD = '%',
90
+ idLTLT = RUBY_TOKEN(LSHFT),
91
+ idGTGT = RUBY_TOKEN(RSHFT),
92
+ idLT = '<',
93
+ idLE = RUBY_TOKEN(LEQ),
94
+ idGT = '>',
95
+ idGE = RUBY_TOKEN(GEQ),
96
+ idEq = RUBY_TOKEN(EQ),
97
+ idEqq = RUBY_TOKEN(EQQ),
98
+ idNeq = RUBY_TOKEN(NEQ),
99
+ idNot = '!',
100
+ idAnd = '&',
101
+ idOr = '|',
102
+ idBackquote = '`',
103
+ idEqTilde = RUBY_TOKEN(MATCH),
104
+ idNeqTilde = RUBY_TOKEN(NMATCH),
105
+ idAREF = RUBY_TOKEN(AREF),
106
+ idASET = RUBY_TOKEN(ASET),
107
+ idCOLON2 = RUBY_TOKEN(COLON2),
108
+ idANDOP = RUBY_TOKEN(ANDOP),
109
+ idOROP = RUBY_TOKEN(OROP),
110
+ idANDDOT = RUBY_TOKEN(ANDDOT),
111
+ tPRESERVED_ID_BEGIN = 150,
112
+ idNilP,
113
+ idNULL,
114
+ idEmptyP,
115
+ idEqlP,
116
+ idRespond_to,
117
+ idRespond_to_missing,
118
+ idIFUNC,
119
+ idCFUNC,
120
+ id_core_set_method_alias,
121
+ id_core_set_variable_alias,
122
+ id_core_undef_method,
123
+ id_core_define_method,
124
+ id_core_define_singleton_method,
125
+ id_core_set_postexe,
126
+ id_core_hash_merge_ptr,
127
+ id_core_hash_merge_kwd,
128
+ id_core_raise,
129
+ id_core_sprintf,
130
+ id_debug_created_info,
131
+ tPRESERVED_ID_END,
132
+ tTOKEN_LOCAL_BEGIN = tPRESERVED_ID_END-1,
133
+ tMax,
134
+ tMin,
135
+ tFreeze,
136
+ tInspect,
137
+ tIntern,
138
+ tObject_id,
139
+ tConst_added,
140
+ tConst_missing,
141
+ tMethodMissing,
142
+ tMethod_added,
143
+ tSingleton_method_added,
144
+ tMethod_removed,
145
+ tSingleton_method_removed,
146
+ tMethod_undefined,
147
+ tSingleton_method_undefined,
148
+ tLength,
149
+ tSize,
150
+ tGets,
151
+ tSucc,
152
+ tEach,
153
+ tProc,
154
+ tLambda,
155
+ tSend,
156
+ t__send__,
157
+ t__attached__,
158
+ t__recursive_key__,
159
+ tInitialize,
160
+ tInitialize_copy,
161
+ tInitialize_clone,
162
+ tInitialize_dup,
163
+ tTo_int,
164
+ tTo_ary,
165
+ tTo_str,
166
+ tTo_sym,
167
+ tTo_hash,
168
+ tTo_proc,
169
+ tTo_io,
170
+ tTo_a,
171
+ tTo_s,
172
+ tTo_i,
173
+ tTo_f,
174
+ tTo_r,
175
+ tBt,
176
+ tBt_locations,
177
+ tCall,
178
+ tMesg,
179
+ tException,
180
+ tLocals,
181
+ tNOT,
182
+ tAND,
183
+ tOR,
184
+ tDiv,
185
+ tDivmod,
186
+ tFdiv,
187
+ tQuo,
188
+ tName,
189
+ tNil,
190
+ tUScore,
191
+ tNUMPARAM_1,
192
+ tNUMPARAM_2,
193
+ tNUMPARAM_3,
194
+ tNUMPARAM_4,
195
+ tNUMPARAM_5,
196
+ tNUMPARAM_6,
197
+ tNUMPARAM_7,
198
+ tNUMPARAM_8,
199
+ tNUMPARAM_9,
200
+ tTOKEN_LOCAL_END,
201
+ tTOKEN_INSTANCE_BEGIN = tTOKEN_LOCAL_END-1,
202
+ tTOKEN_INSTANCE_END,
203
+ tTOKEN_GLOBAL_BEGIN = tTOKEN_INSTANCE_END-1,
204
+ tLASTLINE,
205
+ tBACKREF,
206
+ tERROR_INFO,
207
+ tTOKEN_GLOBAL_END,
208
+ tTOKEN_CONST_BEGIN = tTOKEN_GLOBAL_END-1,
209
+ tTOKEN_CONST_END,
210
+ tTOKEN_CLASS_BEGIN = tTOKEN_CONST_END-1,
211
+ tTOKEN_CLASS_END,
212
+ tTOKEN_ATTRSET_BEGIN = tTOKEN_CLASS_END-1,
213
+ tTOKEN_ATTRSET_END,
214
+ tNEXT_ID = tTOKEN_ATTRSET_END,
215
+ #define DEFINE_LOCALID_FROM_TOKEN(n) id##n = TOKEN2LOCALID(t##n)
216
+ DEFINE_LOCALID_FROM_TOKEN(Max),
217
+ DEFINE_LOCALID_FROM_TOKEN(Min),
218
+ DEFINE_LOCALID_FROM_TOKEN(Freeze),
219
+ DEFINE_LOCALID_FROM_TOKEN(Inspect),
220
+ DEFINE_LOCALID_FROM_TOKEN(Intern),
221
+ DEFINE_LOCALID_FROM_TOKEN(Object_id),
222
+ DEFINE_LOCALID_FROM_TOKEN(Const_added),
223
+ DEFINE_LOCALID_FROM_TOKEN(Const_missing),
224
+ DEFINE_LOCALID_FROM_TOKEN(MethodMissing),
225
+ DEFINE_LOCALID_FROM_TOKEN(Method_added),
226
+ DEFINE_LOCALID_FROM_TOKEN(Singleton_method_added),
227
+ DEFINE_LOCALID_FROM_TOKEN(Method_removed),
228
+ DEFINE_LOCALID_FROM_TOKEN(Singleton_method_removed),
229
+ DEFINE_LOCALID_FROM_TOKEN(Method_undefined),
230
+ DEFINE_LOCALID_FROM_TOKEN(Singleton_method_undefined),
231
+ DEFINE_LOCALID_FROM_TOKEN(Length),
232
+ DEFINE_LOCALID_FROM_TOKEN(Size),
233
+ DEFINE_LOCALID_FROM_TOKEN(Gets),
234
+ DEFINE_LOCALID_FROM_TOKEN(Succ),
235
+ DEFINE_LOCALID_FROM_TOKEN(Each),
236
+ DEFINE_LOCALID_FROM_TOKEN(Proc),
237
+ DEFINE_LOCALID_FROM_TOKEN(Lambda),
238
+ DEFINE_LOCALID_FROM_TOKEN(Send),
239
+ DEFINE_LOCALID_FROM_TOKEN(__send__),
240
+ DEFINE_LOCALID_FROM_TOKEN(__attached__),
241
+ DEFINE_LOCALID_FROM_TOKEN(__recursive_key__),
242
+ DEFINE_LOCALID_FROM_TOKEN(Initialize),
243
+ DEFINE_LOCALID_FROM_TOKEN(Initialize_copy),
244
+ DEFINE_LOCALID_FROM_TOKEN(Initialize_clone),
245
+ DEFINE_LOCALID_FROM_TOKEN(Initialize_dup),
246
+ DEFINE_LOCALID_FROM_TOKEN(To_int),
247
+ DEFINE_LOCALID_FROM_TOKEN(To_ary),
248
+ DEFINE_LOCALID_FROM_TOKEN(To_str),
249
+ DEFINE_LOCALID_FROM_TOKEN(To_sym),
250
+ DEFINE_LOCALID_FROM_TOKEN(To_hash),
251
+ DEFINE_LOCALID_FROM_TOKEN(To_proc),
252
+ DEFINE_LOCALID_FROM_TOKEN(To_io),
253
+ DEFINE_LOCALID_FROM_TOKEN(To_a),
254
+ DEFINE_LOCALID_FROM_TOKEN(To_s),
255
+ DEFINE_LOCALID_FROM_TOKEN(To_i),
256
+ DEFINE_LOCALID_FROM_TOKEN(To_f),
257
+ DEFINE_LOCALID_FROM_TOKEN(To_r),
258
+ DEFINE_LOCALID_FROM_TOKEN(Bt),
259
+ DEFINE_LOCALID_FROM_TOKEN(Bt_locations),
260
+ DEFINE_LOCALID_FROM_TOKEN(Call),
261
+ DEFINE_LOCALID_FROM_TOKEN(Mesg),
262
+ DEFINE_LOCALID_FROM_TOKEN(Exception),
263
+ DEFINE_LOCALID_FROM_TOKEN(Locals),
264
+ DEFINE_LOCALID_FROM_TOKEN(NOT),
265
+ DEFINE_LOCALID_FROM_TOKEN(AND),
266
+ DEFINE_LOCALID_FROM_TOKEN(OR),
267
+ DEFINE_LOCALID_FROM_TOKEN(Div),
268
+ DEFINE_LOCALID_FROM_TOKEN(Divmod),
269
+ DEFINE_LOCALID_FROM_TOKEN(Fdiv),
270
+ DEFINE_LOCALID_FROM_TOKEN(Quo),
271
+ DEFINE_LOCALID_FROM_TOKEN(Name),
272
+ DEFINE_LOCALID_FROM_TOKEN(Nil),
273
+ DEFINE_LOCALID_FROM_TOKEN(UScore),
274
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_1),
275
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_2),
276
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_3),
277
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_4),
278
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_5),
279
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_6),
280
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_7),
281
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_8),
282
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_9),
283
+ #define DEFINE_INSTANCEID_FROM_TOKEN(n) id##n = TOKEN2INSTANCEID(t##n)
284
+ #define DEFINE_GLOBALID_FROM_TOKEN(n) id##n = TOKEN2GLOBALID(t##n)
285
+ DEFINE_GLOBALID_FROM_TOKEN(LASTLINE),
286
+ DEFINE_GLOBALID_FROM_TOKEN(BACKREF),
287
+ DEFINE_GLOBALID_FROM_TOKEN(ERROR_INFO),
288
+ #define DEFINE_CONSTID_FROM_TOKEN(n) id##n = TOKEN2CONSTID(t##n)
289
+ #define DEFINE_CLASSID_FROM_TOKEN(n) id##n = TOKEN2CLASSID(t##n)
290
+ #define DEFINE_ATTRSETID_FROM_TOKEN(n) id##n = TOKEN2ATTRSETID(t##n)
291
+ tLAST_OP_ID = tPRESERVED_ID_END-1,
292
+ idLAST_OP_ID = tLAST_OP_ID >> ID_SCOPE_SHIFT
293
+ };
294
+
295
+ #endif /* RUBY_ID_H */
@@ -0,0 +1,36 @@
1
+ #ifndef RUBY_ID_TABLE_H
2
+ #define RUBY_ID_TABLE_H 1
3
+ #include "ruby/internal/config.h"
4
+ #include <stddef.h>
5
+ #include "ruby/ruby.h"
6
+
7
+ struct rb_id_table;
8
+
9
+ /* compatible with ST_* */
10
+ enum rb_id_table_iterator_result {
11
+ ID_TABLE_CONTINUE = ST_CONTINUE,
12
+ ID_TABLE_STOP = ST_STOP,
13
+ ID_TABLE_DELETE = ST_DELETE,
14
+ ID_TABLE_REPLACE = ST_REPLACE,
15
+ ID_TABLE_ITERATOR_RESULT_END
16
+ };
17
+
18
+ struct rb_id_table *rb_id_table_create(size_t size);
19
+ void rb_id_table_free(struct rb_id_table *tbl);
20
+ void rb_id_table_clear(struct rb_id_table *tbl);
21
+
22
+ size_t rb_id_table_size(const struct rb_id_table *tbl);
23
+ size_t rb_id_table_memsize(const struct rb_id_table *tbl);
24
+
25
+ int rb_id_table_insert(struct rb_id_table *tbl, ID id, VALUE val);
26
+ int rb_id_table_lookup(struct rb_id_table *tbl, ID id, VALUE *valp);
27
+ int rb_id_table_delete(struct rb_id_table *tbl, ID id);
28
+
29
+ typedef enum rb_id_table_iterator_result rb_id_table_update_value_callback_func_t(VALUE *val, void *data, int existing);
30
+ typedef enum rb_id_table_iterator_result rb_id_table_foreach_func_t(ID id, VALUE val, void *data);
31
+ typedef enum rb_id_table_iterator_result rb_id_table_foreach_values_func_t(VALUE val, void *data);
32
+ void rb_id_table_foreach(struct rb_id_table *tbl, rb_id_table_foreach_func_t *func, void *data);
33
+ void rb_id_table_foreach_values(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, void *data);
34
+ void rb_id_table_foreach_values_with_replace(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, rb_id_table_update_value_callback_func_t *replace, void *data);
35
+
36
+ #endif /* RUBY_ID_TABLE_H */
@@ -0,0 +1,249 @@
1
+ /* -*- C -*- */
2
+
3
+ /* This is an auto-generated file and is a part of the programming language
4
+ * Ruby. The person who created a program to generate this file (``I''
5
+ * hereafter) would like to refrain from defining licensing of this generated
6
+ * source code.
7
+ *
8
+ * This file consists of many small parts of codes copyrighted by each author,
9
+ * not only the ``I'' person. Those original authors agree with some
10
+ * open-source license. I believe that the license we agree is the condition
11
+ * mentioned in the file COPYING. It states "4. You may modify and include
12
+ * the part of the software into any other software ...". But the problem is,
13
+ * the license never makes it clear if such modified parts still remain in the
14
+ * same license, or not. The fact that we agree with the source code's
15
+ * licensing terms does not automatically define that of generated ones. This
16
+ * is the reason why this file is under an unclear situation. All what I know
17
+ * is that above provision guarantees this file to exist.
18
+ *
19
+ * Please let me hesitate to declare something about this nuanced contract. I
20
+ * am not in the position to take over other authors' license to merge into my
21
+ * one. Changing them to (say) GPLv3 is not doable by myself. Perhaps someday
22
+ * it might turn out to be okay to say this file is under a license. I wish
23
+ * the situation would become more clear in the future. */
24
+
25
+ /*******************************************************************/
26
+ /*******************************************************************/
27
+ /*******************************************************************/
28
+ /**
29
+ This file contains YARV instruction list.
30
+
31
+ ----
32
+ This file is auto generated by insns2vm.rb
33
+ DO NOT TOUCH!
34
+
35
+ If you want to fix something, you must edit "tool/ruby_vm/views/insns.inc.erb"
36
+ or tool/insns2vm.rb
37
+ */
38
+
39
+ /* BIN : Basic Instruction Name */
40
+ #define BIN(n) YARVINSN_##n
41
+
42
+ enum ruby_vminsn_type {
43
+ BIN(nop),
44
+ BIN(getlocal),
45
+ BIN(setlocal),
46
+ BIN(getblockparam),
47
+ BIN(setblockparam),
48
+ BIN(getblockparamproxy),
49
+ BIN(getspecial),
50
+ BIN(setspecial),
51
+ BIN(getinstancevariable),
52
+ BIN(setinstancevariable),
53
+ BIN(getclassvariable),
54
+ BIN(setclassvariable),
55
+ BIN(opt_getconstant_path),
56
+ BIN(getconstant),
57
+ BIN(setconstant),
58
+ BIN(getglobal),
59
+ BIN(setglobal),
60
+ BIN(putnil),
61
+ BIN(putself),
62
+ BIN(putobject),
63
+ BIN(putspecialobject),
64
+ BIN(putstring),
65
+ BIN(concatstrings),
66
+ BIN(anytostring),
67
+ BIN(toregexp),
68
+ BIN(intern),
69
+ BIN(newarray),
70
+ BIN(newarraykwsplat),
71
+ BIN(duparray),
72
+ BIN(duphash),
73
+ BIN(expandarray),
74
+ BIN(concatarray),
75
+ BIN(splatarray),
76
+ BIN(newhash),
77
+ BIN(newrange),
78
+ BIN(pop),
79
+ BIN(dup),
80
+ BIN(dupn),
81
+ BIN(swap),
82
+ BIN(opt_reverse),
83
+ BIN(topn),
84
+ BIN(setn),
85
+ BIN(adjuststack),
86
+ BIN(defined),
87
+ BIN(checkmatch),
88
+ BIN(checkkeyword),
89
+ BIN(checktype),
90
+ BIN(defineclass),
91
+ BIN(definemethod),
92
+ BIN(definesmethod),
93
+ BIN(send),
94
+ BIN(opt_send_without_block),
95
+ BIN(objtostring),
96
+ BIN(opt_str_freeze),
97
+ BIN(opt_nil_p),
98
+ BIN(opt_str_uminus),
99
+ BIN(opt_newarray_max),
100
+ BIN(opt_newarray_min),
101
+ BIN(invokesuper),
102
+ BIN(invokeblock),
103
+ BIN(leave),
104
+ BIN(throw),
105
+ BIN(jump),
106
+ BIN(branchif),
107
+ BIN(branchunless),
108
+ BIN(branchnil),
109
+ BIN(once),
110
+ BIN(opt_case_dispatch),
111
+ BIN(opt_plus),
112
+ BIN(opt_minus),
113
+ BIN(opt_mult),
114
+ BIN(opt_div),
115
+ BIN(opt_mod),
116
+ BIN(opt_eq),
117
+ BIN(opt_neq),
118
+ BIN(opt_lt),
119
+ BIN(opt_le),
120
+ BIN(opt_gt),
121
+ BIN(opt_ge),
122
+ BIN(opt_ltlt),
123
+ BIN(opt_and),
124
+ BIN(opt_or),
125
+ BIN(opt_aref),
126
+ BIN(opt_aset),
127
+ BIN(opt_aset_with),
128
+ BIN(opt_aref_with),
129
+ BIN(opt_length),
130
+ BIN(opt_size),
131
+ BIN(opt_empty_p),
132
+ BIN(opt_succ),
133
+ BIN(opt_not),
134
+ BIN(opt_regexpmatch2),
135
+ BIN(invokebuiltin),
136
+ BIN(opt_invokebuiltin_delegate),
137
+ BIN(opt_invokebuiltin_delegate_leave),
138
+ BIN(getlocal_WC_0),
139
+ BIN(getlocal_WC_1),
140
+ BIN(setlocal_WC_0),
141
+ BIN(setlocal_WC_1),
142
+ BIN(putobject_INT2FIX_0_),
143
+ BIN(putobject_INT2FIX_1_),
144
+ BIN(trace_nop),
145
+ BIN(trace_getlocal),
146
+ BIN(trace_setlocal),
147
+ BIN(trace_getblockparam),
148
+ BIN(trace_setblockparam),
149
+ BIN(trace_getblockparamproxy),
150
+ BIN(trace_getspecial),
151
+ BIN(trace_setspecial),
152
+ BIN(trace_getinstancevariable),
153
+ BIN(trace_setinstancevariable),
154
+ BIN(trace_getclassvariable),
155
+ BIN(trace_setclassvariable),
156
+ BIN(trace_opt_getconstant_path),
157
+ BIN(trace_getconstant),
158
+ BIN(trace_setconstant),
159
+ BIN(trace_getglobal),
160
+ BIN(trace_setglobal),
161
+ BIN(trace_putnil),
162
+ BIN(trace_putself),
163
+ BIN(trace_putobject),
164
+ BIN(trace_putspecialobject),
165
+ BIN(trace_putstring),
166
+ BIN(trace_concatstrings),
167
+ BIN(trace_anytostring),
168
+ BIN(trace_toregexp),
169
+ BIN(trace_intern),
170
+ BIN(trace_newarray),
171
+ BIN(trace_newarraykwsplat),
172
+ BIN(trace_duparray),
173
+ BIN(trace_duphash),
174
+ BIN(trace_expandarray),
175
+ BIN(trace_concatarray),
176
+ BIN(trace_splatarray),
177
+ BIN(trace_newhash),
178
+ BIN(trace_newrange),
179
+ BIN(trace_pop),
180
+ BIN(trace_dup),
181
+ BIN(trace_dupn),
182
+ BIN(trace_swap),
183
+ BIN(trace_opt_reverse),
184
+ BIN(trace_topn),
185
+ BIN(trace_setn),
186
+ BIN(trace_adjuststack),
187
+ BIN(trace_defined),
188
+ BIN(trace_checkmatch),
189
+ BIN(trace_checkkeyword),
190
+ BIN(trace_checktype),
191
+ BIN(trace_defineclass),
192
+ BIN(trace_definemethod),
193
+ BIN(trace_definesmethod),
194
+ BIN(trace_send),
195
+ BIN(trace_opt_send_without_block),
196
+ BIN(trace_objtostring),
197
+ BIN(trace_opt_str_freeze),
198
+ BIN(trace_opt_nil_p),
199
+ BIN(trace_opt_str_uminus),
200
+ BIN(trace_opt_newarray_max),
201
+ BIN(trace_opt_newarray_min),
202
+ BIN(trace_invokesuper),
203
+ BIN(trace_invokeblock),
204
+ BIN(trace_leave),
205
+ BIN(trace_throw),
206
+ BIN(trace_jump),
207
+ BIN(trace_branchif),
208
+ BIN(trace_branchunless),
209
+ BIN(trace_branchnil),
210
+ BIN(trace_once),
211
+ BIN(trace_opt_case_dispatch),
212
+ BIN(trace_opt_plus),
213
+ BIN(trace_opt_minus),
214
+ BIN(trace_opt_mult),
215
+ BIN(trace_opt_div),
216
+ BIN(trace_opt_mod),
217
+ BIN(trace_opt_eq),
218
+ BIN(trace_opt_neq),
219
+ BIN(trace_opt_lt),
220
+ BIN(trace_opt_le),
221
+ BIN(trace_opt_gt),
222
+ BIN(trace_opt_ge),
223
+ BIN(trace_opt_ltlt),
224
+ BIN(trace_opt_and),
225
+ BIN(trace_opt_or),
226
+ BIN(trace_opt_aref),
227
+ BIN(trace_opt_aset),
228
+ BIN(trace_opt_aset_with),
229
+ BIN(trace_opt_aref_with),
230
+ BIN(trace_opt_length),
231
+ BIN(trace_opt_size),
232
+ BIN(trace_opt_empty_p),
233
+ BIN(trace_opt_succ),
234
+ BIN(trace_opt_not),
235
+ BIN(trace_opt_regexpmatch2),
236
+ BIN(trace_invokebuiltin),
237
+ BIN(trace_opt_invokebuiltin_delegate),
238
+ BIN(trace_opt_invokebuiltin_delegate_leave),
239
+ BIN(trace_getlocal_WC_0),
240
+ BIN(trace_getlocal_WC_1),
241
+ BIN(trace_setlocal_WC_0),
242
+ BIN(trace_setlocal_WC_1),
243
+ BIN(trace_putobject_INT2FIX_0_),
244
+ BIN(trace_putobject_INT2FIX_1_),
245
+ VM_INSTRUCTION_SIZE
246
+ };
247
+
248
+ #define ASSERT_VM_INSTRUCTION_SIZE(array) \
249
+ STATIC_ASSERT(numberof_##array, numberof(array) == VM_INSTRUCTION_SIZE)