debase-ruby_core_source 3.2.0 → 3.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +10 -0
  4. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/addr2line.h +20 -0
  5. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/builtin.h +117 -0
  6. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/ccan/build_assert/build_assert.h +40 -0
  7. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/ccan/check_type/check_type.h +63 -0
  8. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/ccan/container_of/container_of.h +142 -0
  9. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/ccan/list/list.h +789 -0
  10. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/ccan/str/str.h +17 -0
  11. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/constant.h +53 -0
  12. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/darray.h +246 -0
  13. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/debug_counter.h +423 -0
  14. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/dln.h +31 -0
  15. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/encindex.h +70 -0
  16. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/eval_intern.h +341 -0
  17. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/hrtime.h +227 -0
  18. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/id.h +343 -0
  19. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/id_table.h +39 -0
  20. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/insns.inc +249 -0
  21. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/insns_info.inc +9133 -0
  22. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/array.h +144 -0
  23. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/basic_operators.h +63 -0
  24. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/bignum.h +244 -0
  25. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/bits.h +568 -0
  26. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/class.h +226 -0
  27. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/cmdlineopt.h +63 -0
  28. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/compar.h +29 -0
  29. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/compile.h +34 -0
  30. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/compilers.h +107 -0
  31. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/complex.h +29 -0
  32. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/cont.h +32 -0
  33. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/dir.h +16 -0
  34. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/enc.h +19 -0
  35. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/encoding.h +32 -0
  36. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/enum.h +18 -0
  37. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/enumerator.h +21 -0
  38. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/error.h +213 -0
  39. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/eval.h +32 -0
  40. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/file.h +38 -0
  41. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/fixnum.h +184 -0
  42. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/gc.h +361 -0
  43. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/hash.h +190 -0
  44. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/imemo.h +241 -0
  45. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/inits.h +50 -0
  46. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/io.h +137 -0
  47. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/load.h +18 -0
  48. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/loadpath.h +16 -0
  49. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/math.h +23 -0
  50. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/missing.h +18 -0
  51. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/numeric.h +273 -0
  52. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/object.h +59 -0
  53. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/parse.h +133 -0
  54. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/proc.h +30 -0
  55. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/process.h +124 -0
  56. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/ractor.h +6 -0
  57. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/random.h +16 -0
  58. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/range.h +40 -0
  59. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/rational.h +71 -0
  60. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/re.h +28 -0
  61. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/ruby_parser.h +69 -0
  62. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/sanitizers.h +186 -0
  63. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/serial.h +23 -0
  64. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/signal.h +25 -0
  65. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/static_assert.h +16 -0
  66. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/string.h +160 -0
  67. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/struct.h +127 -0
  68. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/symbol.h +42 -0
  69. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/thread.h +74 -0
  70. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/time.h +34 -0
  71. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/transcode.h +20 -0
  72. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/util.h +27 -0
  73. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/variable.h +71 -0
  74. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/vm.h +129 -0
  75. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/warnings.h +16 -0
  76. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal.h +112 -0
  77. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/iseq.h +334 -0
  78. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/known_errors.inc +791 -0
  79. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/method.h +254 -0
  80. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/node.h +125 -0
  81. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/node_name.inc +210 -0
  82. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/optinsn.inc +128 -0
  83. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/optunifs.inc +43 -0
  84. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parse.h +232 -0
  85. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_bits.h +564 -0
  86. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_node.h +133 -0
  87. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_st.h +162 -0
  88. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_value.h +106 -0
  89. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/probes_helper.h +42 -0
  90. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/ractor_core.h +387 -0
  91. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/regenc.h +254 -0
  92. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/regint.h +996 -0
  93. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/regparse.h +370 -0
  94. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/revision.h +5 -0
  95. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/rjit.h +103 -0
  96. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/rjit_c.h +165 -0
  97. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/ruby_assert.h +14 -0
  98. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/ruby_atomic.h +23 -0
  99. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/rubyparser.h +628 -0
  100. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/shape.h +232 -0
  101. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/siphash.h +48 -0
  102. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/symbol.h +119 -0
  103. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/thread_none.h +20 -0
  104. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/thread_pthread.h +126 -0
  105. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/thread_win32.h +58 -0
  106. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/timev.h +58 -0
  107. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/transcode_data.h +138 -0
  108. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/variable.h +30 -0
  109. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/version.h +65 -0
  110. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm.inc +5396 -0
  111. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_call_iseq_optimized.inc +244 -0
  112. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_callinfo.h +608 -0
  113. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_core.h +2089 -0
  114. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_debug.h +122 -0
  115. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_exec.h +199 -0
  116. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_insnhelper.h +271 -0
  117. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_opts.h +67 -0
  118. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_sync.h +137 -0
  119. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/vmtc.inc +243 -0
  120. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/yjit.h +70 -0
  121. data/lib/debase/ruby_core_source/version.rb +1 -1
  122. metadata +120 -3
@@ -0,0 +1,343 @@
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
+
133
+ /* LOCAL tokens {{{ */
134
+ tTOKEN_LOCAL_BEGIN = tPRESERVED_ID_END-1,
135
+ tMax,
136
+ tMin,
137
+ tHash,
138
+ tFreeze,
139
+ tInspect,
140
+ tIntern,
141
+ tObject_id,
142
+ tConst_added,
143
+ tConst_missing,
144
+ tMethodMissing,
145
+ tMethod_added,
146
+ tSingleton_method_added,
147
+ tMethod_removed,
148
+ tSingleton_method_removed,
149
+ tMethod_undefined,
150
+ tSingleton_method_undefined,
151
+ tLength,
152
+ tSize,
153
+ tGets,
154
+ tSucc,
155
+ tEach,
156
+ tProc,
157
+ tLambda,
158
+ tSend,
159
+ t__send__,
160
+ t__recursive_key__,
161
+ tInitialize,
162
+ tInitialize_copy,
163
+ tInitialize_clone,
164
+ tInitialize_dup,
165
+ tTo_int,
166
+ tTo_ary,
167
+ tTo_str,
168
+ tTo_sym,
169
+ tTo_hash,
170
+ tTo_proc,
171
+ tTo_io,
172
+ tTo_a,
173
+ tTo_s,
174
+ tTo_i,
175
+ tTo_f,
176
+ tTo_r,
177
+ tBt,
178
+ tBt_locations,
179
+ tCall,
180
+ tMesg,
181
+ tException,
182
+ tLocals,
183
+ tNOT,
184
+ tAND,
185
+ tOR,
186
+ tDiv,
187
+ tDivmod,
188
+ tFdiv,
189
+ tQuo,
190
+ tName,
191
+ tNil,
192
+ tPath,
193
+ tUScore,
194
+ tNUMPARAM_1,
195
+ tNUMPARAM_2,
196
+ tNUMPARAM_3,
197
+ tNUMPARAM_4,
198
+ tNUMPARAM_5,
199
+ tNUMPARAM_6,
200
+ tNUMPARAM_7,
201
+ tNUMPARAM_8,
202
+ tNUMPARAM_9,
203
+ tDefault,
204
+ tTOKEN_LOCAL_END,
205
+ /* LOCAL tokens }}} */
206
+
207
+ /* INSTANCE tokens {{{ */
208
+ tTOKEN_INSTANCE_BEGIN = tTOKEN_LOCAL_END-1,
209
+ tTOKEN_INSTANCE_END,
210
+ /* INSTANCE tokens }}} */
211
+
212
+ /* GLOBAL tokens {{{ */
213
+ tTOKEN_GLOBAL_BEGIN = tTOKEN_INSTANCE_END-1,
214
+ tLASTLINE,
215
+ tBACKREF,
216
+ tERROR_INFO,
217
+ tTOKEN_GLOBAL_END,
218
+ /* GLOBAL tokens }}} */
219
+
220
+ /* CONST tokens {{{ */
221
+ tTOKEN_CONST_BEGIN = tTOKEN_GLOBAL_END-1,
222
+ tTOKEN_CONST_END,
223
+ /* CONST tokens }}} */
224
+
225
+ /* CLASS tokens {{{ */
226
+ tTOKEN_CLASS_BEGIN = tTOKEN_CONST_END-1,
227
+ tTOKEN_CLASS_END,
228
+ /* CLASS tokens }}} */
229
+
230
+ /* ATTRSET tokens {{{ */
231
+ tTOKEN_ATTRSET_BEGIN = tTOKEN_CLASS_END-1,
232
+ tTOKEN_ATTRSET_END,
233
+ /* ATTRSET tokens }}} */
234
+
235
+ tNEXT_ID = tTOKEN_ATTRSET_END,
236
+
237
+ /* LOCAL IDs {{{ */
238
+ #define DEFINE_LOCALID_FROM_TOKEN(n) id##n = TOKEN2LOCALID(t##n)
239
+ DEFINE_LOCALID_FROM_TOKEN(Max),
240
+ DEFINE_LOCALID_FROM_TOKEN(Min),
241
+ DEFINE_LOCALID_FROM_TOKEN(Hash),
242
+ DEFINE_LOCALID_FROM_TOKEN(Freeze),
243
+ DEFINE_LOCALID_FROM_TOKEN(Inspect),
244
+ DEFINE_LOCALID_FROM_TOKEN(Intern),
245
+ DEFINE_LOCALID_FROM_TOKEN(Object_id),
246
+ DEFINE_LOCALID_FROM_TOKEN(Const_added),
247
+ DEFINE_LOCALID_FROM_TOKEN(Const_missing),
248
+ DEFINE_LOCALID_FROM_TOKEN(MethodMissing),
249
+ DEFINE_LOCALID_FROM_TOKEN(Method_added),
250
+ DEFINE_LOCALID_FROM_TOKEN(Singleton_method_added),
251
+ DEFINE_LOCALID_FROM_TOKEN(Method_removed),
252
+ DEFINE_LOCALID_FROM_TOKEN(Singleton_method_removed),
253
+ DEFINE_LOCALID_FROM_TOKEN(Method_undefined),
254
+ DEFINE_LOCALID_FROM_TOKEN(Singleton_method_undefined),
255
+ DEFINE_LOCALID_FROM_TOKEN(Length),
256
+ DEFINE_LOCALID_FROM_TOKEN(Size),
257
+ DEFINE_LOCALID_FROM_TOKEN(Gets),
258
+ DEFINE_LOCALID_FROM_TOKEN(Succ),
259
+ DEFINE_LOCALID_FROM_TOKEN(Each),
260
+ DEFINE_LOCALID_FROM_TOKEN(Proc),
261
+ DEFINE_LOCALID_FROM_TOKEN(Lambda),
262
+ DEFINE_LOCALID_FROM_TOKEN(Send),
263
+ DEFINE_LOCALID_FROM_TOKEN(__send__),
264
+ DEFINE_LOCALID_FROM_TOKEN(__recursive_key__),
265
+ DEFINE_LOCALID_FROM_TOKEN(Initialize),
266
+ DEFINE_LOCALID_FROM_TOKEN(Initialize_copy),
267
+ DEFINE_LOCALID_FROM_TOKEN(Initialize_clone),
268
+ DEFINE_LOCALID_FROM_TOKEN(Initialize_dup),
269
+ DEFINE_LOCALID_FROM_TOKEN(To_int),
270
+ DEFINE_LOCALID_FROM_TOKEN(To_ary),
271
+ DEFINE_LOCALID_FROM_TOKEN(To_str),
272
+ DEFINE_LOCALID_FROM_TOKEN(To_sym),
273
+ DEFINE_LOCALID_FROM_TOKEN(To_hash),
274
+ DEFINE_LOCALID_FROM_TOKEN(To_proc),
275
+ DEFINE_LOCALID_FROM_TOKEN(To_io),
276
+ DEFINE_LOCALID_FROM_TOKEN(To_a),
277
+ DEFINE_LOCALID_FROM_TOKEN(To_s),
278
+ DEFINE_LOCALID_FROM_TOKEN(To_i),
279
+ DEFINE_LOCALID_FROM_TOKEN(To_f),
280
+ DEFINE_LOCALID_FROM_TOKEN(To_r),
281
+ DEFINE_LOCALID_FROM_TOKEN(Bt),
282
+ DEFINE_LOCALID_FROM_TOKEN(Bt_locations),
283
+ DEFINE_LOCALID_FROM_TOKEN(Call),
284
+ DEFINE_LOCALID_FROM_TOKEN(Mesg),
285
+ DEFINE_LOCALID_FROM_TOKEN(Exception),
286
+ DEFINE_LOCALID_FROM_TOKEN(Locals),
287
+ DEFINE_LOCALID_FROM_TOKEN(NOT),
288
+ DEFINE_LOCALID_FROM_TOKEN(AND),
289
+ DEFINE_LOCALID_FROM_TOKEN(OR),
290
+ DEFINE_LOCALID_FROM_TOKEN(Div),
291
+ DEFINE_LOCALID_FROM_TOKEN(Divmod),
292
+ DEFINE_LOCALID_FROM_TOKEN(Fdiv),
293
+ DEFINE_LOCALID_FROM_TOKEN(Quo),
294
+ DEFINE_LOCALID_FROM_TOKEN(Name),
295
+ DEFINE_LOCALID_FROM_TOKEN(Nil),
296
+ DEFINE_LOCALID_FROM_TOKEN(Path),
297
+ DEFINE_LOCALID_FROM_TOKEN(UScore),
298
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_1),
299
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_2),
300
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_3),
301
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_4),
302
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_5),
303
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_6),
304
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_7),
305
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_8),
306
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_9),
307
+ DEFINE_LOCALID_FROM_TOKEN(Default),
308
+ #undef DEFINE_LOCALID_FROM_TOKEN
309
+ /* LOCAL IDs }}} */
310
+
311
+ /* INSTANCE IDs {{{ */
312
+ #define DEFINE_INSTANCEID_FROM_TOKEN(n) id##n = TOKEN2INSTANCEID(t##n)
313
+ #undef DEFINE_INSTANCEID_FROM_TOKEN
314
+ /* INSTANCE IDs }}} */
315
+
316
+ /* GLOBAL IDs {{{ */
317
+ #define DEFINE_GLOBALID_FROM_TOKEN(n) id##n = TOKEN2GLOBALID(t##n)
318
+ DEFINE_GLOBALID_FROM_TOKEN(LASTLINE),
319
+ DEFINE_GLOBALID_FROM_TOKEN(BACKREF),
320
+ DEFINE_GLOBALID_FROM_TOKEN(ERROR_INFO),
321
+ #undef DEFINE_GLOBALID_FROM_TOKEN
322
+ /* GLOBAL IDs }}} */
323
+
324
+ /* CONST IDs {{{ */
325
+ #define DEFINE_CONSTID_FROM_TOKEN(n) id##n = TOKEN2CONSTID(t##n)
326
+ #undef DEFINE_CONSTID_FROM_TOKEN
327
+ /* CONST IDs }}} */
328
+
329
+ /* CLASS IDs {{{ */
330
+ #define DEFINE_CLASSID_FROM_TOKEN(n) id##n = TOKEN2CLASSID(t##n)
331
+ #undef DEFINE_CLASSID_FROM_TOKEN
332
+ /* CLASS IDs }}} */
333
+
334
+ /* ATTRSET IDs {{{ */
335
+ #define DEFINE_ATTRSETID_FROM_TOKEN(n) id##n = TOKEN2ATTRSETID(t##n)
336
+ #undef DEFINE_ATTRSETID_FROM_TOKEN
337
+ /* ATTRSET IDs }}} */
338
+
339
+ tLAST_OP_ID = tPRESERVED_ID_END-1,
340
+ idLAST_OP_ID = tLAST_OP_ID >> ID_SCOPE_SHIFT
341
+ };
342
+
343
+ #endif /* RUBY_ID_H */
@@ -0,0 +1,39 @@
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_memsize(const struct rb_id_table *tbl);
23
+
24
+ int rb_id_table_insert(struct rb_id_table *tbl, ID id, VALUE val);
25
+ int rb_id_table_lookup(struct rb_id_table *tbl, ID id, VALUE *valp);
26
+ int rb_id_table_delete(struct rb_id_table *tbl, ID id);
27
+
28
+ typedef enum rb_id_table_iterator_result rb_id_table_update_value_callback_func_t(VALUE *val, void *data, int existing);
29
+ typedef enum rb_id_table_iterator_result rb_id_table_foreach_func_t(ID id, VALUE val, void *data);
30
+ typedef enum rb_id_table_iterator_result rb_id_table_foreach_values_func_t(VALUE val, void *data);
31
+ void rb_id_table_foreach(struct rb_id_table *tbl, rb_id_table_foreach_func_t *func, void *data);
32
+ void rb_id_table_foreach_values(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, void *data);
33
+ 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);
34
+
35
+ RUBY_SYMBOL_EXPORT_BEGIN
36
+ size_t rb_id_table_size(const struct rb_id_table *tbl);
37
+ RUBY_SYMBOL_EXPORT_END
38
+
39
+ #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(definedivar),
88
+ BIN(checkmatch),
89
+ BIN(checkkeyword),
90
+ BIN(checktype),
91
+ BIN(defineclass),
92
+ BIN(definemethod),
93
+ BIN(definesmethod),
94
+ BIN(send),
95
+ BIN(opt_send_without_block),
96
+ BIN(objtostring),
97
+ BIN(opt_str_freeze),
98
+ BIN(opt_nil_p),
99
+ BIN(opt_str_uminus),
100
+ BIN(opt_newarray_send),
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_definedivar),
189
+ BIN(trace_checkmatch),
190
+ BIN(trace_checkkeyword),
191
+ BIN(trace_checktype),
192
+ BIN(trace_defineclass),
193
+ BIN(trace_definemethod),
194
+ BIN(trace_definesmethod),
195
+ BIN(trace_send),
196
+ BIN(trace_opt_send_without_block),
197
+ BIN(trace_objtostring),
198
+ BIN(trace_opt_str_freeze),
199
+ BIN(trace_opt_nil_p),
200
+ BIN(trace_opt_str_uminus),
201
+ BIN(trace_opt_newarray_send),
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)