debase-ruby_core_source 3.3.6 → 4.0.0.preview2

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 (306) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -0
  3. data/CHANGELOG.md +10 -0
  4. data/Rakefile +3 -1
  5. data/debase-ruby_core_source.gemspec +1 -0
  6. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/builtin.h +7 -1
  7. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/darray.h +1 -3
  8. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/id.h +5 -0
  9. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/insns.inc +2 -0
  10. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/insns_info.inc +310 -175
  11. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/basic_operators.h +1 -0
  12. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/bits.h +82 -0
  13. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/encoding.h +2 -0
  14. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/error.h +26 -0
  15. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/fixnum.h +1 -0
  16. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/gc.h +14 -6
  17. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/imemo.h +6 -1
  18. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/io.h +1 -1
  19. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/parse.h +2 -1
  20. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/proc.h +1 -0
  21. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/ractor.h +4 -0
  22. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/sanitizers.h +31 -39
  23. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/string.h +22 -10
  24. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/thread.h +23 -0
  25. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/vm.h +1 -1
  26. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/method.h +1 -0
  27. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/optunifs.inc +1 -1
  28. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/parse.h +2 -2
  29. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/ast.h +427 -3
  30. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/defines.h +8 -7
  31. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/diagnostic.h +1 -0
  32. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/extension.h +1 -1
  33. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/prism.h +47 -11
  34. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/version.h +2 -2
  35. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism_compile.h +5 -5
  36. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/ractor_core.h +6 -6
  37. data/lib/debase/ruby_core_source/ruby-3.4.0-p-1/revision.h +5 -0
  38. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/rubyparser.h +3 -2
  39. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/thread_pthread.h +0 -1
  40. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/version.h +1 -1
  41. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm.inc +151 -88
  42. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_core.h +40 -12
  43. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_sync.h +3 -3
  44. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vmtc.inc +2 -0
  45. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/yjit.h +1 -0
  46. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/builtin.h +7 -1
  47. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/darray.h +101 -14
  48. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/debug_counter.h +6 -4
  49. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/dln.h +1 -2
  50. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/eval_intern.h +7 -0
  51. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/id.h +16 -5
  52. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/id_table.h +15 -0
  53. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/insns.inc +49 -6
  54. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/insns_info.inc +2432 -721
  55. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/array.h +3 -0
  56. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/basic_operators.h +2 -0
  57. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/bignum.h +1 -0
  58. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/bits.h +82 -0
  59. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/box.h +81 -0
  60. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/class.h +805 -0
  61. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/cmdlineopt.h +3 -4
  62. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/concurrent_set.h +21 -0
  63. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/encoding.h +4 -1
  64. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/error.h +35 -0
  65. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/eval.h +8 -0
  66. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/fixnum.h +1 -0
  67. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/gc.h +54 -30
  68. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/hash.h +3 -0
  69. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/imemo.h +94 -32
  70. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/inits.h +4 -0
  71. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/io.h +30 -7
  72. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/load.h +2 -0
  73. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/numeric.h +1 -0
  74. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/object.h +1 -1
  75. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/parse.h +18 -4
  76. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/proc.h +1 -1
  77. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/ractor.h +4 -0
  78. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/re.h +7 -2
  79. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/sanitizers.h +88 -39
  80. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/set_table.h +70 -0
  81. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/signal.h +1 -0
  82. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/st.h +1 -1
  83. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/string.h +39 -18
  84. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/struct.h +38 -5
  85. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/symbol.h +4 -3
  86. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/thread.h +42 -9
  87. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/time.h +4 -1
  88. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/variable.h +13 -11
  89. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/vm.h +6 -7
  90. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal.h +0 -3
  91. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/iseq.h +19 -2
  92. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/known_errors.inc +103 -103
  93. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/method.h +18 -2
  94. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/node.h +14 -3
  95. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/optunifs.inc +1 -3
  96. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/parse.h +37 -36
  97. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/ast.h +2495 -507
  98. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/defines.h +61 -7
  99. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/diagnostic.h +31 -6
  100. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/extension.h +5 -5
  101. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/node.h +0 -21
  102. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/options.h +186 -6
  103. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/parser.h +85 -40
  104. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/prism.h +88 -16
  105. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/regexp.h +43 -0
  106. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/static_literals.h +3 -2
  107. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_buffer.h +18 -0
  108. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_char.h +1 -2
  109. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_constant_pool.h +0 -8
  110. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_integer.h +26 -15
  111. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_list.h +6 -0
  112. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_newline_list.h +11 -0
  113. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_string.h +39 -13
  114. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/version.h +3 -3
  115. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism_compile.h +30 -12
  116. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/ractor_core.h +47 -134
  117. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/regenc.h +9 -4
  118. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/regint.h +0 -5
  119. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/regparse.h +2 -2
  120. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/revision.h +5 -0
  121. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/ruby_atomic.h +66 -0
  122. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/rubyparser.h +214 -250
  123. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/shape.h +444 -0
  124. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/symbol.h +8 -10
  125. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/thread_pthread.h +36 -27
  126. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/variable.h +8 -20
  127. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm.inc +884 -344
  128. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_callinfo.h +110 -75
  129. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_core.h +220 -106
  130. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_exec.h +15 -4
  131. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_insnhelper.h +11 -6
  132. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_sync.h +23 -4
  133. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vmtc.inc +42 -6
  134. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/yjit.h +5 -3
  135. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/zjit.h +47 -0
  136. data/lib/debase/ruby_core_source/version.rb +1 -1
  137. data/lib/debase/ruby_core_source.rb +4 -2
  138. data/test/deduce_source_dir_test.rb +31 -0
  139. metadata +307 -293
  140. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/class.h +0 -283
  141. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/regexp.h +0 -33
  142. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string_list.h +0 -44
  143. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/revision.h +0 -5
  144. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/shape.h +0 -233
  145. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/revision.h +0 -5
  146. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit.h +0 -101
  147. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit_c.h +0 -165
  148. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ruby_atomic.h +0 -23
  149. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/addr2line.h +0 -0
  150. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/build_assert/build_assert.h +0 -0
  151. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/check_type/check_type.h +0 -0
  152. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/container_of/container_of.h +0 -0
  153. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/list/list.h +0 -0
  154. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/str/str.h +0 -0
  155. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/constant.h +0 -0
  156. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/debug_counter.h +0 -0
  157. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/dln.h +0 -0
  158. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/encindex.h +0 -0
  159. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/eval_intern.h +0 -0
  160. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/hrtime.h +0 -0
  161. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/id_table.h +0 -0
  162. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/array.h +0 -0
  163. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/bignum.h +0 -0
  164. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/class.h +0 -0
  165. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/cmdlineopt.h +0 -0
  166. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/compar.h +0 -0
  167. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/compile.h +0 -0
  168. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/compilers.h +0 -0
  169. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/complex.h +0 -0
  170. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/cont.h +0 -0
  171. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/dir.h +0 -0
  172. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/enc.h +0 -0
  173. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/enum.h +0 -0
  174. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/enumerator.h +0 -0
  175. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/eval.h +0 -0
  176. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/file.h +0 -0
  177. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/hash.h +0 -0
  178. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/inits.h +0 -0
  179. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/load.h +0 -0
  180. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/loadpath.h +0 -0
  181. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/math.h +0 -0
  182. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/missing.h +0 -0
  183. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/numeric.h +0 -0
  184. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/object.h +0 -0
  185. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/process.h +0 -0
  186. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/random.h +0 -0
  187. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/range.h +0 -0
  188. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/rational.h +0 -0
  189. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/re.h +0 -0
  190. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/ruby_parser.h +0 -0
  191. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/serial.h +0 -0
  192. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/signal.h +0 -0
  193. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/st.h +0 -0
  194. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/static_assert.h +0 -0
  195. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/struct.h +0 -0
  196. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/symbol.h +0 -0
  197. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/time.h +0 -0
  198. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/transcode.h +0 -0
  199. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/util.h +0 -0
  200. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/variable.h +0 -0
  201. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/warnings.h +0 -0
  202. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal.h +0 -0
  203. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/iseq.h +0 -0
  204. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/known_errors.inc +0 -0
  205. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/node.h +0 -0
  206. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/node_name.inc +0 -0
  207. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/optinsn.inc +0 -0
  208. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_bits.h +0 -0
  209. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_node.h +0 -0
  210. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_st.h +0 -0
  211. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_value.h +0 -0
  212. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/encoding.h +0 -0
  213. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/node.h +0 -0
  214. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/options.h +0 -0
  215. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/pack.h +0 -0
  216. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/parser.h +0 -0
  217. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/prettyprint.h +0 -0
  218. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/regexp.h +0 -0
  219. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/static_literals.h +0 -0
  220. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_buffer.h +0 -0
  221. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_char.h +0 -0
  222. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_constant_pool.h +0 -0
  223. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_integer.h +0 -0
  224. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_list.h +0 -0
  225. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_memchr.h +0 -0
  226. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_newline_list.h +0 -0
  227. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_string.h +0 -0
  228. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_strncasecmp.h +0 -0
  229. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_strpbrk.h +0 -0
  230. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/probes_helper.h +0 -0
  231. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/regenc.h +0 -0
  232. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/regint.h +0 -0
  233. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/regparse.h +0 -0
  234. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/rjit.h +0 -0
  235. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/rjit_c.h +0 -0
  236. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ruby_assert.h +0 -0
  237. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ruby_atomic.h +0 -0
  238. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/shape.h +0 -0
  239. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/siphash.h +0 -0
  240. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/symbol.h +0 -0
  241. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/thread_none.h +0 -0
  242. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/thread_win32.h +0 -0
  243. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/timev.h +0 -0
  244. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/transcode_data.h +0 -0
  245. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/variable.h +0 -0
  246. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_call_iseq_optimized.inc +0 -0
  247. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_callinfo.h +0 -0
  248. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_debug.h +0 -0
  249. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_exec.h +0 -0
  250. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_insnhelper.h +0 -0
  251. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_opts.h +0 -0
  252. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/addr2line.h +0 -0
  253. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/build_assert/build_assert.h +0 -0
  254. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/check_type/check_type.h +0 -0
  255. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/container_of/container_of.h +0 -0
  256. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/list/list.h +0 -0
  257. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/str/str.h +0 -0
  258. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/constant.h +0 -0
  259. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/encindex.h +0 -0
  260. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/hrtime.h +0 -0
  261. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/compar.h +0 -0
  262. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/compile.h +0 -0
  263. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/compilers.h +0 -0
  264. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/complex.h +0 -0
  265. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/cont.h +0 -0
  266. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/dir.h +0 -0
  267. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/enc.h +0 -0
  268. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/enum.h +0 -0
  269. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/enumerator.h +0 -0
  270. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/file.h +0 -0
  271. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/loadpath.h +0 -0
  272. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/math.h +0 -0
  273. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/missing.h +0 -0
  274. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/process.h +0 -0
  275. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/random.h +0 -0
  276. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/range.h +0 -0
  277. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/rational.h +0 -0
  278. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/ruby_parser.h +0 -0
  279. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/serial.h +0 -0
  280. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/static_assert.h +0 -0
  281. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/transcode.h +0 -0
  282. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/util.h +0 -0
  283. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/warnings.h +0 -0
  284. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/node_name.inc +0 -0
  285. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/optinsn.inc +0 -0
  286. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_bits.h +0 -0
  287. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_node.h +0 -0
  288. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_st.h +0 -0
  289. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_value.h +0 -0
  290. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/encoding.h +0 -0
  291. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/pack.h +0 -0
  292. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/prettyprint.h +0 -0
  293. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_memchr.h +0 -0
  294. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_strncasecmp.h +0 -0
  295. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_strpbrk.h +0 -0
  296. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/probes_helper.h +0 -0
  297. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ruby_assert.h +0 -0
  298. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/siphash.h +0 -0
  299. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/thread_none.h +0 -0
  300. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/thread_win32.h +0 -0
  301. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/timev.h +0 -0
  302. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/transcode_data.h +0 -0
  303. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/version.h +0 -0
  304. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_call_iseq_optimized.inc +0 -0
  305. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_debug.h +0 -0
  306. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_opts.h +0 -0
@@ -70,7 +70,30 @@
70
70
  #define RUBY_ASSERT_MUTEX_OWNED(mutex) VM_ASSERT(rb_mutex_owned_p(mutex))
71
71
 
72
72
  #if defined(RUBY_ASSERT_CRITICAL_SECTION)
73
- // TODO add documentation
73
+ /*
74
+ # Critical Section Assertions
75
+
76
+ These assertions are used to ensure that context switching does not occur between two points in the code. In theory,
77
+ such code should already be protected by a mutex, but these assertions are used to ensure that the mutex is held.
78
+
79
+ The specific case where it can be useful is where a mutex is held further up the call stack, and the code in question
80
+ may not directly hold the mutex. In this case, the critical section assertions can be used to ensure that the mutex is
81
+ held by someone else.
82
+
83
+ These assertions are only enabled when RUBY_ASSERT_CRITICAL_SECTION is defined, which is only defined if VM_CHECK_MODE
84
+ is set.
85
+
86
+ ## Example Usage
87
+
88
+ ```c
89
+ RUBY_ASSERT_CRITICAL_SECTION_ENTER();
90
+ // ... some code which does not invoke rb_vm_check_ints() ...
91
+ RUBY_ASSERT_CRITICAL_SECTION_LEAVE();
92
+ ```
93
+
94
+ If `rb_vm_check_ints()` is called between the `RUBY_ASSERT_CRITICAL_SECTION_ENTER()` and
95
+ `RUBY_ASSERT_CRITICAL_SECTION_LEAVE()`, a failed assertion will result.
96
+ */
74
97
  extern int ruby_assert_critical_section_entered;
75
98
  #define RUBY_ASSERT_CRITICAL_SECTION_ENTER() do{ruby_assert_critical_section_entered += 1;}while(false)
76
99
  #define RUBY_ASSERT_CRITICAL_SECTION_LEAVE() do{VM_ASSERT(ruby_assert_critical_section_entered > 0);ruby_assert_critical_section_entered -= 1;}while(false)
@@ -230,6 +253,8 @@ union ic_serial_entry {
230
253
  VALUE data[2];
231
254
  };
232
255
 
256
+ #define IMEMO_CONST_CACHE_SHAREABLE IMEMO_FL_USER0
257
+
233
258
  // imemo_constcache
234
259
  struct iseq_inline_constant_cache_entry {
235
260
  VALUE flags;
@@ -370,6 +395,8 @@ enum rb_builtin_attr {
370
395
  BUILTIN_ATTR_SINGLE_NOARG_LEAF = 0x02,
371
396
  // This attribute signals JIT to duplicate the iseq for each block iseq so that its `yield` will be monomorphic.
372
397
  BUILTIN_ATTR_INLINE_BLOCK = 0x04,
398
+ // The iseq acts like a C method in backtraces.
399
+ BUILTIN_ATTR_C_TRACE = 0x08,
373
400
  };
374
401
 
375
402
  typedef VALUE (*rb_jit_func_t)(struct rb_execution_context_struct *, struct rb_control_frame_struct *);
@@ -579,6 +606,12 @@ rb_iseq_check(const rb_iseq_t *iseq)
579
606
  return iseq;
580
607
  }
581
608
 
609
+ static inline bool
610
+ rb_iseq_attr_p(const rb_iseq_t *iseq, enum rb_builtin_attr attr)
611
+ {
612
+ return (ISEQ_BODY(iseq)->builtin_attrs & attr) == attr;
613
+ }
614
+
582
615
  static inline const rb_iseq_t *
583
616
  def_iseq_ptr(rb_method_definition_t *def)
584
617
  {
@@ -766,13 +799,13 @@ typedef struct rb_vm_struct {
766
799
  struct rb_id_table *negative_cme_table;
767
800
  st_table *overloaded_cme_table; // cme -> overloaded_cme
768
801
  st_table *unused_block_warning_table;
769
- bool unused_block_warning_strict;
770
802
 
771
803
  // This id table contains a mapping from ID to ICs. It does this with ID
772
804
  // keys and nested st_tables as values. The nested tables have ICs as keys
773
805
  // and Qtrue as values. It is used when inline constant caches need to be
774
806
  // invalidated or ISEQs are being freed.
775
807
  struct rb_id_table *constant_cache;
808
+ ID inserting_constant_cache_id;
776
809
 
777
810
  #ifndef VM_GLOBAL_CC_CACHE_TABLE_SIZE
778
811
  #define VM_GLOBAL_CC_CACHE_TABLE_SIZE 1023
@@ -1124,6 +1157,7 @@ typedef struct rb_thread_struct {
1124
1157
  struct rb_unblock_callback unblock;
1125
1158
  VALUE locking_mutex;
1126
1159
  struct rb_mutex_struct *keeping_mutexes;
1160
+ struct ccan_list_head interrupt_exec_tasks;
1127
1161
 
1128
1162
  struct rb_waiting_list *join_list;
1129
1163
 
@@ -1280,6 +1314,7 @@ enum vm_opt_newarray_send_type {
1280
1314
  VM_OPT_NEWARRAY_SEND_HASH = 3,
1281
1315
  VM_OPT_NEWARRAY_SEND_PACK = 4,
1282
1316
  VM_OPT_NEWARRAY_SEND_PACK_BUFFER = 5,
1317
+ VM_OPT_NEWARRAY_SEND_INCLUDE_P = 6,
1283
1318
  };
1284
1319
 
1285
1320
  enum vm_special_object_type {
@@ -1487,22 +1522,13 @@ VM_ENV_ESCAPED_P(const VALUE *ep)
1487
1522
  return VM_ENV_FLAGS(ep, VM_ENV_FLAG_ESCAPED) ? 1 : 0;
1488
1523
  }
1489
1524
 
1490
- #if VM_CHECK_MODE > 0
1491
- static inline int
1492
- vm_assert_env(VALUE obj)
1493
- {
1494
- VM_ASSERT(imemo_type_p(obj, imemo_env));
1495
- return 1;
1496
- }
1497
- #endif
1498
-
1499
1525
  RBIMPL_ATTR_NONNULL((1))
1500
1526
  static inline VALUE
1501
1527
  VM_ENV_ENVVAL(const VALUE *ep)
1502
1528
  {
1503
1529
  VALUE envval = ep[VM_ENV_DATA_INDEX_ENV];
1504
1530
  VM_ASSERT(VM_ENV_ESCAPED_P(ep));
1505
- VM_ASSERT(vm_assert_env(envval));
1531
+ VM_ASSERT(envval == Qundef || imemo_type_p(envval, imemo_env));
1506
1532
  return envval;
1507
1533
  }
1508
1534
 
@@ -1945,6 +1971,8 @@ rb_ec_vm_ptr(const rb_execution_context_t *ec)
1945
1971
  }
1946
1972
  }
1947
1973
 
1974
+ NOINLINE(struct rb_execution_context_struct *rb_current_ec_noinline(void));
1975
+
1948
1976
  static inline rb_execution_context_t *
1949
1977
  rb_current_execution_context(bool expect_ec)
1950
1978
  {
@@ -21,9 +21,9 @@ void rb_vm_lock_body(LOCATION_ARGS);
21
21
  void rb_vm_unlock_body(LOCATION_ARGS);
22
22
 
23
23
  struct rb_ractor_struct;
24
- void rb_vm_lock_enter_body_cr(struct rb_ractor_struct *cr, unsigned int *lev APPEND_LOCATION_ARGS);
25
- void rb_vm_lock_enter_body_nb(unsigned int *lev APPEND_LOCATION_ARGS);
26
- void rb_vm_lock_enter_body(unsigned int *lev APPEND_LOCATION_ARGS);
24
+ NOINLINE(void rb_vm_lock_enter_body_cr(struct rb_ractor_struct *cr, unsigned int *lev APPEND_LOCATION_ARGS));
25
+ NOINLINE(void rb_vm_lock_enter_body_nb(unsigned int *lev APPEND_LOCATION_ARGS));
26
+ NOINLINE(void rb_vm_lock_enter_body(unsigned int *lev APPEND_LOCATION_ARGS));
27
27
  void rb_vm_lock_leave_body(unsigned int *lev APPEND_LOCATION_ARGS);
28
28
  void rb_vm_barrier(void);
29
29
 
@@ -100,6 +100,7 @@ static const void *const insns_address_table[] = {
100
100
  LABEL_PTR(opt_str_freeze),
101
101
  LABEL_PTR(opt_nil_p),
102
102
  LABEL_PTR(opt_str_uminus),
103
+ LABEL_PTR(opt_duparray_send),
103
104
  LABEL_PTR(opt_newarray_send),
104
105
  LABEL_PTR(invokesuper),
105
106
  LABEL_PTR(invokesuperforward),
@@ -209,6 +210,7 @@ static const void *const insns_address_table[] = {
209
210
  LABEL_PTR(trace_opt_str_freeze),
210
211
  LABEL_PTR(trace_opt_nil_p),
211
212
  LABEL_PTR(trace_opt_str_uminus),
213
+ LABEL_PTR(trace_opt_duparray_send),
212
214
  LABEL_PTR(trace_opt_newarray_send),
213
215
  LABEL_PTR(trace_invokesuper),
214
216
  LABEL_PTR(trace_invokesuperforward),
@@ -37,6 +37,7 @@ void rb_yjit_collect_binding_alloc(void);
37
37
  void rb_yjit_collect_binding_set(void);
38
38
  void rb_yjit_compile_iseq(const rb_iseq_t *iseq, rb_execution_context_t *ec, bool jit_exception);
39
39
  void rb_yjit_init(bool yjit_enabled);
40
+ void rb_yjit_free_at_exit();
40
41
  void rb_yjit_bop_redefined(int redefined_flag, enum ruby_basic_operators bop);
41
42
  void rb_yjit_constant_state_changed(ID id);
42
43
  void rb_yjit_iseq_mark(void *payload);
@@ -15,7 +15,7 @@ struct rb_builtin_function {
15
15
 
16
16
  #define RB_BUILTIN_FUNCTION(_i, _name, _fname, _arity) {\
17
17
  .name = _i < 0 ? NULL : #_name, \
18
- .func_ptr = (void *)_fname, \
18
+ .func_ptr = (void *)(uintptr_t)_fname, \
19
19
  .argc = _arity, \
20
20
  .index = _i, \
21
21
  }
@@ -106,6 +106,12 @@ rb_vm_lvar(rb_execution_context_t *ec, int index)
106
106
  #endif
107
107
  }
108
108
 
109
+ static inline VALUE
110
+ rb_builtin_basic_definition_p(rb_execution_context_t *ec, VALUE klass, VALUE id_sym)
111
+ {
112
+ return rb_method_basic_definition_p(klass, rb_sym2id(id_sym)) ? Qtrue : Qfalse;
113
+ }
114
+
109
115
  #define LOCAL_PTR(local) local ## __ptr
110
116
 
111
117
  // dump/load
@@ -5,8 +5,6 @@
5
5
  #include <stddef.h>
6
6
  #include <stdlib.h>
7
7
 
8
- #include "internal/bits.h"
9
-
10
8
  // Type for a dynamic array. Use to declare a dynamic array.
11
9
  // It is a pointer so it fits in st_table nicely. Designed
12
10
  // to be fairly type-safe.
@@ -44,18 +42,36 @@
44
42
  * void rb_darray_append(rb_darray(T) *ptr_to_ary, T element);
45
43
  */
46
44
  #define rb_darray_append(ptr_to_ary, element) \
47
- rb_darray_append_impl(ptr_to_ary, element)
45
+ rb_darray_append_impl(ptr_to_ary, element, rb_darray_realloc_mul_add)
46
+
47
+ #define rb_darray_append_without_gc(ptr_to_ary, element) \
48
+ rb_darray_append_impl(ptr_to_ary, element, rb_darray_realloc_mul_add_without_gc)
48
49
 
49
- #define rb_darray_append_impl(ptr_to_ary, element) do { \
50
+ #define rb_darray_append_impl(ptr_to_ary, element, realloc_func) do { \
50
51
  rb_darray_ensure_space((ptr_to_ary), \
51
52
  sizeof(**(ptr_to_ary)), \
52
- sizeof((*(ptr_to_ary))->data[0])); \
53
+ sizeof((*(ptr_to_ary))->data[0]), \
54
+ realloc_func); \
53
55
  rb_darray_set(*(ptr_to_ary), \
54
56
  (*(ptr_to_ary))->meta.size, \
55
57
  (element)); \
56
58
  (*(ptr_to_ary))->meta.size++; \
57
59
  } while (0)
58
60
 
61
+ #define rb_darray_insert_without_gc(ptr_to_ary, idx, element) do { \
62
+ rb_darray_ensure_space((ptr_to_ary), \
63
+ sizeof(**(ptr_to_ary)), \
64
+ sizeof((*(ptr_to_ary))->data[0]), \
65
+ rb_darray_realloc_mul_add_without_gc); \
66
+ MEMMOVE( \
67
+ rb_darray_ref(*(ptr_to_ary), idx + 1), \
68
+ rb_darray_ref(*(ptr_to_ary), idx), \
69
+ (*(ptr_to_ary))->data[0], \
70
+ rb_darray_size(*(ptr_to_ary)) - idx); \
71
+ rb_darray_set(*(ptr_to_ary), idx, element); \
72
+ (*(ptr_to_ary))->meta.size++; \
73
+ } while (0)
74
+
59
75
  // Iterate over items of the array in a for loop
60
76
  //
61
77
  #define rb_darray_foreach(ary, idx_name, elem_ptr_var) \
@@ -74,15 +90,21 @@
74
90
  * void rb_darray_make(rb_darray(T) *ptr_to_ary, size_t size);
75
91
  */
76
92
  #define rb_darray_make(ptr_to_ary, size) \
77
- rb_darray_make_impl((ptr_to_ary), size, sizeof(**(ptr_to_ary)), sizeof((*(ptr_to_ary))->data[0]))
93
+ rb_darray_make_impl((ptr_to_ary), size, sizeof(**(ptr_to_ary)), \
94
+ sizeof((*(ptr_to_ary))->data[0]), rb_darray_calloc_mul_add)
95
+
96
+ #define rb_darray_make_without_gc(ptr_to_ary, size) \
97
+ rb_darray_make_impl((ptr_to_ary), size, sizeof(**(ptr_to_ary)), \
98
+ sizeof((*(ptr_to_ary))->data[0]), rb_darray_calloc_mul_add_without_gc)
78
99
 
79
100
  /* Resize the darray to a new capacity. The new capacity must be greater than
80
101
  * or equal to the size of the darray.
81
102
  *
82
103
  * void rb_darray_resize_capa(rb_darray(T) *ptr_to_ary, size_t capa);
83
104
  */
84
- #define rb_darray_resize_capa(ptr_to_ary, capa) \
85
- rb_darray_resize_capa_impl((ptr_to_ary), capa, sizeof(**(ptr_to_ary)), sizeof((*(ptr_to_ary))->data[0]))
105
+ #define rb_darray_resize_capa_without_gc(ptr_to_ary, capa) \
106
+ rb_darray_resize_capa_impl((ptr_to_ary), capa, sizeof(**(ptr_to_ary)), \
107
+ sizeof((*(ptr_to_ary))->data[0]), rb_darray_realloc_mul_add_without_gc)
86
108
 
87
109
  #define rb_darray_data_ptr(ary) ((ary)->data)
88
110
 
@@ -111,6 +133,14 @@ rb_darray_size(const void *ary)
111
133
  return meta ? meta->size : 0;
112
134
  }
113
135
 
136
+
137
+ static inline void
138
+ rb_darray_pop(void *ary, size_t count)
139
+ {
140
+ rb_darray_meta_t *meta = ary;
141
+ meta->size -= count;
142
+ }
143
+
114
144
  // Get the capacity of the dynamic array.
115
145
  //
116
146
  static inline size_t
@@ -127,15 +157,70 @@ rb_darray_free(void *ary)
127
157
  xfree(ary);
128
158
  }
129
159
 
160
+ static inline void
161
+ rb_darray_free_without_gc(void *ary)
162
+ {
163
+ free(ary);
164
+ }
165
+
166
+ /* Internal function. Like rb_xcalloc_mul_add. */
167
+ static inline void *
168
+ rb_darray_calloc_mul_add(size_t x, size_t y, size_t z)
169
+ {
170
+ size_t size = rbimpl_size_add_or_raise(rbimpl_size_mul_or_raise(x, y), z);
171
+
172
+ void *ptr = xcalloc(1, size);
173
+ RUBY_ASSERT(ptr != NULL);
174
+
175
+ return ptr;
176
+ }
177
+
178
+ /* Internal function. Like rb_xcalloc_mul_add but does not trigger GC. */
179
+ static inline void *
180
+ rb_darray_calloc_mul_add_without_gc(size_t x, size_t y, size_t z)
181
+ {
182
+ size_t size = rbimpl_size_add_or_raise(rbimpl_size_mul_or_raise(x, y), z);
183
+
184
+ void *ptr = calloc(1, size);
185
+ if (ptr == NULL) rb_bug("rb_darray_calloc_mul_add_without_gc: failed");
186
+
187
+ return ptr;
188
+ }
189
+
190
+ /* Internal function. Like rb_xrealloc_mul_add. */
191
+ static inline void *
192
+ rb_darray_realloc_mul_add(void *orig_ptr, size_t x, size_t y, size_t z)
193
+ {
194
+ size_t size = rbimpl_size_add_or_raise(rbimpl_size_mul_or_raise(x, y), z);
195
+
196
+ void *ptr = xrealloc(orig_ptr, size);
197
+ RUBY_ASSERT(ptr != NULL);
198
+
199
+ return ptr;
200
+ }
201
+
202
+ /* Internal function. Like rb_xrealloc_mul_add but does not trigger GC. */
203
+ static inline void *
204
+ rb_darray_realloc_mul_add_without_gc(void *orig_ptr, size_t x, size_t y, size_t z)
205
+ {
206
+ size_t size = rbimpl_size_add_or_raise(rbimpl_size_mul_or_raise(x, y), z);
207
+
208
+ void *ptr = realloc(orig_ptr, size);
209
+ if (ptr == NULL) rb_bug("rb_darray_realloc_mul_add_without_gc: failed");
210
+
211
+ return ptr;
212
+ }
213
+
130
214
  /* Internal function. Resizes the capacity of a darray. The new capacity must
131
215
  * be greater than or equal to the size of the darray. */
132
216
  static inline void
133
- rb_darray_resize_capa_impl(void *ptr_to_ary, size_t new_capa, size_t header_size, size_t element_size)
217
+ rb_darray_resize_capa_impl(void *ptr_to_ary, size_t new_capa, size_t header_size, size_t element_size,
218
+ void *(*realloc_mul_add_impl)(void *, size_t, size_t, size_t))
134
219
  {
135
220
  rb_darray_meta_t **ptr_to_ptr_to_meta = ptr_to_ary;
136
221
  rb_darray_meta_t *meta = *ptr_to_ptr_to_meta;
137
222
 
138
- rb_darray_meta_t *new_ary = xrealloc(meta, new_capa * element_size + header_size);
223
+ rb_darray_meta_t *new_ary = realloc_mul_add_impl(meta, new_capa, element_size, header_size);
139
224
 
140
225
  if (meta == NULL) {
141
226
  /* First allocation. Initialize size. On subsequence allocations
@@ -156,7 +241,8 @@ rb_darray_resize_capa_impl(void *ptr_to_ary, size_t new_capa, size_t header_size
156
241
  // Ensure there is space for one more element.
157
242
  // Note: header_size can be bigger than sizeof(rb_darray_meta_t) when T is __int128_t, for example.
158
243
  static inline void
159
- rb_darray_ensure_space(void *ptr_to_ary, size_t header_size, size_t element_size)
244
+ rb_darray_ensure_space(void *ptr_to_ary, size_t header_size, size_t element_size,
245
+ void *(*realloc_mul_add_impl)(void *, size_t, size_t, size_t))
160
246
  {
161
247
  rb_darray_meta_t **ptr_to_ptr_to_meta = ptr_to_ary;
162
248
  rb_darray_meta_t *meta = *ptr_to_ptr_to_meta;
@@ -166,11 +252,12 @@ rb_darray_ensure_space(void *ptr_to_ary, size_t header_size, size_t element_size
166
252
  // Double the capacity
167
253
  size_t new_capa = current_capa == 0 ? 1 : current_capa * 2;
168
254
 
169
- rb_darray_resize_capa_impl(ptr_to_ary, new_capa, header_size, element_size);
255
+ rb_darray_resize_capa_impl(ptr_to_ary, new_capa, header_size, element_size, realloc_mul_add_impl);
170
256
  }
171
257
 
172
258
  static inline void
173
- rb_darray_make_impl(void *ptr_to_ary, size_t array_size, size_t header_size, size_t element_size)
259
+ rb_darray_make_impl(void *ptr_to_ary, size_t array_size, size_t header_size, size_t element_size,
260
+ void *(*calloc_mul_add_impl)(size_t, size_t, size_t))
174
261
  {
175
262
  rb_darray_meta_t **ptr_to_ptr_to_meta = ptr_to_ary;
176
263
  if (array_size == 0) {
@@ -178,7 +265,7 @@ rb_darray_make_impl(void *ptr_to_ary, size_t array_size, size_t header_size, siz
178
265
  return;
179
266
  }
180
267
 
181
- rb_darray_meta_t *meta = xcalloc(array_size * element_size + header_size, 1);
268
+ rb_darray_meta_t *meta = calloc_mul_add_impl(array_size, element_size, header_size);
182
269
 
183
270
  meta->size = array_size;
184
271
  meta->capa = array_size;
@@ -49,7 +49,7 @@ RB_DEBUG_COUNTER(cc_temp) // dummy CC (stack-allocated)
49
49
  RB_DEBUG_COUNTER(cc_found_in_ccs) // count for CC lookup success in CCS
50
50
  RB_DEBUG_COUNTER(cc_not_found_in_ccs) // count for CC lookup success in CCS
51
51
 
52
- RB_DEBUG_COUNTER(cc_ent_invalidate) // count for invalidating cc (cc->klass = 0)
52
+ RB_DEBUG_COUNTER(cc_ent_invalidate) // count for invalidating cc (cc->klass = Qundef)
53
53
  RB_DEBUG_COUNTER(cc_cme_invalidate) // count for invalidating CME
54
54
 
55
55
  RB_DEBUG_COUNTER(cc_invalidate_leaf) // count for invalidating klass if klass has no-subclasses
@@ -305,16 +305,18 @@ RB_DEBUG_COUNTER(obj_imemo_ment)
305
305
  RB_DEBUG_COUNTER(obj_imemo_iseq)
306
306
  RB_DEBUG_COUNTER(obj_imemo_env)
307
307
  RB_DEBUG_COUNTER(obj_imemo_tmpbuf)
308
- RB_DEBUG_COUNTER(obj_imemo_ast)
309
308
  RB_DEBUG_COUNTER(obj_imemo_cref)
310
309
  RB_DEBUG_COUNTER(obj_imemo_svar)
311
310
  RB_DEBUG_COUNTER(obj_imemo_throw_data)
312
311
  RB_DEBUG_COUNTER(obj_imemo_ifunc)
313
312
  RB_DEBUG_COUNTER(obj_imemo_memo)
314
- RB_DEBUG_COUNTER(obj_imemo_parser_strterm)
315
313
  RB_DEBUG_COUNTER(obj_imemo_callinfo)
316
314
  RB_DEBUG_COUNTER(obj_imemo_callcache)
317
315
  RB_DEBUG_COUNTER(obj_imemo_constcache)
316
+ RB_DEBUG_COUNTER(obj_imemo_fields)
317
+
318
+ RB_DEBUG_COUNTER(opt_new_hit)
319
+ RB_DEBUG_COUNTER(opt_new_miss)
318
320
 
319
321
  /* ar_table */
320
322
  RB_DEBUG_COUNTER(artable_hint_hit)
@@ -356,7 +358,7 @@ RB_DEBUG_COUNTER(load_path_is_not_realpath)
356
358
 
357
359
  enum rb_debug_counter_type {
358
360
  #define RB_DEBUG_COUNTER(name) RB_DEBUG_COUNTER_##name,
359
- #include __FILE__
361
+ #include "debug_counter.h"
360
362
  RB_DEBUG_COUNTER_MAX
361
363
  #undef RB_DEBUG_COUNTER
362
364
  };
@@ -22,11 +22,10 @@ RUBY_SYMBOL_EXPORT_BEGIN
22
22
  #define DLN_FIND_EXTRA_ARG_DECL
23
23
  #endif
24
24
 
25
- bool dln_supported_p(void);
26
25
  char *dln_find_exe_r(const char*,const char*,char*,size_t DLN_FIND_EXTRA_ARG_DECL);
27
26
  char *dln_find_file_r(const char*,const char*,char*,size_t DLN_FIND_EXTRA_ARG_DECL);
28
27
  void *dln_load(const char*);
29
- void *dln_open(const char *file, char *error, size_t size);
28
+ void *dln_load_feature(const char*, const char*);
30
29
  void *dln_symbol(void*,const char*);
31
30
 
32
31
  RUBY_SYMBOL_EXPORT_END
@@ -296,10 +296,17 @@ VALUE rb_vm_make_jump_tag_but_local_jump(enum ruby_tag_type state, VALUE val);
296
296
  rb_cref_t *rb_vm_cref(void);
297
297
  rb_cref_t *rb_vm_cref_replace_with_duplicated_cref(void);
298
298
  VALUE rb_vm_call_cfunc(VALUE recv, VALUE (*func)(VALUE), VALUE arg, VALUE block_handler, VALUE filename);
299
+ VALUE rb_vm_call_cfunc_in_box(VALUE recv, VALUE (*func)(VALUE, VALUE), VALUE arg1, VALUE arg2, VALUE filename, const rb_box_t *box);
300
+ void rb_vm_frame_flag_set_box_require(const rb_execution_context_t *ec);
301
+ const rb_box_t *rb_vm_current_box(const rb_execution_context_t *ec);
302
+ const rb_box_t *rb_vm_caller_box(const rb_execution_context_t *ec);
303
+ const rb_box_t *rb_vm_loading_box(const rb_execution_context_t *ec);
299
304
  void rb_vm_set_progname(VALUE filename);
300
305
  VALUE rb_vm_cbase(void);
301
306
 
302
307
  /* vm_backtrace.c */
308
+ #define RUBY_BACKTRACE_START 0
309
+ #define RUBY_ALL_BACKTRACE_LINES -1
303
310
  VALUE rb_ec_backtrace_object(const rb_execution_context_t *ec);
304
311
  VALUE rb_ec_backtrace_str_ary(const rb_execution_context_t *ec, long lev, long n);
305
312
  VALUE rb_ec_backtrace_location_ary(const rb_execution_context_t *ec, long lev, long n, bool skip_internal);
@@ -1,4 +1,4 @@
1
- /* DO NOT EDIT THIS FILE DIRECTLY */
1
+ /* DO NOT EDIT THIS FILE DIRECTLY: source is at template/id.h.tmpl */
2
2
  /**********************************************************************
3
3
 
4
4
  id.h -
@@ -14,15 +14,14 @@
14
14
  #define RUBY_ID_H
15
15
 
16
16
  enum ruby_id_types {
17
- RUBY_ID_STATIC_SYM = 0x01,
18
17
  RUBY_ID_LOCAL = 0x00,
18
+ RUBY_ID_STATIC_SYM = 0x01,
19
19
  RUBY_ID_INSTANCE = (0x01<<1),
20
20
  RUBY_ID_GLOBAL = (0x03<<1),
21
21
  RUBY_ID_ATTRSET = (0x04<<1),
22
22
  RUBY_ID_CONST = (0x05<<1),
23
23
  RUBY_ID_CLASS = (0x06<<1),
24
- RUBY_ID_JUNK = (0x07<<1),
25
- RUBY_ID_INTERNAL = RUBY_ID_JUNK,
24
+ RUBY_ID_INTERNAL = (0x07<<1),
26
25
  RUBY_ID_SCOPE_SHIFT = 4,
27
26
  RUBY_ID_SCOPE_MASK = (~(~0U<<(RUBY_ID_SCOPE_SHIFT-1))<<1)
28
27
  };
@@ -36,7 +35,6 @@ enum ruby_id_types {
36
35
  #define ID_ATTRSET RUBY_ID_ATTRSET
37
36
  #define ID_CONST RUBY_ID_CONST
38
37
  #define ID_CLASS RUBY_ID_CLASS
39
- #define ID_JUNK RUBY_ID_JUNK
40
38
  #define ID_INTERNAL RUBY_ID_INTERNAL
41
39
 
42
40
  #define symIFUNC ID2SYM(idIFUNC)
@@ -110,6 +108,7 @@ enum ruby_method_ids {
110
108
  idANDDOT = RUBY_TOKEN(ANDDOT),
111
109
  tPRESERVED_ID_BEGIN = 150,
112
110
  idNilP,
111
+ idIncludeP,
113
112
  idNULL,
114
113
  idEmptyP,
115
114
  idEqlP,
@@ -139,6 +138,7 @@ enum ruby_method_ids {
139
138
  tInspect,
140
139
  tIntern,
141
140
  tObject_id,
141
+ t__id__,
142
142
  tConst_added,
143
143
  tConst_missing,
144
144
  tMethodMissing,
@@ -190,6 +190,10 @@ enum ruby_method_ids {
190
190
  tName,
191
191
  tNil,
192
192
  tPath,
193
+ tPack,
194
+ tBuffer,
195
+ tAborted,
196
+ tExited,
193
197
  tUScore,
194
198
  tNUMPARAM_1,
195
199
  tNUMPARAM_2,
@@ -219,6 +223,7 @@ enum ruby_method_ids {
219
223
 
220
224
  /* CONST tokens {{{ */
221
225
  tTOKEN_CONST_BEGIN = tTOKEN_GLOBAL_END-1,
226
+ tRuby,
222
227
  tTOKEN_CONST_END,
223
228
  /* CONST tokens }}} */
224
229
 
@@ -243,6 +248,7 @@ enum ruby_method_ids {
243
248
  DEFINE_LOCALID_FROM_TOKEN(Inspect),
244
249
  DEFINE_LOCALID_FROM_TOKEN(Intern),
245
250
  DEFINE_LOCALID_FROM_TOKEN(Object_id),
251
+ DEFINE_LOCALID_FROM_TOKEN(__id__),
246
252
  DEFINE_LOCALID_FROM_TOKEN(Const_added),
247
253
  DEFINE_LOCALID_FROM_TOKEN(Const_missing),
248
254
  DEFINE_LOCALID_FROM_TOKEN(MethodMissing),
@@ -294,6 +300,10 @@ enum ruby_method_ids {
294
300
  DEFINE_LOCALID_FROM_TOKEN(Name),
295
301
  DEFINE_LOCALID_FROM_TOKEN(Nil),
296
302
  DEFINE_LOCALID_FROM_TOKEN(Path),
303
+ DEFINE_LOCALID_FROM_TOKEN(Pack),
304
+ DEFINE_LOCALID_FROM_TOKEN(Buffer),
305
+ DEFINE_LOCALID_FROM_TOKEN(Aborted),
306
+ DEFINE_LOCALID_FROM_TOKEN(Exited),
297
307
  DEFINE_LOCALID_FROM_TOKEN(UScore),
298
308
  DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_1),
299
309
  DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_2),
@@ -323,6 +333,7 @@ enum ruby_method_ids {
323
333
 
324
334
  /* CONST IDs {{{ */
325
335
  #define DEFINE_CONSTID_FROM_TOKEN(n) id##n = TOKEN2CONSTID(t##n)
336
+ DEFINE_CONSTID_FROM_TOKEN(Ruby),
326
337
  #undef DEFINE_CONSTID_FROM_TOKEN
327
338
  /* CONST IDs }}} */
328
339
 
@@ -16,7 +16,10 @@ enum rb_id_table_iterator_result {
16
16
  };
17
17
 
18
18
  struct rb_id_table *rb_id_table_create(size_t size);
19
+ struct rb_id_table *rb_id_table_init(struct rb_id_table *tbl, size_t capa);
20
+
19
21
  void rb_id_table_free(struct rb_id_table *tbl);
22
+ void rb_id_table_free_items(struct rb_id_table *tbl);
20
23
  void rb_id_table_clear(struct rb_id_table *tbl);
21
24
 
22
25
  size_t rb_id_table_memsize(const struct rb_id_table *tbl);
@@ -32,6 +35,18 @@ void rb_id_table_foreach(struct rb_id_table *tbl, rb_id_table_foreach_func_t *fu
32
35
  void rb_id_table_foreach_values(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, void *data);
33
36
  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
37
 
38
+ VALUE rb_managed_id_table_create(const rb_data_type_t *type, size_t capa);
39
+ VALUE rb_managed_id_table_new(size_t capa);
40
+ VALUE rb_managed_id_table_dup(VALUE table);
41
+ int rb_managed_id_table_insert(VALUE table, ID id, VALUE val);
42
+ int rb_managed_id_table_lookup(VALUE table, ID id, VALUE *valp);
43
+ size_t rb_managed_id_table_size(VALUE table);
44
+ void rb_managed_id_table_foreach(VALUE table, rb_id_table_foreach_func_t *func, void *data);
45
+ void rb_managed_id_table_foreach_values(VALUE table, rb_id_table_foreach_values_func_t *func, void *data);
46
+ int rb_managed_id_table_delete(VALUE table, ID id);
47
+
48
+ extern const rb_data_type_t rb_managed_id_table_type;
49
+
35
50
  RUBY_SYMBOL_EXPORT_BEGIN
36
51
  size_t rb_id_table_size(const struct rb_id_table *tbl);
37
52
  RUBY_SYMBOL_EXPORT_END