debase-ruby_core_source 0.10.9 → 0.10.13

Sign up to get free protection for your applications and to get access to all the features.
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),