debase-ruby_core_source 4.0.1 → 4.1.0.preview1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/addr2line.h +22 -0
  4. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/builtin.h +127 -0
  5. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ccan/build_assert/build_assert.h +40 -0
  6. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ccan/check_type/check_type.h +63 -0
  7. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ccan/container_of/container_of.h +142 -0
  8. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ccan/list/list.h +791 -0
  9. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ccan/str/str.h +17 -0
  10. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/constant.h +53 -0
  11. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/darray.h +295 -0
  12. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/debug_counter.h +428 -0
  13. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/dln.h +33 -0
  14. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/encindex.h +70 -0
  15. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/eval_intern.h +356 -0
  16. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/hrtime.h +237 -0
  17. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/id.h +365 -0
  18. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/id_table.h +74 -0
  19. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/insns.inc +315 -0
  20. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/insns_info.inc +11637 -0
  21. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/array.h +158 -0
  22. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/basic_operators.h +67 -0
  23. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/bignum.h +249 -0
  24. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/bits.h +647 -0
  25. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/box.h +103 -0
  26. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/class.h +797 -0
  27. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/cmdlineopt.h +64 -0
  28. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/compar.h +30 -0
  29. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/compile.h +34 -0
  30. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/compilers.h +104 -0
  31. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/complex.h +29 -0
  32. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/concurrent_set.h +21 -0
  33. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/cont.h +33 -0
  34. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/coverage.h +51 -0
  35. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/dir.h +16 -0
  36. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/enc.h +19 -0
  37. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/encoding.h +40 -0
  38. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/enum.h +18 -0
  39. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/enumerator.h +21 -0
  40. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/error.h +287 -0
  41. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/eval.h +43 -0
  42. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/file.h +40 -0
  43. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/fixnum.h +185 -0
  44. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/gc.h +411 -0
  45. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/hash.h +220 -0
  46. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/imemo.h +302 -0
  47. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/inits.h +54 -0
  48. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/io.h +167 -0
  49. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/io_buffer.h +36 -0
  50. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/jit.h +23 -0
  51. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/load.h +20 -0
  52. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/loadpath.h +16 -0
  53. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/marshal.h +17 -0
  54. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/math.h +23 -0
  55. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/missing.h +19 -0
  56. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/numeric.h +326 -0
  57. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/object.h +88 -0
  58. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/objspace.h +24 -0
  59. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/parse.h +131 -0
  60. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/proc.h +34 -0
  61. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/process.h +124 -0
  62. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/ractor.h +9 -0
  63. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/random.h +17 -0
  64. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/range.h +46 -0
  65. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/rational.h +92 -0
  66. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/re.h +87 -0
  67. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/ruby_parser.h +109 -0
  68. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/sanitizers.h +346 -0
  69. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/scheduler.h +7 -0
  70. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/serial.h +23 -0
  71. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/set.h +20 -0
  72. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/set_table.h +77 -0
  73. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/signal.h +25 -0
  74. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/simd.h +18 -0
  75. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/st.h +32 -0
  76. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/static_assert.h +16 -0
  77. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/string.h +240 -0
  78. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/struct.h +120 -0
  79. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/symbol.h +46 -0
  80. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/thread.h +108 -0
  81. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/time.h +34 -0
  82. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/transcode.h +23 -0
  83. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/util.h +27 -0
  84. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/variable.h +81 -0
  85. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/vm.h +144 -0
  86. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/vm_map.h +95 -0
  87. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal/warnings.h +16 -0
  88. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/internal.h +106 -0
  89. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/iseq.h +439 -0
  90. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/known_errors.inc +1419 -0
  91. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/method.h +279 -0
  92. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/node.h +122 -0
  93. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/node_name.inc +224 -0
  94. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/optinsn.inc +128 -0
  95. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/optunifs.inc +41 -0
  96. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/parse.h +246 -0
  97. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/parser_bits.h +647 -0
  98. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/parser_node.h +32 -0
  99. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/parser_st.h +161 -0
  100. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/parser_value.h +116 -0
  101. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/arena.h +37 -0
  102. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/ast.h +10371 -0
  103. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/buffer.h +52 -0
  104. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/comments.h +43 -0
  105. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/accel.h +19 -0
  106. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/align.h +36 -0
  107. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/assume.h +25 -0
  108. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/exported.h +24 -0
  109. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/fallthrough.h +22 -0
  110. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/filesystem.h +32 -0
  111. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/flex_array.h +19 -0
  112. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/force_inline.h +21 -0
  113. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/format.h +25 -0
  114. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/inline.h +17 -0
  115. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/nodiscard.h +22 -0
  116. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/nonnull.h +18 -0
  117. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/compiler/unused.h +18 -0
  118. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/constant_pool.h +81 -0
  119. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/diagnostic.h +93 -0
  120. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/errors_format.h +53 -0
  121. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/excludes.h +29 -0
  122. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/extension.h +19 -0
  123. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/integer.h +41 -0
  124. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/allocator.h +68 -0
  125. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/allocator_debug.h +88 -0
  126. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/arena.h +108 -0
  127. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/bit.h +42 -0
  128. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/buffer.h +91 -0
  129. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/char.h +139 -0
  130. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/comments.h +20 -0
  131. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/constant_pool.h +152 -0
  132. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/diagnostic.h +389 -0
  133. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/encoding.h +242 -0
  134. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/integer.h +68 -0
  135. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/isinf.h +16 -0
  136. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/line_offset_list.h +34 -0
  137. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/list.h +62 -0
  138. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/magic_comments.h +23 -0
  139. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/memchr.h +15 -0
  140. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/node.h +32 -0
  141. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/options.h +224 -0
  142. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/parser.h +971 -0
  143. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/regexp.h +42 -0
  144. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/serialize.h +39 -0
  145. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/source.h +72 -0
  146. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/static_literals.h +100 -0
  147. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/stringy.h +35 -0
  148. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/strncasecmp.h +18 -0
  149. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/strpbrk.h +33 -0
  150. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/internal/tokens.h +11 -0
  151. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/json.h +32 -0
  152. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/line_offset_list.h +61 -0
  153. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/magic_comments.h +35 -0
  154. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/node.h +94 -0
  155. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/options.h +335 -0
  156. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/parser.h +348 -0
  157. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/prettyprint.h +31 -0
  158. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/prism.h +131 -0
  159. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/serialize.h +115 -0
  160. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/source.h +155 -0
  161. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/stream.h +28 -0
  162. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/string_query.h +63 -0
  163. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/stringy.h +72 -0
  164. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism/version.h +38 -0
  165. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism_compile.h +204 -0
  166. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/prism_xallocator.h +6 -0
  167. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/probes_helper.h +42 -0
  168. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ractor_core.h +421 -0
  169. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/regenc.h +261 -0
  170. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/regint.h +983 -0
  171. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/regparse.h +371 -0
  172. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/revision.h +5 -0
  173. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ruby_assert.h +14 -0
  174. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/ruby_atomic.h +115 -0
  175. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/rubyparser.h +1389 -0
  176. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/shape.h +733 -0
  177. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/siphash.h +48 -0
  178. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/symbol.h +116 -0
  179. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/thread_none.h +25 -0
  180. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/thread_pthread.h +63 -0
  181. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/thread_sched.h +271 -0
  182. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/thread_win32.h +48 -0
  183. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/timev.h +58 -0
  184. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/transcode_data.h +138 -0
  185. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/variable.h +26 -0
  186. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/version.h +69 -0
  187. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm.inc +6457 -0
  188. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_call_iseq_optimized.inc +244 -0
  189. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_callinfo.h +688 -0
  190. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_core.h +2509 -0
  191. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_debug.h +124 -0
  192. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_exec.h +202 -0
  193. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_insnhelper.h +280 -0
  194. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_opts.h +65 -0
  195. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vm_sync.h +160 -0
  196. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/vmtc.inc +302 -0
  197. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/yjit.h +87 -0
  198. data/lib/debase/ruby_core_source/ruby-4.1.0-preview1/zjit.h +221 -0
  199. data/lib/debase/ruby_core_source/version.rb +1 -1
  200. metadata +2930 -2724
@@ -0,0 +1,365 @@
1
+ /* DO NOT EDIT THIS FILE DIRECTLY: source is at template/id.h.tmpl */
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_LOCAL = 0x00,
18
+ RUBY_ID_STATIC_SYM = 0x01,
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_INTERNAL = (0x07<<1),
25
+ RUBY_ID_SCOPE_SHIFT = 4,
26
+ RUBY_ID_SCOPE_MASK = (~(~0U<<(RUBY_ID_SCOPE_SHIFT-1))<<1)
27
+ };
28
+
29
+ #define ID_STATIC_SYM RUBY_ID_STATIC_SYM
30
+ #define ID_SCOPE_SHIFT RUBY_ID_SCOPE_SHIFT
31
+ #define ID_SCOPE_MASK RUBY_ID_SCOPE_MASK
32
+ #define ID_LOCAL RUBY_ID_LOCAL
33
+ #define ID_INSTANCE RUBY_ID_INSTANCE
34
+ #define ID_GLOBAL RUBY_ID_GLOBAL
35
+ #define ID_ATTRSET RUBY_ID_ATTRSET
36
+ #define ID_CONST RUBY_ID_CONST
37
+ #define ID_CLASS RUBY_ID_CLASS
38
+ #define ID_INTERNAL RUBY_ID_INTERNAL
39
+
40
+ #define symIFUNC ID2SYM(idIFUNC)
41
+ #define symCFUNC ID2SYM(idCFUNC)
42
+
43
+ #define RUBY_TOKEN_DOT2 128
44
+ #define RUBY_TOKEN_DOT3 129
45
+ #define RUBY_TOKEN_BDOT2 130
46
+ #define RUBY_TOKEN_BDOT3 131
47
+ #define RUBY_TOKEN_UPLUS 132
48
+ #define RUBY_TOKEN_UMINUS 133
49
+ #define RUBY_TOKEN_POW 134
50
+ #define RUBY_TOKEN_CMP 135
51
+ #define RUBY_TOKEN_LSHFT 136
52
+ #define RUBY_TOKEN_RSHFT 137
53
+ #define RUBY_TOKEN_LEQ 138
54
+ #define RUBY_TOKEN_GEQ 139
55
+ #define RUBY_TOKEN_EQ 140
56
+ #define RUBY_TOKEN_EQQ 141
57
+ #define RUBY_TOKEN_NEQ 142
58
+ #define RUBY_TOKEN_MATCH 143
59
+ #define RUBY_TOKEN_NMATCH 144
60
+ #define RUBY_TOKEN_AREF 145
61
+ #define RUBY_TOKEN_ASET 146
62
+ #define RUBY_TOKEN_COLON2 147
63
+ #define RUBY_TOKEN_ANDOP 148
64
+ #define RUBY_TOKEN_OROP 149
65
+ #define RUBY_TOKEN_ANDDOT 150
66
+ #define RUBY_TOKEN(t) RUBY_TOKEN_##t
67
+
68
+ #define RUBY_TOKEN2ID_TYPE(tok, type) ((tok<<RUBY_ID_SCOPE_SHIFT)|type|RUBY_ID_STATIC_SYM)
69
+ #define TOKEN2LOCALID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_LOCAL)
70
+ #define TOKEN2INSTANCEID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_INSTANCE)
71
+ #define TOKEN2GLOBALID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_GLOBAL)
72
+ #define TOKEN2CONSTID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_CONST)
73
+ #define TOKEN2CLASSID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_CLASS)
74
+ #define TOKEN2ATTRSETID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_ATTRSET)
75
+
76
+ enum ruby_method_ids {
77
+ idDot2 = RUBY_TOKEN(DOT2),
78
+ idDot3 = RUBY_TOKEN(DOT3),
79
+ idUPlus = RUBY_TOKEN(UPLUS),
80
+ idUMinus = RUBY_TOKEN(UMINUS),
81
+ idPow = RUBY_TOKEN(POW),
82
+ idCmp = RUBY_TOKEN(CMP),
83
+ idPLUS = '+',
84
+ idMINUS = '-',
85
+ idMULT = '*',
86
+ idDIV = '/',
87
+ idMOD = '%',
88
+ idLTLT = RUBY_TOKEN(LSHFT),
89
+ idGTGT = RUBY_TOKEN(RSHFT),
90
+ idLT = '<',
91
+ idLE = RUBY_TOKEN(LEQ),
92
+ idGT = '>',
93
+ idGE = RUBY_TOKEN(GEQ),
94
+ idEq = RUBY_TOKEN(EQ),
95
+ idEqq = RUBY_TOKEN(EQQ),
96
+ idNeq = RUBY_TOKEN(NEQ),
97
+ idNot = '!',
98
+ idAnd = '&',
99
+ idOr = '|',
100
+ idBackquote = '`',
101
+ idEqTilde = RUBY_TOKEN(MATCH),
102
+ idNeqTilde = RUBY_TOKEN(NMATCH),
103
+ idAREF = RUBY_TOKEN(AREF),
104
+ idASET = RUBY_TOKEN(ASET),
105
+ idCOLON2 = RUBY_TOKEN(COLON2),
106
+ idANDOP = RUBY_TOKEN(ANDOP),
107
+ idOROP = RUBY_TOKEN(OROP),
108
+ idANDDOT = RUBY_TOKEN(ANDDOT),
109
+ tPRESERVED_ID_BEGIN = 150,
110
+ idNilP,
111
+ idIncludeP,
112
+ idItImplicit,
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_iseq_path,
126
+ id_core_set_postexe,
127
+ id_core_hash_merge_ptr,
128
+ id_core_hash_merge_bang_ptr,
129
+ id_core_hash_merge_kwd,
130
+ id_core_hash_merge_bang_kwd,
131
+ id_core_hash_coerce,
132
+ id_core_raise,
133
+ id_core_sprintf,
134
+ id_debug_created_info,
135
+ tPRESERVED_ID_END,
136
+
137
+ /* LOCAL tokens {{{ */
138
+ tTOKEN_LOCAL_BEGIN = tPRESERVED_ID_END-1,
139
+ tMax,
140
+ tMin,
141
+ tHash,
142
+ tFreeze,
143
+ tInspect,
144
+ tIntern,
145
+ tObject_id,
146
+ t__id__,
147
+ tConst_added,
148
+ tConst_missing,
149
+ tMethodMissing,
150
+ tMethod_added,
151
+ tSingleton_method_added,
152
+ tMethod_removed,
153
+ tSingleton_method_removed,
154
+ tMethod_undefined,
155
+ tSingleton_method_undefined,
156
+ tLength,
157
+ tSize,
158
+ tGets,
159
+ tSucc,
160
+ tEach,
161
+ tProc,
162
+ tLambda,
163
+ tSend,
164
+ t__send__,
165
+ t__recursive_key__,
166
+ tClone,
167
+ tInitialize,
168
+ tInitialize_copy,
169
+ tInitialize_clone,
170
+ tInitialize_dup,
171
+ tTo_int,
172
+ tTo_ary,
173
+ tTo_str,
174
+ tTo_sym,
175
+ tTo_hash,
176
+ tTo_proc,
177
+ tTo_io,
178
+ tTo_a,
179
+ tTo_s,
180
+ tTo_i,
181
+ tTo_f,
182
+ tTo_r,
183
+ tBt,
184
+ tBt_locations,
185
+ tCall,
186
+ tYield,
187
+ tMesg,
188
+ tException,
189
+ tLocals,
190
+ tNOT,
191
+ tAND,
192
+ tOR,
193
+ tDiv,
194
+ tDivmod,
195
+ tFdiv,
196
+ tQuo,
197
+ tName,
198
+ tNil,
199
+ tPath,
200
+ tPack,
201
+ tBuffer,
202
+ tAborted,
203
+ tExited,
204
+ tUScore,
205
+ tNUMPARAM_1,
206
+ tNUMPARAM_2,
207
+ tNUMPARAM_3,
208
+ tNUMPARAM_4,
209
+ tNUMPARAM_5,
210
+ tNUMPARAM_6,
211
+ tNUMPARAM_7,
212
+ tNUMPARAM_8,
213
+ tNUMPARAM_9,
214
+ tIt,
215
+ tDefault,
216
+ tTOKEN_LOCAL_END,
217
+ /* LOCAL tokens }}} */
218
+
219
+ /* INSTANCE tokens {{{ */
220
+ tTOKEN_INSTANCE_BEGIN = tTOKEN_LOCAL_END-1,
221
+ tTOKEN_INSTANCE_END,
222
+ /* INSTANCE tokens }}} */
223
+
224
+ /* GLOBAL tokens {{{ */
225
+ tTOKEN_GLOBAL_BEGIN = tTOKEN_INSTANCE_END-1,
226
+ tLASTLINE,
227
+ tBACKREF,
228
+ tERROR_INFO,
229
+ tTOKEN_GLOBAL_END,
230
+ /* GLOBAL tokens }}} */
231
+
232
+ /* CONST tokens {{{ */
233
+ tTOKEN_CONST_BEGIN = tTOKEN_GLOBAL_END-1,
234
+ tRuby,
235
+ tTOKEN_CONST_END,
236
+ /* CONST tokens }}} */
237
+
238
+ /* CLASS tokens {{{ */
239
+ tTOKEN_CLASS_BEGIN = tTOKEN_CONST_END-1,
240
+ tTOKEN_CLASS_END,
241
+ /* CLASS tokens }}} */
242
+
243
+ /* ATTRSET tokens {{{ */
244
+ tTOKEN_ATTRSET_BEGIN = tTOKEN_CLASS_END-1,
245
+ tTOKEN_ATTRSET_END,
246
+ /* ATTRSET tokens }}} */
247
+
248
+ tNEXT_ID = tTOKEN_ATTRSET_END,
249
+
250
+ /* LOCAL IDs {{{ */
251
+ #define DEFINE_LOCALID_FROM_TOKEN(n) id##n = TOKEN2LOCALID(t##n)
252
+ DEFINE_LOCALID_FROM_TOKEN(Max),
253
+ DEFINE_LOCALID_FROM_TOKEN(Min),
254
+ DEFINE_LOCALID_FROM_TOKEN(Hash),
255
+ DEFINE_LOCALID_FROM_TOKEN(Freeze),
256
+ DEFINE_LOCALID_FROM_TOKEN(Inspect),
257
+ DEFINE_LOCALID_FROM_TOKEN(Intern),
258
+ DEFINE_LOCALID_FROM_TOKEN(Object_id),
259
+ DEFINE_LOCALID_FROM_TOKEN(__id__),
260
+ DEFINE_LOCALID_FROM_TOKEN(Const_added),
261
+ DEFINE_LOCALID_FROM_TOKEN(Const_missing),
262
+ DEFINE_LOCALID_FROM_TOKEN(MethodMissing),
263
+ DEFINE_LOCALID_FROM_TOKEN(Method_added),
264
+ DEFINE_LOCALID_FROM_TOKEN(Singleton_method_added),
265
+ DEFINE_LOCALID_FROM_TOKEN(Method_removed),
266
+ DEFINE_LOCALID_FROM_TOKEN(Singleton_method_removed),
267
+ DEFINE_LOCALID_FROM_TOKEN(Method_undefined),
268
+ DEFINE_LOCALID_FROM_TOKEN(Singleton_method_undefined),
269
+ DEFINE_LOCALID_FROM_TOKEN(Length),
270
+ DEFINE_LOCALID_FROM_TOKEN(Size),
271
+ DEFINE_LOCALID_FROM_TOKEN(Gets),
272
+ DEFINE_LOCALID_FROM_TOKEN(Succ),
273
+ DEFINE_LOCALID_FROM_TOKEN(Each),
274
+ DEFINE_LOCALID_FROM_TOKEN(Proc),
275
+ DEFINE_LOCALID_FROM_TOKEN(Lambda),
276
+ DEFINE_LOCALID_FROM_TOKEN(Send),
277
+ DEFINE_LOCALID_FROM_TOKEN(__send__),
278
+ DEFINE_LOCALID_FROM_TOKEN(__recursive_key__),
279
+ DEFINE_LOCALID_FROM_TOKEN(Clone),
280
+ DEFINE_LOCALID_FROM_TOKEN(Initialize),
281
+ DEFINE_LOCALID_FROM_TOKEN(Initialize_copy),
282
+ DEFINE_LOCALID_FROM_TOKEN(Initialize_clone),
283
+ DEFINE_LOCALID_FROM_TOKEN(Initialize_dup),
284
+ DEFINE_LOCALID_FROM_TOKEN(To_int),
285
+ DEFINE_LOCALID_FROM_TOKEN(To_ary),
286
+ DEFINE_LOCALID_FROM_TOKEN(To_str),
287
+ DEFINE_LOCALID_FROM_TOKEN(To_sym),
288
+ DEFINE_LOCALID_FROM_TOKEN(To_hash),
289
+ DEFINE_LOCALID_FROM_TOKEN(To_proc),
290
+ DEFINE_LOCALID_FROM_TOKEN(To_io),
291
+ DEFINE_LOCALID_FROM_TOKEN(To_a),
292
+ DEFINE_LOCALID_FROM_TOKEN(To_s),
293
+ DEFINE_LOCALID_FROM_TOKEN(To_i),
294
+ DEFINE_LOCALID_FROM_TOKEN(To_f),
295
+ DEFINE_LOCALID_FROM_TOKEN(To_r),
296
+ DEFINE_LOCALID_FROM_TOKEN(Bt),
297
+ DEFINE_LOCALID_FROM_TOKEN(Bt_locations),
298
+ DEFINE_LOCALID_FROM_TOKEN(Call),
299
+ DEFINE_LOCALID_FROM_TOKEN(Yield),
300
+ DEFINE_LOCALID_FROM_TOKEN(Mesg),
301
+ DEFINE_LOCALID_FROM_TOKEN(Exception),
302
+ DEFINE_LOCALID_FROM_TOKEN(Locals),
303
+ DEFINE_LOCALID_FROM_TOKEN(NOT),
304
+ DEFINE_LOCALID_FROM_TOKEN(AND),
305
+ DEFINE_LOCALID_FROM_TOKEN(OR),
306
+ DEFINE_LOCALID_FROM_TOKEN(Div),
307
+ DEFINE_LOCALID_FROM_TOKEN(Divmod),
308
+ DEFINE_LOCALID_FROM_TOKEN(Fdiv),
309
+ DEFINE_LOCALID_FROM_TOKEN(Quo),
310
+ DEFINE_LOCALID_FROM_TOKEN(Name),
311
+ DEFINE_LOCALID_FROM_TOKEN(Nil),
312
+ DEFINE_LOCALID_FROM_TOKEN(Path),
313
+ DEFINE_LOCALID_FROM_TOKEN(Pack),
314
+ DEFINE_LOCALID_FROM_TOKEN(Buffer),
315
+ DEFINE_LOCALID_FROM_TOKEN(Aborted),
316
+ DEFINE_LOCALID_FROM_TOKEN(Exited),
317
+ DEFINE_LOCALID_FROM_TOKEN(UScore),
318
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_1),
319
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_2),
320
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_3),
321
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_4),
322
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_5),
323
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_6),
324
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_7),
325
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_8),
326
+ DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_9),
327
+ DEFINE_LOCALID_FROM_TOKEN(It),
328
+ DEFINE_LOCALID_FROM_TOKEN(Default),
329
+ #undef DEFINE_LOCALID_FROM_TOKEN
330
+ /* LOCAL IDs }}} */
331
+
332
+ /* INSTANCE IDs {{{ */
333
+ #define DEFINE_INSTANCEID_FROM_TOKEN(n) id##n = TOKEN2INSTANCEID(t##n)
334
+ #undef DEFINE_INSTANCEID_FROM_TOKEN
335
+ /* INSTANCE IDs }}} */
336
+
337
+ /* GLOBAL IDs {{{ */
338
+ #define DEFINE_GLOBALID_FROM_TOKEN(n) id##n = TOKEN2GLOBALID(t##n)
339
+ DEFINE_GLOBALID_FROM_TOKEN(LASTLINE),
340
+ DEFINE_GLOBALID_FROM_TOKEN(BACKREF),
341
+ DEFINE_GLOBALID_FROM_TOKEN(ERROR_INFO),
342
+ #undef DEFINE_GLOBALID_FROM_TOKEN
343
+ /* GLOBAL IDs }}} */
344
+
345
+ /* CONST IDs {{{ */
346
+ #define DEFINE_CONSTID_FROM_TOKEN(n) id##n = TOKEN2CONSTID(t##n)
347
+ DEFINE_CONSTID_FROM_TOKEN(Ruby),
348
+ #undef DEFINE_CONSTID_FROM_TOKEN
349
+ /* CONST IDs }}} */
350
+
351
+ /* CLASS IDs {{{ */
352
+ #define DEFINE_CLASSID_FROM_TOKEN(n) id##n = TOKEN2CLASSID(t##n)
353
+ #undef DEFINE_CLASSID_FROM_TOKEN
354
+ /* CLASS IDs }}} */
355
+
356
+ /* ATTRSET IDs {{{ */
357
+ #define DEFINE_ATTRSETID_FROM_TOKEN(n) id##n = TOKEN2ATTRSETID(t##n)
358
+ #undef DEFINE_ATTRSETID_FROM_TOKEN
359
+ /* ATTRSET IDs }}} */
360
+
361
+ tLAST_OP_ID = tPRESERVED_ID_END-1,
362
+ idLAST_OP_ID = tLAST_OP_ID >> ID_SCOPE_SHIFT
363
+ };
364
+
365
+ #endif /* RUBY_ID_H */
@@ -0,0 +1,74 @@
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
+ int capa;
9
+ int num;
10
+ int used;
11
+ /* The table body is a single buffer laid out as:
12
+ *
13
+ * [VALUE values[capa] | id_key_t keys[capa] | collision bitmap]
14
+ *
15
+ * where the collision bitmap uses one mark bit per slot. */
16
+ void *buf;
17
+ };
18
+
19
+ /* compatible with ST_* */
20
+ enum rb_id_table_iterator_result {
21
+ ID_TABLE_CONTINUE = ST_CONTINUE,
22
+ ID_TABLE_STOP = ST_STOP,
23
+ ID_TABLE_DELETE = ST_DELETE,
24
+ ID_TABLE_REPLACE = ST_REPLACE,
25
+ ID_TABLE_ITERATOR_RESULT_END
26
+ };
27
+
28
+ struct rb_id_table *rb_id_table_create(size_t size);
29
+ struct rb_id_table *rb_id_table_init(struct rb_id_table *tbl, size_t capa);
30
+
31
+ void rb_id_table_free(struct rb_id_table *tbl);
32
+ void rb_id_table_free_items(struct rb_id_table *tbl);
33
+ void rb_id_table_clear(struct rb_id_table *tbl);
34
+
35
+ size_t rb_id_table_memsize(const struct rb_id_table *tbl);
36
+
37
+ int rb_id_table_insert(struct rb_id_table *tbl, ID id, VALUE val);
38
+ int rb_id_table_lookup(struct rb_id_table *tbl, ID id, VALUE *valp);
39
+ int rb_id_table_delete(struct rb_id_table *tbl, ID id);
40
+
41
+ typedef enum rb_id_table_iterator_result rb_id_table_update_value_callback_func_t(VALUE *val, void *data, int existing);
42
+ typedef enum rb_id_table_iterator_result rb_id_table_foreach_func_t(ID id, VALUE val, void *data);
43
+ typedef enum rb_id_table_iterator_result rb_id_table_foreach_values_func_t(VALUE val, void *data);
44
+ void rb_id_table_foreach(struct rb_id_table *tbl, rb_id_table_foreach_func_t *func, void *data);
45
+ void rb_id_table_foreach_values(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, void *data);
46
+ 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);
47
+
48
+ VALUE rb_managed_id_table_create(const rb_data_type_t *type, size_t capa);
49
+ VALUE rb_managed_id_table_new(size_t capa);
50
+ VALUE rb_managed_id_table_dup(VALUE table);
51
+ int rb_managed_id_table_insert(VALUE table, ID id, VALUE val);
52
+ int rb_managed_id_table_lookup(VALUE table, ID id, VALUE *valp);
53
+ size_t rb_managed_id_table_size(VALUE table);
54
+ void rb_managed_id_table_foreach(VALUE table, rb_id_table_foreach_func_t *func, void *data);
55
+ void rb_managed_id_table_foreach_values(VALUE table, rb_id_table_foreach_values_func_t *func, void *data);
56
+ int rb_managed_id_table_delete(VALUE table, ID id);
57
+
58
+ extern const rb_data_type_t rb_managed_id_table_type;
59
+
60
+ VALUE rb_marked_id_table_new(size_t capa);
61
+ int rb_marked_id_table_insert(VALUE table, ID id, VALUE val);
62
+ VALUE rb_marked_id_table_dup(VALUE table);
63
+
64
+ // alisases
65
+ #define rb_marked_id_table_size rb_managed_id_table_size
66
+ #define rb_marked_id_table_lookup rb_managed_id_table_lookup
67
+ #define rb_marked_id_table_foreach rb_managed_id_table_foreach
68
+ #define rb_marked_id_table_foreach_values rb_managed_id_table_foreach_values
69
+
70
+ RUBY_SYMBOL_EXPORT_BEGIN
71
+ size_t rb_id_table_size(const struct rb_id_table *tbl);
72
+ RUBY_SYMBOL_EXPORT_END
73
+
74
+ #endif /* RUBY_ID_TABLE_H */