debase-ruby_core_source 0.10.9 → 0.10.13

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 (242) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/README.md +1 -1
  4. data/Rakefile +6 -3
  5. data/debase-ruby_core_source.gemspec +2 -1
  6. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/addr2line.h +2 -3
  7. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/builtin.h +17 -2
  8. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/ccan/build_assert/build_assert.h +0 -0
  9. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/ccan/check_type/check_type.h +0 -0
  10. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/ccan/container_of/container_of.h +0 -0
  11. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/ccan/list/list.h +0 -0
  12. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/ccan/str/str.h +0 -0
  13. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/constant.h +10 -5
  14. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/debug_counter.h +127 -48
  15. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/dln.h +3 -18
  16. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/encindex.h +3 -2
  17. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/eval_intern.h +16 -7
  18. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/gc.h +13 -2
  19. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/hrtime.h +0 -0
  20. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/id.h +0 -0
  21. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/id_table.h +2 -0
  22. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/insns.inc +0 -4
  23. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/insns_info.inc +323 -536
  24. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/array.h +119 -0
  25. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/bignum.h +246 -0
  26. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/bits.h +566 -0
  27. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/class.h +174 -0
  28. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/compar.h +50 -0
  29. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/compile.h +32 -0
  30. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/compilers.h +108 -0
  31. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/complex.h +29 -0
  32. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/cont.h +25 -0
  33. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/dir.h +17 -0
  34. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/enc.h +20 -0
  35. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/encoding.h +28 -0
  36. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/enum.h +19 -0
  37. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/enumerator.h +22 -0
  38. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/error.h +124 -0
  39. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/eval.h +33 -0
  40. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/file.h +39 -0
  41. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/fixnum.h +185 -0
  42. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/gc.h +161 -0
  43. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/hash.h +241 -0
  44. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/imemo.h +243 -0
  45. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/inits.h +51 -0
  46. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/io.h +35 -0
  47. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/load.h +19 -0
  48. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/loadpath.h +17 -0
  49. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/math.h +24 -0
  50. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/missing.h +19 -0
  51. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/numeric.h +255 -0
  52. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/object.h +83 -0
  53. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/parse.h +23 -0
  54. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/proc.h +33 -0
  55. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/process.h +136 -0
  56. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/random.h +17 -0
  57. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/range.h +41 -0
  58. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/rational.h +71 -0
  59. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/re.h +29 -0
  60. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/sanitizers.h +191 -0
  61. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/scheduler.h +44 -0
  62. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/serial.h +24 -0
  63. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/signal.h +22 -0
  64. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/static_assert.h +17 -0
  65. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/string.h +140 -0
  66. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/struct.h +154 -0
  67. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/symbol.h +41 -0
  68. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/thread.h +54 -0
  69. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/time.h +35 -0
  70. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/transcode.h +21 -0
  71. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/util.h +31 -0
  72. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/variable.h +84 -0
  73. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/vm.h +136 -0
  74. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/warnings.h +17 -0
  75. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal.h +107 -0
  76. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/iseq.h +11 -18
  77. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/known_errors.inc +0 -0
  78. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/method.h +21 -8
  79. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/mjit.h +89 -48
  80. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/mjit_compile.inc +2746 -2288
  81. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/node.h +32 -24
  82. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/node_name.inc +2 -2
  83. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/opt_sc.inc +0 -0
  84. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/optinsn.inc +0 -0
  85. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/optunifs.inc +0 -0
  86. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/parse.h +1 -0
  87. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/probes_helper.h +2 -0
  88. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/ractor_core.h +343 -0
  89. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/regenc.h +0 -0
  90. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/regint.h +1 -1
  91. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/regparse.h +0 -0
  92. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/revision.h +2 -0
  93. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/ruby_assert.h +15 -0
  94. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/ruby_atomic.h +23 -0
  95. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/siphash.h +0 -0
  96. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/symbol.h +4 -4
  97. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/thread_pthread.h +45 -5
  98. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/thread_win32.h +28 -3
  99. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/timev.h +1 -0
  100. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/transcode_data.h +2 -3
  101. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/transient_heap.h +6 -3
  102. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/variable.h +22 -0
  103. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/version.h +23 -11
  104. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/vm.inc +707 -671
  105. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/vm_call_iseq_optimized.inc +93 -86
  106. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/vm_callinfo.h +456 -0
  107. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/vm_core.h +262 -194
  108. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/vm_debug.h +116 -0
  109. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/vm_exec.h +9 -6
  110. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/vm_insnhelper.h +28 -26
  111. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/vm_opts.h +6 -5
  112. data/lib/debase/ruby_core_source/ruby-3.0.0-p0/vm_sync.h +136 -0
  113. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/vmtc.inc +0 -4
  114. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/addr2line.h +2 -3
  115. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/builtin.h +83 -0
  116. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/ccan/build_assert/build_assert.h +13 -13
  117. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/ccan/check_type/check_type.h +17 -17
  118. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/ccan/container_of/container_of.h +63 -63
  119. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/ccan/list/list.h +262 -262
  120. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/ccan/str/str.h +4 -4
  121. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/constant.h +10 -9
  122. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/darray.h +198 -0
  123. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/debug_counter.h +137 -48
  124. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/dln.h +3 -23
  125. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/encindex.h +3 -2
  126. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/eval_intern.h +34 -41
  127. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/gc.h +24 -11
  128. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/hrtime.h +9 -9
  129. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/id.h +4 -3
  130. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/id_table.h +3 -1
  131. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/insns.inc +6 -8
  132. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/insns_info.inc +1907 -2543
  133. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/array.h +113 -0
  134. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/bignum.h +246 -0
  135. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/bits.h +565 -0
  136. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/class.h +188 -0
  137. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/compar.h +49 -0
  138. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/compile.h +35 -0
  139. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/compilers.h +107 -0
  140. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/complex.h +29 -0
  141. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/cont.h +24 -0
  142. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/dir.h +16 -0
  143. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/enc.h +19 -0
  144. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/encoding.h +30 -0
  145. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/enum.h +18 -0
  146. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/enumerator.h +21 -0
  147. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/error.h +191 -0
  148. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/eval.h +32 -0
  149. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/file.h +38 -0
  150. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/fixnum.h +184 -0
  151. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/gc.h +175 -0
  152. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/hash.h +243 -0
  153. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/imemo.h +243 -0
  154. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/inits.h +50 -0
  155. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/io.h +38 -0
  156. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/load.h +18 -0
  157. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/loadpath.h +16 -0
  158. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/math.h +23 -0
  159. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/missing.h +18 -0
  160. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/numeric.h +271 -0
  161. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/object.h +83 -0
  162. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/parse.h +23 -0
  163. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/proc.h +32 -0
  164. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/process.h +137 -0
  165. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/random.h +16 -0
  166. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/range.h +40 -0
  167. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/rational.h +72 -0
  168. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/re.h +30 -0
  169. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/sanitizers.h +190 -0
  170. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/serial.h +23 -0
  171. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/signal.h +21 -0
  172. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/static_assert.h +16 -0
  173. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/string.h +141 -0
  174. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/struct.h +153 -0
  175. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/symbol.h +40 -0
  176. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/thread.h +53 -0
  177. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/time.h +34 -0
  178. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/transcode.h +20 -0
  179. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/util.h +27 -0
  180. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/variable.h +83 -0
  181. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/vm.h +132 -0
  182. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/warnings.h +16 -0
  183. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal.h +109 -0
  184. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/iseq.h +44 -35
  185. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/known_errors.inc +0 -0
  186. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/method.h +21 -4
  187. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/mjit.h +231 -0
  188. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/mjit_compile.inc +3322 -2940
  189. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/node.h +39 -23
  190. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/node_name.inc +210 -0
  191. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/opt_sc.inc +0 -2
  192. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/optinsn.inc +7 -7
  193. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/optunifs.inc +1 -1
  194. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/parse.h +9 -5
  195. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/probes_helper.h +9 -7
  196. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/ractor_core.h +346 -0
  197. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/regenc.h +8 -8
  198. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/regint.h +16 -12
  199. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/regparse.h +2 -2
  200. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/revision.h +2 -0
  201. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/ruby_assert.h +14 -0
  202. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/ruby_atomic.h +23 -0
  203. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/siphash.h +0 -0
  204. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/symbol.h +14 -14
  205. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/thread_pthread.h +45 -5
  206. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/thread_win32.h +30 -5
  207. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/timev.h +1 -0
  208. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/transcode_data.h +49 -50
  209. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/transient_heap.h +6 -3
  210. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/variable.h +21 -0
  211. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/version.h +15 -4
  212. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/vm.inc +1033 -887
  213. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/vm_call_iseq_optimized.inc +244 -0
  214. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/vm_callinfo.h +454 -0
  215. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/vm_core.h +508 -362
  216. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/vm_debug.h +119 -0
  217. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/vm_exec.h +22 -18
  218. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/vm_insnhelper.h +42 -32
  219. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/vm_opts.h +8 -5
  220. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/vm_sync.h +137 -0
  221. data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/vmtc.inc +6 -8
  222. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/yjit.h +63 -0
  223. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/yjit_asm.h +392 -0
  224. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/yjit_codegen.h +19 -0
  225. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/yjit_core.h +302 -0
  226. data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/yjit_iface.h +38 -0
  227. data/lib/debase/ruby_core_source/version.rb +1 -1
  228. data/lib/debase/ruby_core_source.rb +0 -2
  229. metadata +240 -110
  230. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/internal.h +0 -2682
  231. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/revision.h +0 -2
  232. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ruby_assert.h +0 -15
  233. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ruby_atomic.h +0 -244
  234. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_call_iseq_optimized.inc +0 -237
  235. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_debug.h +0 -34
  236. data/lib/debase/ruby_core_source/ruby-2.7.0-preview3/internal.h +0 -2657
  237. data/lib/debase/ruby_core_source/ruby-2.7.0-preview3/mjit.h +0 -175
  238. data/lib/debase/ruby_core_source/ruby-2.7.0-preview3/node_name.inc +0 -208
  239. data/lib/debase/ruby_core_source/ruby-2.7.0-preview3/revision.h +0 -2
  240. data/lib/debase/ruby_core_source/ruby-2.7.0-preview3/ruby_assert.h +0 -15
  241. data/lib/debase/ruby_core_source/ruby-2.7.0-preview3/ruby_atomic.h +0 -244
  242. data/lib/debase/ruby_core_source/ruby-2.7.0-preview3/vm_debug.h +0 -34
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 294cd72e2168d625b5932bdd330856c271cb0657123d51f7069b8ef880d5bf63
4
- data.tar.gz: 63670f87b464736bca2f1e1dbeca3403e3fa88cf05daa4792980be8e481a1511
3
+ metadata.gz: 138331098ab4e75cb5ece30ae7120e710b2f9d7e26306b213a27094ca6a69742
4
+ data.tar.gz: 62fe8c8b90edba8f505f831d09a92ab3113133b8bfa6783d12e1cd2d0abdac32
5
5
  SHA512:
6
- metadata.gz: d19b9a31e40fcb1d29c96aad228e34ed996834c28a0192b18369e4ed444fce45de44d7a2ca845eb6518299a8b13126c056e3f68087f2db2fc9380a2d41f26430
7
- data.tar.gz: 8b2996c2116e0c01641dea3a36c210d361f4f07fb8f2de6dc95d6bc4b34bf05f40c98155d2986651316244bd0453c2415b0d12659b7aca04273c777a08dfdf79
6
+ metadata.gz: c1168cb7f6495afff3d7d8d079ec17271ace99f9df1da0f841d6524a62912f8c7e6f86f3287b1aabd45043fbcf5069722bb22a9c321eb2d302c8ac77a996d336
7
+ data.tar.gz: 4e498ba9d735f2b8f44f4298a6260299852d95fc6113735ac04d293e42281fe893780c2609225bbff3e180128d055e49ac67c219d43d2402156f4f8e8ff4568e
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## [0.10.10](https://github.com/ruby-debug/debase-ruby_core_source/compare/v0.10.9...v0.10.10)
2
+
3
+ * removed ruby 2.7.0 preview sources to avoid falling back on them for release versions
4
+
1
5
  ## [0.10.9](https://github.com/os97673/debase-ruby_core_source/compare/v0.10.8...v0.10.9)
2
6
 
3
7
  * ruby 2.7.0 added (contributed by [ViugiNick](https://github.com/ViugiNick))
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  ## Description
2
2
  Fork of [debugger-ruby\_core\_source](https://github.com/cldwalker/debugger-ruby_core_source)
3
3
  that uses included Ruby headers (\*.h and \*.inc) instead of downloading
4
- them. Used by [debase](http://github.com/denofevil/debase).
4
+ them. Used by [debase](http://github.com/ruby-debug/debase).
5
5
  Only ruby >= 2.0.0 is supported (debase doesn't work for older rubies)
6
6
 
7
7
  ## Usage
data/Rakefile CHANGED
@@ -46,7 +46,7 @@ task :add_source do
46
46
  minor_version = version.split('.')[0..1].join('.')
47
47
  uri_path = "http://ftp.ruby-lang.org/pub/ruby/#{minor_version}/#{ruby_dir}.tar.gz"
48
48
  puts "Downloading #{uri_path}..."
49
- temp = open(uri_path)
49
+ temp = URI.open(uri_path)
50
50
  end
51
51
  puts "Unpacking #{uri_path}..."
52
52
  tgz = Zlib::GzipReader.new(File.open(temp, "rb"))
@@ -54,13 +54,16 @@ task :add_source do
54
54
  Dir.mktmpdir do |dir|
55
55
  inc_dir = dir + "/" + ruby_dir + "/*.inc"
56
56
  hdr_dir = dir + "/" + ruby_dir + "/*.h"
57
- more_hdr_dir = dir + "/" + ruby_dir + "/ccan/**/*.h"
57
+ more_hdr_dir = [
58
+ dir + "/" + ruby_dir + "/ccan/**/*.h",
59
+ dir + "/" + ruby_dir + "/internal/**/*.h"
60
+ ]
58
61
  Archive::Tar::Minitar.unpack(tgz, dir)
59
62
 
60
63
  dest_dir = get_dest_dir(ruby_dir, version, dir)
61
64
  puts dest_dir
62
65
  FileUtils.mkdir_p(dest_dir)
63
- Dir.glob([ inc_dir, hdr_dir, more_hdr_dir ]).each do |file|
66
+ Dir.glob([ inc_dir, hdr_dir, more_hdr_dir ].flatten).each do |file|
64
67
  target = file.sub(dir + '/' + ruby_dir, dest_dir)
65
68
  FileUtils.mkdir_p(File.dirname(target))
66
69
  FileUtils.cp(file, target, verbose: false)
@@ -12,9 +12,10 @@ Gem::Specification.new do |s|
12
12
  s.description = %q{Provide Ruby core source files for C extensions that need them.}
13
13
  s.license = "MIT"
14
14
  s.required_rubygems_version = ">= 1.3.6"
15
- s.required_ruby_version = '~> 2.0'
15
+ s.required_ruby_version = '>= 1.9.3'
16
16
  s.extra_rdoc_files = [ "README.md"]
17
17
  s.files = `git ls-files`.split("\n")
18
18
  s.add_development_dependency "archive-tar-minitar", ">= 0.5.2"
19
19
  s.add_development_dependency 'rake', '~> 0.9.2'
20
+ s.add_development_dependency 'minitar-cli'
20
21
  end
@@ -1,3 +1,5 @@
1
+ #ifndef RUBY_ADDR2LINE_H
2
+ #define RUBY_ADDR2LINE_H
1
3
  /**********************************************************************
2
4
 
3
5
  addr2line.h -
@@ -8,9 +10,6 @@
8
10
 
9
11
  **********************************************************************/
10
12
 
11
- #ifndef RUBY_ADDR2LINE_H
12
- #define RUBY_ADDR2LINE_H
13
-
14
13
  #if (defined(USE_ELF) || defined(HAVE_MACH_O_LOADER_H))
15
14
 
16
15
  void
@@ -1,3 +1,6 @@
1
+ #ifndef BUILTIN_H_INCLUDED
2
+ #define BUILTIN_H_INCLUDED
3
+
1
4
  // invoke
2
5
 
3
6
  struct rb_builtin_function {
@@ -8,14 +11,24 @@ struct rb_builtin_function {
8
11
  // for load
9
12
  const int index;
10
13
  const char * const name;
14
+
15
+ // for jit
16
+ void (*compiler)(FILE *, long, unsigned, bool);
11
17
  };
12
18
 
13
- #define RB_BUILTIN_FUNCTION(_i, _name, _arity) { .name = #_name, .func_ptr = (void *)_name, .argc = _arity, .index = _i }
19
+ #define RB_BUILTIN_FUNCTION(_i, _name, _fname, _arity, _compiler) {\
20
+ .name = #_name, \
21
+ .func_ptr = (void *)_fname, \
22
+ .argc = _arity, \
23
+ .index = _i, \
24
+ .compiler = _compiler, \
25
+ }
14
26
 
15
27
  void rb_load_with_builtin_functions(const char *feature_name, const struct rb_builtin_function *table);
16
28
 
17
- #ifndef VM_CORE_H_EC_DEFINED
29
+ #ifndef rb_execution_context_t
18
30
  typedef struct rb_execution_context_struct rb_execution_context_t;
31
+ #define rb_execution_context_t rb_execution_context_t
19
32
  #endif
20
33
 
21
34
  /* The following code is generated by the following Ruby script:
@@ -66,3 +79,5 @@ struct builtin_binary {
66
79
  const unsigned char *bin; // binary by ISeq#to_binary
67
80
  size_t bin_size;
68
81
  };
82
+
83
+ #endif // BUILTIN_H_INCLUDED
@@ -1,3 +1,5 @@
1
+ #ifndef CONSTANT_H
2
+ #define CONSTANT_H
1
3
  /**********************************************************************
2
4
 
3
5
  constant.h -
@@ -8,8 +10,8 @@
8
10
  Copyright (C) 2009 Yusuke Endoh
9
11
 
10
12
  **********************************************************************/
11
- #ifndef CONSTANT_H
12
- #define CONSTANT_H
13
+ #include "ruby/ruby.h"
14
+ #include "id_table.h"
13
15
 
14
16
  typedef enum {
15
17
  CONST_DEPRECATED = 0x100,
@@ -39,12 +41,15 @@ VALUE rb_mod_private_constant(int argc, const VALUE *argv, VALUE obj);
39
41
  VALUE rb_mod_public_constant(int argc, const VALUE *argv, VALUE obj);
40
42
  VALUE rb_mod_deprecate_constant(int argc, const VALUE *argv, VALUE obj);
41
43
  void rb_free_const_table(struct rb_id_table *tbl);
44
+ VALUE rb_const_source_location(VALUE, ID);
45
+
46
+ MJIT_SYMBOL_EXPORT_BEGIN
47
+ int rb_autoloading_value(VALUE mod, ID id, VALUE *value, rb_const_flag_t *flag);
48
+ rb_const_entry_t *rb_const_lookup(VALUE klass, ID id);
42
49
  VALUE rb_public_const_get_at(VALUE klass, ID id);
43
50
  VALUE rb_public_const_get_from(VALUE klass, ID id);
44
51
  int rb_public_const_defined_from(VALUE klass, ID id);
45
- rb_const_entry_t *rb_const_lookup(VALUE klass, ID id);
46
- int rb_autoloading_value(VALUE mod, ID id, VALUE *value, rb_const_flag_t *flag);
47
- VALUE rb_const_source_location(VALUE, ID);
48
52
  VALUE rb_const_source_location_at(VALUE, ID);
53
+ MJIT_SYMBOL_EXPORT_END
49
54
 
50
55
  #endif /* CONSTANT_H */
@@ -14,38 +14,58 @@
14
14
 
15
15
  #ifdef RB_DEBUG_COUNTER
16
16
 
17
- /*
18
- * method cache (mc) counts.
19
- *
20
- * * mc_inline_hit/miss: inline mc hit/miss counts (VM send insn)
21
- * * mc_global_hit/miss: global method cache hit/miss counts
22
- * two types: (1) inline cache miss (VM send insn)
23
- * (2) called from C (rb_funcall).
24
- * * mc_global_state_miss: inline mc miss by global_state miss.
25
- * * mc_class_serial_miss: ... by mc_class_serial_miss
26
- * * mc_cme_complement: callable_method_entry complement counts.
27
- * * mc_cme_complement_hit: callable_method_entry cache hit counts.
28
- * * mc_search_super: search_method() call counts.
29
- * * mc_miss_by_nome: inline mc miss by no ment.
30
- * * mc_miss_by_distinct: ... by distinct ment.
31
- * * mc_miss_by_refine: ... by ment being refined.
32
- * * mc_miss_by_visi: ... by visibility change.
33
- * * mc_miss_spurious: spurious inline mc misshit.
34
- */
35
- RB_DEBUG_COUNTER(mc_inline_hit)
36
- RB_DEBUG_COUNTER(mc_inline_miss)
37
- RB_DEBUG_COUNTER(mc_global_hit)
38
- RB_DEBUG_COUNTER(mc_global_miss)
39
- RB_DEBUG_COUNTER(mc_global_state_miss)
40
- RB_DEBUG_COUNTER(mc_class_serial_miss)
41
- RB_DEBUG_COUNTER(mc_cme_complement)
42
- RB_DEBUG_COUNTER(mc_cme_complement_hit)
43
- RB_DEBUG_COUNTER(mc_search_super)
44
- RB_DEBUG_COUNTER(mc_miss_by_nome)
45
- RB_DEBUG_COUNTER(mc_miss_by_distinct)
46
- RB_DEBUG_COUNTER(mc_miss_by_refine)
47
- RB_DEBUG_COUNTER(mc_miss_by_visi)
48
- RB_DEBUG_COUNTER(mc_miss_spurious)
17
+ // method cache (IMC: inline method cache)
18
+ RB_DEBUG_COUNTER(mc_inline_hit) // IMC hit
19
+ RB_DEBUG_COUNTER(mc_inline_miss_klass) // IMC miss by different class
20
+ RB_DEBUG_COUNTER(mc_inline_miss_invalidated) // IMC miss by invalidated ME
21
+ RB_DEBUG_COUNTER(mc_inline_miss_empty) // IMC miss because prev is empty slot
22
+ RB_DEBUG_COUNTER(mc_inline_miss_same_cc) // IMC miss, but same CC
23
+ RB_DEBUG_COUNTER(mc_inline_miss_same_cme) // IMC miss, but same CME
24
+ RB_DEBUG_COUNTER(mc_inline_miss_same_def) // IMC miss, but same definition
25
+ RB_DEBUG_COUNTER(mc_inline_miss_diff) // IMC miss, different methods
26
+
27
+ RB_DEBUG_COUNTER(mc_cme_complement) // number of acquiring complement CME
28
+ RB_DEBUG_COUNTER(mc_cme_complement_hit) // number of cache hit for complemented CME
29
+
30
+ RB_DEBUG_COUNTER(mc_search) // count for method lookup in class tree
31
+ RB_DEBUG_COUNTER(mc_search_notfound) // method lookup, but not found
32
+ RB_DEBUG_COUNTER(mc_search_super) // total traversed classes
33
+
34
+ // callinfo
35
+ RB_DEBUG_COUNTER(ci_packed) // number of packed CI
36
+ RB_DEBUG_COUNTER(ci_kw) // non-packed CI w/ keywords
37
+ RB_DEBUG_COUNTER(ci_nokw) // non-packed CI w/o keywords
38
+ RB_DEBUG_COUNTER(ci_runtime) // creating temporary CI
39
+
40
+ // callcache
41
+ RB_DEBUG_COUNTER(cc_new) // number of CC
42
+ RB_DEBUG_COUNTER(cc_temp) // dummy CC (stack-allocated)
43
+ RB_DEBUG_COUNTER(cc_found_in_ccs) // count for CC lookup success in CCS
44
+ RB_DEBUG_COUNTER(cc_not_found_in_ccs) // count for CC lookup success in CCS
45
+
46
+ RB_DEBUG_COUNTER(cc_ent_invalidate) // count for invalidating cc (cc->klass = 0)
47
+ RB_DEBUG_COUNTER(cc_cme_invalidate) // count for invalidating CME
48
+
49
+ RB_DEBUG_COUNTER(cc_invalidate_leaf) // count for invalidating klass if klass has no-sublcasses
50
+ RB_DEBUG_COUNTER(cc_invalidate_leaf_ccs) // corresponding CCS
51
+ RB_DEBUG_COUNTER(cc_invalidate_leaf_callable) // complimented cache (no-subclasses)
52
+ RB_DEBUG_COUNTER(cc_invalidate_tree) // count for invalidating klass if klass has sublcasses
53
+ RB_DEBUG_COUNTER(cc_invalidate_tree_cme) // cme if cme is found in this class or superclasses
54
+ RB_DEBUG_COUNTER(cc_invalidate_tree_callable) // complimented cache (subclasses)
55
+ RB_DEBUG_COUNTER(cc_invalidate_negative) // count for invalidating negative cache
56
+
57
+ RB_DEBUG_COUNTER(ccs_free) // count for free'ing ccs
58
+ RB_DEBUG_COUNTER(ccs_maxlen) // maximum length of ccs
59
+ RB_DEBUG_COUNTER(ccs_found) // count for finding corresponding ccs on method lookup
60
+ RB_DEBUG_COUNTER(ccs_not_found) // count for not found corresponding ccs on method lookup
61
+
62
+ // vm_eval.c
63
+ RB_DEBUG_COUNTER(call0_public)
64
+ RB_DEBUG_COUNTER(call0_other)
65
+
66
+ // iseq
67
+ RB_DEBUG_COUNTER(iseq_num) // number of total created iseq
68
+ RB_DEBUG_COUNTER(iseq_cd_num) // number of total created cd (call_data)
49
69
 
50
70
  /*
51
71
  * call cache fastpath usage
@@ -59,6 +79,7 @@ RB_DEBUG_COUNTER(ccf_iseq_opt) /* has_opt == TRUE (has optional parameters), but
59
79
  RB_DEBUG_COUNTER(ccf_iseq_kw1) /* vm_call_iseq_setup_kwparm_kwarg() */
60
80
  RB_DEBUG_COUNTER(ccf_iseq_kw2) /* vm_call_iseq_setup_kwparm_nokwarg() */
61
81
  RB_DEBUG_COUNTER(ccf_cfunc)
82
+ RB_DEBUG_COUNTER(ccf_cfunc_with_frame)
62
83
  RB_DEBUG_COUNTER(ccf_ivar) /* attr_reader */
63
84
  RB_DEBUG_COUNTER(ccf_attrset) /* attr_writer */
64
85
  RB_DEBUG_COUNTER(ccf_method_missing)
@@ -115,7 +136,7 @@ RB_DEBUG_COUNTER(ivar_set_ic_hit)
115
136
  RB_DEBUG_COUNTER(ivar_set_ic_miss)
116
137
  RB_DEBUG_COUNTER(ivar_set_ic_miss_serial)
117
138
  RB_DEBUG_COUNTER(ivar_set_ic_miss_unset)
118
- RB_DEBUG_COUNTER(ivar_set_ic_miss_oorange)
139
+ RB_DEBUG_COUNTER(ivar_set_ic_miss_iv_hit)
119
140
  RB_DEBUG_COUNTER(ivar_set_ic_miss_noobject)
120
141
  RB_DEBUG_COUNTER(ivar_get_base)
121
142
  RB_DEBUG_COUNTER(ivar_set_base)
@@ -153,6 +174,12 @@ RB_DEBUG_COUNTER(gc_major_shady)
153
174
  RB_DEBUG_COUNTER(gc_major_force)
154
175
  RB_DEBUG_COUNTER(gc_major_oldmalloc)
155
176
 
177
+ RB_DEBUG_COUNTER(gc_enter_start)
178
+ RB_DEBUG_COUNTER(gc_enter_mark_continue)
179
+ RB_DEBUG_COUNTER(gc_enter_sweep_continue)
180
+ RB_DEBUG_COUNTER(gc_enter_rest)
181
+ RB_DEBUG_COUNTER(gc_enter_finalizer)
182
+
156
183
  RB_DEBUG_COUNTER(gc_isptr_trial)
157
184
  RB_DEBUG_COUNTER(gc_isptr_range)
158
185
  RB_DEBUG_COUNTER(gc_isptr_align)
@@ -162,7 +189,7 @@ RB_DEBUG_COUNTER(gc_isptr_maybe)
162
189
  *
163
190
  * * obj_newobj: newobj counts
164
191
  * * obj_newobj_slowpath: newobj with slowpath counts
165
- * * obj_newobj_wb_unprotected: newobj for wb_unprotecte.
192
+ * * obj_newobj_wb_unprotected: newobj for wb_unprotected.
166
193
  * * obj_free: obj_free() counts
167
194
  * * obj_promote: promoted counts (oldgen)
168
195
  * * obj_wb_unprotect: wb unprotect counts
@@ -245,8 +272,6 @@ RB_DEBUG_COUNTER(obj_struct_embed)
245
272
  RB_DEBUG_COUNTER(obj_struct_transient)
246
273
  RB_DEBUG_COUNTER(obj_struct_ptr)
247
274
 
248
- RB_DEBUG_COUNTER(obj_regexp_ptr)
249
-
250
275
  RB_DEBUG_COUNTER(obj_data_empty)
251
276
  RB_DEBUG_COUNTER(obj_data_xfree)
252
277
  RB_DEBUG_COUNTER(obj_data_imm_free)
@@ -256,9 +281,19 @@ RB_DEBUG_COUNTER(obj_match_under4)
256
281
  RB_DEBUG_COUNTER(obj_match_ge4)
257
282
  RB_DEBUG_COUNTER(obj_match_ge8)
258
283
  RB_DEBUG_COUNTER(obj_match_ptr)
259
- RB_DEBUG_COUNTER(obj_file_ptr)
284
+
285
+ RB_DEBUG_COUNTER(obj_iclass_ptr)
286
+ RB_DEBUG_COUNTER(obj_class_ptr)
287
+ RB_DEBUG_COUNTER(obj_module_ptr)
288
+
260
289
  RB_DEBUG_COUNTER(obj_bignum_ptr)
290
+ RB_DEBUG_COUNTER(obj_bignum_embed)
291
+ RB_DEBUG_COUNTER(obj_float)
292
+ RB_DEBUG_COUNTER(obj_complex)
293
+ RB_DEBUG_COUNTER(obj_rational)
261
294
 
295
+ RB_DEBUG_COUNTER(obj_regexp_ptr)
296
+ RB_DEBUG_COUNTER(obj_file_ptr)
262
297
  RB_DEBUG_COUNTER(obj_symbol)
263
298
 
264
299
  RB_DEBUG_COUNTER(obj_imemo_ment)
@@ -272,10 +307,8 @@ RB_DEBUG_COUNTER(obj_imemo_throw_data)
272
307
  RB_DEBUG_COUNTER(obj_imemo_ifunc)
273
308
  RB_DEBUG_COUNTER(obj_imemo_memo)
274
309
  RB_DEBUG_COUNTER(obj_imemo_parser_strterm)
275
-
276
- RB_DEBUG_COUNTER(obj_iclass_ptr)
277
- RB_DEBUG_COUNTER(obj_class_ptr)
278
- RB_DEBUG_COUNTER(obj_module_ptr)
310
+ RB_DEBUG_COUNTER(obj_imemo_callinfo)
311
+ RB_DEBUG_COUNTER(obj_imemo_callcache)
279
312
 
280
313
  /* ar_table */
281
314
  RB_DEBUG_COUNTER(artable_hint_hit)
@@ -295,14 +328,24 @@ RB_DEBUG_COUNTER(theap_alloc)
295
328
  RB_DEBUG_COUNTER(theap_alloc_fail)
296
329
  RB_DEBUG_COUNTER(theap_evacuate)
297
330
 
331
+ // VM sync
332
+ RB_DEBUG_COUNTER(vm_sync_lock)
333
+ RB_DEBUG_COUNTER(vm_sync_lock_enter)
334
+ RB_DEBUG_COUNTER(vm_sync_lock_enter_nb)
335
+ RB_DEBUG_COUNTER(vm_sync_lock_enter_cr)
336
+ RB_DEBUG_COUNTER(vm_sync_barrier)
337
+
298
338
  /* mjit_exec() counts */
299
339
  RB_DEBUG_COUNTER(mjit_exec)
300
340
  RB_DEBUG_COUNTER(mjit_exec_not_added)
301
- RB_DEBUG_COUNTER(mjit_exec_not_added_add_iseq)
302
341
  RB_DEBUG_COUNTER(mjit_exec_not_ready)
303
342
  RB_DEBUG_COUNTER(mjit_exec_not_compiled)
304
343
  RB_DEBUG_COUNTER(mjit_exec_call_func)
305
344
 
345
+ /* MJIT enqueue / unload */
346
+ RB_DEBUG_COUNTER(mjit_add_iseq_to_process)
347
+ RB_DEBUG_COUNTER(mjit_unload_units)
348
+
306
349
  /* MJIT <-> VM frame push counts */
307
350
  RB_DEBUG_COUNTER(mjit_frame_VM2VM)
308
351
  RB_DEBUG_COUNTER(mjit_frame_VM2JT)
@@ -312,9 +355,11 @@ RB_DEBUG_COUNTER(mjit_frame_JT2VM)
312
355
  /* MJIT cancel counters */
313
356
  RB_DEBUG_COUNTER(mjit_cancel)
314
357
  RB_DEBUG_COUNTER(mjit_cancel_ivar_inline)
358
+ RB_DEBUG_COUNTER(mjit_cancel_exivar_inline)
315
359
  RB_DEBUG_COUNTER(mjit_cancel_send_inline)
316
360
  RB_DEBUG_COUNTER(mjit_cancel_opt_insn) /* CALL_SIMPLE_METHOD */
317
361
  RB_DEBUG_COUNTER(mjit_cancel_invalidate_all)
362
+ RB_DEBUG_COUNTER(mjit_cancel_leave)
318
363
 
319
364
  /* rb_mjit_unit_list length */
320
365
  RB_DEBUG_COUNTER(mjit_length_unit_queue)
@@ -335,6 +380,10 @@ RB_DEBUG_COUNTER(load_path_is_not_realpath)
335
380
  #ifndef RUBY_DEBUG_COUNTER_H
336
381
  #define RUBY_DEBUG_COUNTER_H 1
337
382
 
383
+ #include "ruby/internal/config.h"
384
+ #include <stddef.h> /* for size_t */
385
+ #include "ruby/ruby.h" /* for VALUE */
386
+
338
387
  #if !defined(__GNUC__) && USE_DEBUG_COUNTER
339
388
  #error "USE_DEBUG_COUNTER is not supported by other than __GNUC__"
340
389
  #endif
@@ -347,32 +396,62 @@ enum rb_debug_counter_type {
347
396
  };
348
397
 
349
398
  #if USE_DEBUG_COUNTER
350
- #include "ruby/ruby.h"
351
-
352
399
  extern size_t rb_debug_counter[];
400
+ RUBY_EXTERN struct rb_ractor_struct *ruby_single_main_ractor;
401
+ RUBY_EXTERN void rb_debug_counter_add_atomic(enum rb_debug_counter_type type, int add);
353
402
 
354
403
  inline static int
355
404
  rb_debug_counter_add(enum rb_debug_counter_type type, int add, int cond)
356
405
  {
357
406
  if (cond) {
358
- rb_debug_counter[(int)type] += add;
407
+ if (ruby_single_main_ractor != NULL) {
408
+ rb_debug_counter[(int)type] += add;
409
+ }
410
+ else {
411
+ rb_debug_counter_add_atomic(type, add);
412
+ }
359
413
  }
360
414
  return cond;
361
415
  }
362
416
 
417
+ inline static int
418
+ rb_debug_counter_max(enum rb_debug_counter_type type, unsigned int num)
419
+ {
420
+ // TODO: sync
421
+ if (rb_debug_counter[(int)type] < num) {
422
+ rb_debug_counter[(int)type] = num;
423
+ return 1;
424
+ }
425
+ else {
426
+ return 0;
427
+ }
428
+ }
429
+
363
430
  VALUE rb_debug_counter_reset(VALUE klass);
364
431
  VALUE rb_debug_counter_show(VALUE klass);
365
432
 
366
433
  #define RB_DEBUG_COUNTER_INC(type) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, 1)
367
434
  #define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (!rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, !(cond)))
368
- #define RB_DEBUG_COUNTER_INC_IF(type, cond) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, (cond))
435
+ #define RB_DEBUG_COUNTER_INC_IF(type, cond) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, !!(cond))
436
+ #define RB_DEBUG_COUNTER_ADD(type, num) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, (num), 1)
437
+ #define RB_DEBUG_COUNTER_SETMAX(type, num) rb_debug_counter_max(RB_DEBUG_COUNTER_##type, (unsigned int)(num))
369
438
 
370
439
  #else
371
440
  #define RB_DEBUG_COUNTER_INC(type) ((void)0)
372
- #define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (cond)
373
- #define RB_DEBUG_COUNTER_INC_IF(type, cond) (cond)
441
+ #define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (!!(cond))
442
+ #define RB_DEBUG_COUNTER_INC_IF(type, cond) (!!(cond))
443
+ #define RB_DEBUG_COUNTER_ADD(type, num) ((void)0)
444
+ #define RB_DEBUG_COUNTER_SETMAX(type, num) 0
374
445
  #endif
375
446
 
376
447
  void rb_debug_counter_show_results(const char *msg);
377
448
 
449
+ RUBY_SYMBOL_EXPORT_BEGIN
450
+
451
+ size_t ruby_debug_counter_get(const char **names_ptr, size_t *counters_ptr);
452
+ void ruby_debug_counter_reset(void);
453
+ void ruby_debug_counter_show_at_exit(int enable);
454
+
455
+ RUBY_SYMBOL_EXPORT_END
456
+
378
457
  #endif /* RUBY_DEBUG_COUNTER_H */
@@ -1,3 +1,5 @@
1
+ #ifndef DLN_H
2
+ #define DLN_H
1
3
  /**********************************************************************
2
4
 
3
5
  dln.h -
@@ -9,24 +11,7 @@
9
11
 
10
12
  **********************************************************************/
11
13
 
12
- #ifndef DLN_H
13
- #define DLN_H
14
-
15
- #ifdef __cplusplus
16
- # ifndef HAVE_PROTOTYPES
17
- # define HAVE_PROTOTYPES 1
18
- # endif
19
- # ifndef HAVE_STDARG_PROTOTYPES
20
- # define HAVE_STDARG_PROTOTYPES 1
21
- # endif
22
- #endif
23
-
24
- #undef _
25
- #ifdef HAVE_PROTOTYPES
26
- # define _(args) args
27
- #else
28
- # define _(args) ()
29
- #endif
14
+ #include "ruby/defines.h" /* for RUBY_SYMBOL_EXPORT_BEGIN */
30
15
 
31
16
  RUBY_SYMBOL_EXPORT_BEGIN
32
17
 
@@ -1,3 +1,5 @@
1
+ #ifndef RUBY_ENCINDEX_H
2
+ #define RUBY_ENCINDEX_H 1
1
3
  /**********************************************************************
2
4
 
3
5
  encindex.h -
@@ -9,8 +11,7 @@
9
11
 
10
12
  **********************************************************************/
11
13
 
12
- #ifndef RUBY_ENCINDEX_H
13
- #define RUBY_ENCINDEX_H 1
14
+ #include "ruby/encoding.h" /* rb_ascii8bit_encindex etc. */
14
15
  #if defined(__cplusplus)
15
16
  extern "C" {
16
17
  #if 0
@@ -132,7 +132,8 @@ LONG WINAPI rb_w32_stack_overflow_handler(struct _EXCEPTION_POINTERS *);
132
132
  struct rb_vm_tag _tag; \
133
133
  _tag.state = TAG_NONE; \
134
134
  _tag.tag = Qundef; \
135
- _tag.prev = _ec->tag;
135
+ _tag.prev = _ec->tag; \
136
+ _tag.lock_rec = rb_ec_vm_lock_rec(_ec); \
136
137
 
137
138
  #define EC_POP_TAG() \
138
139
  _ec->tag = _tag.prev; \
@@ -157,12 +158,23 @@ LONG WINAPI rb_w32_stack_overflow_handler(struct _EXCEPTION_POINTERS *);
157
158
  # define VAR_NOCLOBBERED(var) var
158
159
  #endif
159
160
 
161
+ static inline void
162
+ rb_ec_vm_lock_rec_check(const rb_execution_context_t *ec, unsigned int recorded_lock_rec)
163
+ {
164
+ unsigned int current_lock_rec = rb_ec_vm_lock_rec(ec);
165
+ if (current_lock_rec != recorded_lock_rec) {
166
+ rb_ec_vm_lock_rec_release(ec, recorded_lock_rec, current_lock_rec);
167
+ }
168
+ }
169
+
160
170
  /* clear ec->tag->state, and return the value */
161
171
  static inline int
162
172
  rb_ec_tag_state(const rb_execution_context_t *ec)
163
173
  {
164
- enum ruby_tag_type state = ec->tag->state;
165
- ec->tag->state = TAG_NONE;
174
+ struct rb_vm_tag *tag = ec->tag;
175
+ enum ruby_tag_type state = tag->state;
176
+ tag->state = TAG_NONE;
177
+ rb_ec_vm_lock_rec_check(ec, tag->lock_rec);
166
178
  return state;
167
179
  }
168
180
 
@@ -250,9 +262,6 @@ CREF_OMOD_SHARED_UNSET(rb_cref_t *cref)
250
262
  cref->flags &= ~CREF_FL_OMOD_SHARED;
251
263
  }
252
264
 
253
- void rb_thread_cleanup(void);
254
- void rb_thread_wait_other_threads(void);
255
-
256
265
  enum {
257
266
  RAISED_EXCEPTION = 1,
258
267
  RAISED_STACKOVERFLOW = 2,
@@ -284,12 +293,12 @@ rb_cref_t *rb_vm_cref(void);
284
293
  rb_cref_t *rb_vm_cref_replace_with_duplicated_cref(void);
285
294
  VALUE rb_vm_call_cfunc(VALUE recv, VALUE (*func)(VALUE), VALUE arg, VALUE block_handler, VALUE filename);
286
295
  void rb_vm_set_progname(VALUE filename);
287
- void rb_thread_terminate_all(void);
288
296
  VALUE rb_vm_cbase(void);
289
297
 
290
298
  /* vm_backtrace.c */
291
299
  VALUE rb_ec_backtrace_object(const rb_execution_context_t *ec);
292
300
  VALUE rb_ec_backtrace_str_ary(const rb_execution_context_t *ec, long lev, long n);
301
+ VALUE rb_ec_backtrace_location_ary(const rb_execution_context_t *ec, long lev, long n, bool skip_internal);
293
302
 
294
303
  #ifndef CharNext /* defined as CharNext[AW] on Windows. */
295
304
  # ifdef HAVE_MBLEN
@@ -1,17 +1,28 @@
1
-
2
1
  #ifndef RUBY_GC_H
3
2
  #define RUBY_GC_H 1
3
+ #include "ruby/ruby.h"
4
4
 
5
5
  #if defined(__x86_64__) && !defined(_ILP32) && defined(__GNUC__)
6
6
  #define SET_MACHINE_STACK_END(p) __asm__ __volatile__ ("movq\t%%rsp, %0" : "=r" (*(p)))
7
7
  #elif defined(__i386) && defined(__GNUC__)
8
8
  #define SET_MACHINE_STACK_END(p) __asm__ __volatile__ ("movl\t%%esp, %0" : "=r" (*(p)))
9
+ #elif defined(__powerpc64__) && defined(__GNUC__)
10
+ #define SET_MACHINE_STACK_END(p) __asm__ __volatile__ ("mr\t%0, %%r1" : "=r" (*(p)))
11
+ #elif defined(__aarch64__) && defined(__GNUC__)
12
+ #define SET_MACHINE_STACK_END(p) __asm__ __volatile__ ("mov\t%0, sp" : "=r" (*(p)))
9
13
  #else
10
14
  NOINLINE(void rb_gc_set_stack_end(VALUE **stack_end_p));
11
15
  #define SET_MACHINE_STACK_END(p) rb_gc_set_stack_end(p)
12
16
  #define USE_CONSERVATIVE_STACK_END
13
17
  #endif
14
18
 
19
+ #define RB_GC_SAVE_MACHINE_CONTEXT(th) \
20
+ do { \
21
+ FLUSH_REGISTER_WINDOWS; \
22
+ setjmp((th)->ec->machine.regs); \
23
+ SET_MACHINE_STACK_END(&(th)->ec->machine.stack_end); \
24
+ } while (0)
25
+
15
26
  /* for GC debug */
16
27
 
17
28
  #ifndef RUBY_MARK_FREE_DEBUG
@@ -57,7 +68,7 @@ rb_gc_debug_body(const char *mode, const char *msg, int st, void *ptr)
57
68
  #define RUBY_GC_INFO if(0)printf
58
69
  #endif
59
70
 
60
- #define RUBY_MARK_NO_PIN_UNLESS_NULL(ptr) do { \
71
+ #define RUBY_MARK_MOVABLE_UNLESS_NULL(ptr) do { \
61
72
  VALUE markobj = (ptr); \
62
73
  if (RTEST(markobj)) {rb_gc_mark_movable(markobj);} \
63
74
  } while (0)
@@ -1,5 +1,7 @@
1
1
  #ifndef RUBY_ID_TABLE_H
2
2
  #define RUBY_ID_TABLE_H 1
3
+ #include "ruby/internal/config.h"
4
+ #include <stddef.h>
3
5
  #include "ruby/ruby.h"
4
6
 
5
7
  struct rb_id_table;
@@ -63,7 +63,6 @@ enum ruby_vminsn_type {
63
63
  BIN(putstring),
64
64
  BIN(concatstrings),
65
65
  BIN(tostring),
66
- BIN(freezestring),
67
66
  BIN(toregexp),
68
67
  BIN(intern),
69
68
  BIN(newarray),
@@ -133,7 +132,6 @@ enum ruby_vminsn_type {
133
132
  BIN(opt_succ),
134
133
  BIN(opt_not),
135
134
  BIN(opt_regexpmatch2),
136
- BIN(opt_call_c_function),
137
135
  BIN(invokebuiltin),
138
136
  BIN(opt_invokebuiltin_delegate),
139
137
  BIN(opt_invokebuiltin_delegate_leave),
@@ -166,7 +164,6 @@ enum ruby_vminsn_type {
166
164
  BIN(trace_putstring),
167
165
  BIN(trace_concatstrings),
168
166
  BIN(trace_tostring),
169
- BIN(trace_freezestring),
170
167
  BIN(trace_toregexp),
171
168
  BIN(trace_intern),
172
169
  BIN(trace_newarray),
@@ -236,7 +233,6 @@ enum ruby_vminsn_type {
236
233
  BIN(trace_opt_succ),
237
234
  BIN(trace_opt_not),
238
235
  BIN(trace_opt_regexpmatch2),
239
- BIN(trace_opt_call_c_function),
240
236
  BIN(trace_invokebuiltin),
241
237
  BIN(trace_opt_invokebuiltin_delegate),
242
238
  BIN(trace_opt_invokebuiltin_delegate_leave),