debase-ruby_core_source 0.10.2 → 0.10.11

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 (339) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +34 -0
  3. data/README.md +6 -2
  4. data/Rakefile +6 -3
  5. data/debase-ruby_core_source.gemspec +2 -1
  6. data/lib/debase/ruby_core_source.rb +6 -5
  7. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/addr2line.h +0 -0
  8. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/ccan/build_assert/build_assert.h +0 -0
  9. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/ccan/check_type/check_type.h +0 -0
  10. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/ccan/container_of/container_of.h +0 -0
  11. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/ccan/list/list.h +0 -0
  12. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/ccan/str/str.h +0 -0
  13. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/constant.h +1 -0
  14. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/debug_counter.h +0 -0
  15. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/dln.h +0 -0
  16. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/encindex.h +2 -0
  17. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/eval_intern.h +0 -0
  18. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/gc.h +0 -0
  19. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/id.h +0 -0
  20. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/id_table.h +0 -0
  21. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/insns.inc +2 -2
  22. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/insns_info.inc +157 -157
  23. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/internal.h +5 -4
  24. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/iseq.h +2 -2
  25. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/known_errors.inc +0 -0
  26. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/method.h +0 -0
  27. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/node.h +0 -0
  28. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/node_name.inc +0 -0
  29. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/opt_sc.inc +0 -0
  30. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/optinsn.inc +0 -0
  31. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/optunifs.inc +0 -0
  32. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/parse.h +0 -0
  33. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/probes_helper.h +0 -0
  34. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/regenc.h +0 -0
  35. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/regint.h +0 -0
  36. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/regparse.h +0 -0
  37. data/lib/debase/ruby_core_source/ruby-2.5.1-p57/revision.h +1 -0
  38. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/ruby_assert.h +0 -0
  39. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/ruby_atomic.h +0 -0
  40. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/siphash.h +0 -0
  41. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/symbol.h +0 -0
  42. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/thread_pthread.h +0 -0
  43. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/thread_win32.h +0 -0
  44. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/timev.h +0 -0
  45. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/transcode_data.h +0 -0
  46. data/lib/debase/ruby_core_source/ruby-2.5.1-p57/version.h +73 -0
  47. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/vm.inc +13 -13
  48. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/vm_call_iseq_optimized.inc +0 -0
  49. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/vm_core.h +3 -4
  50. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.5.1-p57}/vm_debug.h +0 -0
  51. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/vm_exec.h +0 -0
  52. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/vm_insnhelper.h +0 -0
  53. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/vm_opts.h +1 -2
  54. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.5.1-p57}/vmtc.inc +2 -2
  55. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/addr2line.h +1 -1
  56. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/ccan/build_assert/build_assert.h +0 -0
  57. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/ccan/check_type/check_type.h +0 -0
  58. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/ccan/container_of/container_of.h +0 -0
  59. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/ccan/list/list.h +20 -5
  60. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/ccan/str/str.h +0 -0
  61. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/constant.h +1 -0
  62. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/debug_counter.h +283 -0
  63. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/dln.h +0 -0
  64. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/encindex.h +2 -0
  65. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.6.0-p0}/eval_intern.h +45 -53
  66. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.6.0-p0}/gc.h +2 -3
  67. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/hrtime.h +168 -0
  68. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/id.h +4 -2
  69. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/id_table.h +0 -0
  70. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/insns.inc +249 -0
  71. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/insns_info.inc +9374 -0
  72. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.6.0-p0}/internal.h +608 -100
  73. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.6.0-p0}/iseq.h +127 -91
  74. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/known_errors.inc +477 -432
  75. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.6.0-p0}/method.h +28 -15
  76. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/mjit.h +148 -0
  77. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/mjit_compile.inc +4224 -0
  78. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/node.h +449 -0
  79. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.6.0-p0}/node_name.inc +6 -18
  80. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/opt_sc.inc +109 -0
  81. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/optinsn.inc +128 -0
  82. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/optunifs.inc +43 -0
  83. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/parse.h +210 -0
  84. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/probes_helper.h +42 -0
  85. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/regenc.h +1 -1
  86. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/regint.h +0 -0
  87. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/regparse.h +1 -1
  88. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/revision.h +1 -0
  89. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/ruby_assert.h +6 -0
  90. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/ruby_atomic.h +14 -3
  91. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/siphash.h +1 -1
  92. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/symbol.h +1 -1
  93. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/thread_pthread.h +75 -0
  94. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/thread_win32.h +0 -0
  95. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/timev.h +53 -0
  96. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/transcode_data.h +0 -0
  97. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/transient_heap.h +60 -0
  98. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/version.h +7 -7
  99. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/vm.inc +4502 -0
  100. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/vm_call_iseq_optimized.inc +213 -0
  101. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.6.0-p0}/vm_core.h +385 -182
  102. data/lib/debase/ruby_core_source/{ruby-2.5.0-rc1 → ruby-2.6.0-p0}/vm_debug.h +0 -0
  103. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.6.0-p0}/vm_exec.h +33 -13
  104. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/vm_insnhelper.h +316 -0
  105. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.6.0-p0}/vm_opts.h +18 -5
  106. data/lib/debase/ruby_core_source/ruby-2.6.0-p0/vmtc.inc +243 -0
  107. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/addr2line.h +21 -0
  108. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ccan/build_assert/build_assert.h +40 -0
  109. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ccan/check_type/check_type.h +63 -0
  110. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ccan/container_of/container_of.h +142 -0
  111. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ccan/list/list.h +788 -0
  112. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ccan/str/str.h +16 -0
  113. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/constant.h +51 -0
  114. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/debug_counter.h +283 -0
  115. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/dln.h +51 -0
  116. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/encindex.h +69 -0
  117. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/eval_intern.h +333 -0
  118. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/gc.h +116 -0
  119. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/hrtime.h +168 -0
  120. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/id.h +252 -0
  121. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/id_table.h +31 -0
  122. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/insns.inc +249 -0
  123. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/insns_info.inc +9374 -0
  124. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/internal.h +2470 -0
  125. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/iseq.h +304 -0
  126. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/known_errors.inc +791 -0
  127. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/method.h +229 -0
  128. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/mjit.h +148 -0
  129. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/mjit_compile.inc +4226 -0
  130. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/node.h +449 -0
  131. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/node_name.inc +200 -0
  132. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/opt_sc.inc +109 -0
  133. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/optinsn.inc +128 -0
  134. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/optunifs.inc +43 -0
  135. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.6.5-p114}/parse.h +47 -31
  136. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/probes_helper.h +42 -0
  137. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/regenc.h +254 -0
  138. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/regint.h +938 -0
  139. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/regparse.h +370 -0
  140. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/revision.h +1 -0
  141. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ruby_assert.h +60 -0
  142. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ruby_atomic.h +244 -0
  143. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/siphash.h +48 -0
  144. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/symbol.h +112 -0
  145. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/thread_pthread.h +75 -0
  146. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/thread_win32.h +36 -0
  147. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/timev.h +53 -0
  148. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/transcode_data.h +139 -0
  149. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/transient_heap.h +60 -0
  150. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.6.5-p114}/version.h +7 -7
  151. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm.inc +4504 -0
  152. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_call_iseq_optimized.inc +213 -0
  153. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_core.h +1910 -0
  154. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_debug.h +37 -0
  155. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_exec.h +202 -0
  156. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_insnhelper.h +316 -0
  157. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_opts.h +70 -0
  158. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vmtc.inc +243 -0
  159. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/addr2line.h +21 -0
  160. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/builtin.h +78 -0
  161. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ccan/build_assert/build_assert.h +40 -0
  162. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ccan/check_type/check_type.h +63 -0
  163. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ccan/container_of/container_of.h +142 -0
  164. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ccan/list/list.h +788 -0
  165. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ccan/str/str.h +16 -0
  166. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/constant.h +50 -0
  167. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/debug_counter.h +390 -0
  168. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/dln.h +51 -0
  169. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/encindex.h +69 -0
  170. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/eval_intern.h +312 -0
  171. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/gc.h +131 -0
  172. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/hrtime.h +168 -0
  173. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/id.h +290 -0
  174. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/id_table.h +34 -0
  175. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/insns.inc +253 -0
  176. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/insns_info.inc +9197 -0
  177. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/internal.h +2697 -0
  178. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/iseq.h +312 -0
  179. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/known_errors.inc +791 -0
  180. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/method.h +229 -0
  181. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/mjit.h +177 -0
  182. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/mjit_compile.inc +7779 -0
  183. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/node.h +476 -0
  184. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/node_name.inc +208 -0
  185. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/opt_sc.inc +109 -0
  186. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/optinsn.inc +128 -0
  187. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/optunifs.inc +43 -0
  188. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/parse.h +210 -0
  189. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/probes_helper.h +42 -0
  190. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/regenc.h +254 -0
  191. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/regint.h +938 -0
  192. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/regparse.h +370 -0
  193. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/revision.h +2 -0
  194. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ruby_assert.h +15 -0
  195. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ruby_atomic.h +244 -0
  196. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/siphash.h +48 -0
  197. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/symbol.h +119 -0
  198. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/thread_pthread.h +75 -0
  199. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/thread_win32.h +36 -0
  200. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/timev.h +56 -0
  201. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/transcode_data.h +139 -0
  202. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/transient_heap.h +62 -0
  203. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/variable.h +9 -0
  204. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/version.h +77 -0
  205. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm.inc +5466 -0
  206. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_call_iseq_optimized.inc +237 -0
  207. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_core.h +1968 -0
  208. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_debug.h +34 -0
  209. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_exec.h +193 -0
  210. data/lib/debase/ruby_core_source/{ruby-2.5.0-preview1 → ruby-2.7.0-p0}/vm_insnhelper.h +81 -64
  211. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_opts.h +72 -0
  212. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vmtc.inc +247 -0
  213. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/addr2line.h +20 -0
  214. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/builtin.h +83 -0
  215. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ccan/build_assert/build_assert.h +40 -0
  216. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ccan/check_type/check_type.h +63 -0
  217. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ccan/container_of/container_of.h +142 -0
  218. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ccan/list/list.h +788 -0
  219. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ccan/str/str.h +16 -0
  220. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/constant.h +55 -0
  221. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/debug_counter.h +423 -0
  222. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/dln.h +36 -0
  223. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/encindex.h +70 -0
  224. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/eval_intern.h +312 -0
  225. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/gc.h +140 -0
  226. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/hrtime.h +168 -0
  227. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/id.h +290 -0
  228. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/id_table.h +36 -0
  229. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/insns.inc +249 -0
  230. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/insns_info.inc +8979 -0
  231. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal.h +107 -0
  232. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/array.h +114 -0
  233. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/bignum.h +246 -0
  234. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/bits.h +566 -0
  235. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/class.h +168 -0
  236. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/compar.h +50 -0
  237. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/compile.h +32 -0
  238. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/compilers.h +108 -0
  239. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/complex.h +29 -0
  240. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/cont.h +25 -0
  241. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/dir.h +17 -0
  242. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/enc.h +20 -0
  243. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/encoding.h +28 -0
  244. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/enum.h +19 -0
  245. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/enumerator.h +22 -0
  246. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/error.h +131 -0
  247. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/eval.h +33 -0
  248. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/file.h +39 -0
  249. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/fixnum.h +185 -0
  250. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/gc.h +154 -0
  251. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/hash.h +240 -0
  252. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/imemo.h +243 -0
  253. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/inits.h +51 -0
  254. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/io.h +35 -0
  255. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/load.h +19 -0
  256. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/loadpath.h +17 -0
  257. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/math.h +24 -0
  258. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/missing.h +19 -0
  259. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/mjit.h +29 -0
  260. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/numeric.h +252 -0
  261. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/object.h +83 -0
  262. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/parse.h +23 -0
  263. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/proc.h +32 -0
  264. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/process.h +136 -0
  265. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/random.h +17 -0
  266. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/range.h +37 -0
  267. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/rational.h +69 -0
  268. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/re.h +29 -0
  269. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/sanitizers.h +191 -0
  270. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/scheduler.h +35 -0
  271. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/serial.h +24 -0
  272. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/signal.h +22 -0
  273. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/static_assert.h +17 -0
  274. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/string.h +135 -0
  275. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/struct.h +154 -0
  276. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/symbol.h +41 -0
  277. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/thread.h +60 -0
  278. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/time.h +35 -0
  279. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/transcode.h +21 -0
  280. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/util.h +31 -0
  281. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/variable.h +83 -0
  282. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/vm.h +135 -0
  283. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/warnings.h +17 -0
  284. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/iseq.h +304 -0
  285. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/known_errors.inc +791 -0
  286. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/method.h +245 -0
  287. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/mjit.h +197 -0
  288. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/mjit_compile.inc +8082 -0
  289. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/node.h +484 -0
  290. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/node_name.inc +210 -0
  291. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/opt_sc.inc +109 -0
  292. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/optinsn.inc +128 -0
  293. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/optunifs.inc +43 -0
  294. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/parse.h +211 -0
  295. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/probes_helper.h +44 -0
  296. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ractor.h +271 -0
  297. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ractor_pub.h +50 -0
  298. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/regenc.h +254 -0
  299. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/regint.h +938 -0
  300. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/regparse.h +370 -0
  301. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/revision.h +2 -0
  302. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ruby_assert.h +15 -0
  303. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ruby_atomic.h +236 -0
  304. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/siphash.h +48 -0
  305. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/symbol.h +119 -0
  306. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/thread_pthread.h +106 -0
  307. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/thread_win32.h +66 -0
  308. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/timev.h +57 -0
  309. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/transcode_data.h +138 -0
  310. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/transient_heap.h +61 -0
  311. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/variable.h +21 -0
  312. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/version.h +89 -0
  313. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm.inc +5360 -0
  314. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_call_iseq_optimized.inc +244 -0
  315. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_callinfo.h +457 -0
  316. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_core.h +1952 -0
  317. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_debug.h +116 -0
  318. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_exec.h +196 -0
  319. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_insnhelper.h +260 -0
  320. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_opts.h +73 -0
  321. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vm_sync.h +97 -0
  322. data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/vmtc.inc +243 -0
  323. data/lib/debase/ruby_core_source/version.rb +1 -1
  324. metadata +335 -102
  325. data/lib/debase/ruby_core_source/ruby-2.5.0-preview1/insns.inc +0 -118
  326. data/lib/debase/ruby_core_source/ruby-2.5.0-preview1/insns_info.inc +0 -827
  327. data/lib/debase/ruby_core_source/ruby-2.5.0-preview1/node.h +0 -523
  328. data/lib/debase/ruby_core_source/ruby-2.5.0-preview1/opt_sc.inc +0 -809
  329. data/lib/debase/ruby_core_source/ruby-2.5.0-preview1/optinsn.inc +0 -77
  330. data/lib/debase/ruby_core_source/ruby-2.5.0-preview1/optunifs.inc +0 -49
  331. data/lib/debase/ruby_core_source/ruby-2.5.0-preview1/probes_helper.h +0 -43
  332. data/lib/debase/ruby_core_source/ruby-2.5.0-preview1/revision.h +0 -1
  333. data/lib/debase/ruby_core_source/ruby-2.5.0-preview1/vm.inc +0 -2935
  334. data/lib/debase/ruby_core_source/ruby-2.5.0-preview1/vm_call_iseq_optimized.inc +0 -212
  335. data/lib/debase/ruby_core_source/ruby-2.5.0-preview1/vmtc.inc +0 -115
  336. data/lib/debase/ruby_core_source/ruby-2.5.0-rc1/debug_counter.h +0 -109
  337. data/lib/debase/ruby_core_source/ruby-2.5.0-rc1/revision.h +0 -1
  338. data/lib/debase/ruby_core_source/ruby-2.5.0-rc1/thread_pthread.h +0 -54
  339. data/lib/debase/ruby_core_source/ruby-2.5.0-rc1/timev.h +0 -42
@@ -0,0 +1,16 @@
1
+ /* CC0 (Public domain) - see ccan/licenses/CC0 file for details */
2
+ #ifndef CCAN_STR_H
3
+ #define CCAN_STR_H
4
+ /**
5
+ * stringify - Turn expression into a string literal
6
+ * @expr: any C expression
7
+ *
8
+ * Example:
9
+ * #define PRINT_COND_IF_FALSE(cond) \
10
+ * ((cond) || printf("%s is false!", stringify(cond)))
11
+ */
12
+ #define stringify(expr) stringify_1(expr)
13
+ /* Double-indirection required to stringify expansions */
14
+ #define stringify_1(expr) #expr
15
+
16
+ #endif /* CCAN_STR_H */
@@ -0,0 +1,55 @@
1
+ #ifndef CONSTANT_H
2
+ #define CONSTANT_H
3
+ /**********************************************************************
4
+
5
+ constant.h -
6
+
7
+ $Author$
8
+ created at: Sun Nov 15 00:09:33 2009
9
+
10
+ Copyright (C) 2009 Yusuke Endoh
11
+
12
+ **********************************************************************/
13
+ #include "ruby/ruby.h"
14
+ #include "id_table.h"
15
+
16
+ typedef enum {
17
+ CONST_DEPRECATED = 0x100,
18
+
19
+ CONST_VISIBILITY_MASK = 0xff,
20
+ CONST_PUBLIC = 0x00,
21
+ CONST_PRIVATE,
22
+ CONST_VISIBILITY_MAX
23
+ } rb_const_flag_t;
24
+
25
+ #define RB_CONST_PRIVATE_P(ce) \
26
+ (((ce)->flag & CONST_VISIBILITY_MASK) == CONST_PRIVATE)
27
+ #define RB_CONST_PUBLIC_P(ce) \
28
+ (((ce)->flag & CONST_VISIBILITY_MASK) == CONST_PUBLIC)
29
+
30
+ #define RB_CONST_DEPRECATED_P(ce) \
31
+ ((ce)->flag & CONST_DEPRECATED)
32
+
33
+ typedef struct rb_const_entry_struct {
34
+ rb_const_flag_t flag;
35
+ int line;
36
+ VALUE value; /* should be mark */
37
+ VALUE file; /* should be mark */
38
+ } rb_const_entry_t;
39
+
40
+ VALUE rb_mod_private_constant(int argc, const VALUE *argv, VALUE obj);
41
+ VALUE rb_mod_public_constant(int argc, const VALUE *argv, VALUE obj);
42
+ VALUE rb_mod_deprecate_constant(int argc, const VALUE *argv, VALUE obj);
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);
49
+ VALUE rb_public_const_get_at(VALUE klass, ID id);
50
+ VALUE rb_public_const_get_from(VALUE klass, ID id);
51
+ int rb_public_const_defined_from(VALUE klass, ID id);
52
+ VALUE rb_const_source_location_at(VALUE, ID);
53
+ MJIT_SYMBOL_EXPORT_END
54
+
55
+ #endif /* CONSTANT_H */
@@ -0,0 +1,423 @@
1
+ /**********************************************************************
2
+
3
+ debug_counter.h -
4
+
5
+ created at: Tue Feb 21 16:51:18 2017
6
+
7
+ Copyright (C) 2017 Koichi Sasada
8
+
9
+ **********************************************************************/
10
+
11
+ #ifndef USE_DEBUG_COUNTER
12
+ #define USE_DEBUG_COUNTER 0
13
+ #endif
14
+
15
+ #ifdef RB_DEBUG_COUNTER
16
+
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_cme_complement) // number of acquiring complement CME
22
+ RB_DEBUG_COUNTER(mc_cme_complement_hit) // number of cache hit for complemented CME
23
+
24
+ RB_DEBUG_COUNTER(mc_search) // count for method lookup in class tree
25
+ RB_DEBUG_COUNTER(mc_search_notfound) // method lookup, but not found
26
+ RB_DEBUG_COUNTER(mc_search_super) // total traversed classes
27
+
28
+ // callinfo
29
+ RB_DEBUG_COUNTER(ci_packed) // number of packed CI
30
+ RB_DEBUG_COUNTER(ci_kw) // non-packed CI w/ keywords
31
+ RB_DEBUG_COUNTER(ci_nokw) // non-packed CI w/o keywords
32
+ RB_DEBUG_COUNTER(ci_runtime) // creating temporary CI
33
+
34
+ // callcache
35
+ RB_DEBUG_COUNTER(cc_new) // number of CC
36
+ RB_DEBUG_COUNTER(cc_temp) // dummy CC (stack-allocated)
37
+ RB_DEBUG_COUNTER(cc_found_ccs) // count for CC lookup success in CCS
38
+
39
+ RB_DEBUG_COUNTER(cc_ent_invalidate) // count for invalidating cc (cc->klass = 0)
40
+ RB_DEBUG_COUNTER(cc_cme_invalidate) // count for invalidating CME
41
+
42
+ RB_DEBUG_COUNTER(cc_invalidate_leaf) // count for invalidating klass if klass has no-sublcasses
43
+ RB_DEBUG_COUNTER(cc_invalidate_leaf_ccs) // corresponding CCS
44
+ RB_DEBUG_COUNTER(cc_invalidate_leaf_callable) // complimented cache (no-subclasses)
45
+ RB_DEBUG_COUNTER(cc_invalidate_tree) // count for invalidating klass if klass has sublcasses
46
+ RB_DEBUG_COUNTER(cc_invalidate_tree_cme) // cme if cme is found in this class or superclasses
47
+ RB_DEBUG_COUNTER(cc_invalidate_tree_callable) // complimented cache (subclasses)
48
+
49
+ RB_DEBUG_COUNTER(ccs_free) // count for free'ing ccs
50
+ RB_DEBUG_COUNTER(ccs_maxlen) // maximum length of ccs
51
+ RB_DEBUG_COUNTER(ccs_found) // count for finding corresponding ccs on method lookup
52
+
53
+ // iseq
54
+ RB_DEBUG_COUNTER(iseq_num) // number of total created iseq
55
+ RB_DEBUG_COUNTER(iseq_cd_num) // number of total created cd (call_data)
56
+
57
+ /*
58
+ * call cache fastpath usage
59
+ */
60
+ RB_DEBUG_COUNTER(ccf_general)
61
+ RB_DEBUG_COUNTER(ccf_iseq_setup)
62
+ RB_DEBUG_COUNTER(ccf_iseq_setup_0start)
63
+ RB_DEBUG_COUNTER(ccf_iseq_setup_tailcall_0start)
64
+ RB_DEBUG_COUNTER(ccf_iseq_fix) /* several functions created with tool/mk_call_iseq_optimized.rb */
65
+ RB_DEBUG_COUNTER(ccf_iseq_opt) /* has_opt == TRUE (has optional parameters), but other flags are FALSE */
66
+ RB_DEBUG_COUNTER(ccf_iseq_kw1) /* vm_call_iseq_setup_kwparm_kwarg() */
67
+ RB_DEBUG_COUNTER(ccf_iseq_kw2) /* vm_call_iseq_setup_kwparm_nokwarg() */
68
+ RB_DEBUG_COUNTER(ccf_cfunc)
69
+ RB_DEBUG_COUNTER(ccf_cfunc_with_frame)
70
+ RB_DEBUG_COUNTER(ccf_ivar) /* attr_reader */
71
+ RB_DEBUG_COUNTER(ccf_attrset) /* attr_writer */
72
+ RB_DEBUG_COUNTER(ccf_method_missing)
73
+ RB_DEBUG_COUNTER(ccf_zsuper)
74
+ RB_DEBUG_COUNTER(ccf_bmethod)
75
+ RB_DEBUG_COUNTER(ccf_opt_send)
76
+ RB_DEBUG_COUNTER(ccf_opt_call)
77
+ RB_DEBUG_COUNTER(ccf_opt_block_call)
78
+ RB_DEBUG_COUNTER(ccf_super_method)
79
+
80
+ /*
81
+ * control frame push counts.
82
+ *
83
+ * * frame_push: frame push counts.
84
+ * * frame_push_*: frame push counts per each type.
85
+ * * frame_R2R: Ruby frame to Ruby frame
86
+ * * frame_R2C: Ruby frame to C frame
87
+ * * frame_C2C: C frame to C frame
88
+ * * frame_C2R: C frame to Ruby frame
89
+ */
90
+ RB_DEBUG_COUNTER(frame_push)
91
+ RB_DEBUG_COUNTER(frame_push_method)
92
+ RB_DEBUG_COUNTER(frame_push_block)
93
+ RB_DEBUG_COUNTER(frame_push_class)
94
+ RB_DEBUG_COUNTER(frame_push_top)
95
+ RB_DEBUG_COUNTER(frame_push_cfunc)
96
+ RB_DEBUG_COUNTER(frame_push_ifunc)
97
+ RB_DEBUG_COUNTER(frame_push_eval)
98
+ RB_DEBUG_COUNTER(frame_push_rescue)
99
+ RB_DEBUG_COUNTER(frame_push_dummy)
100
+
101
+ RB_DEBUG_COUNTER(frame_R2R)
102
+ RB_DEBUG_COUNTER(frame_R2C)
103
+ RB_DEBUG_COUNTER(frame_C2C)
104
+ RB_DEBUG_COUNTER(frame_C2R)
105
+
106
+ /* instance variable counts
107
+ *
108
+ * * ivar_get_ic_hit/miss: ivar_get inline cache (ic) hit/miss counts (VM insn)
109
+ * * ivar_get_ic_miss_serial: ivar_get ic miss reason by serial (VM insn)
110
+ * * ivar_get_ic_miss_unset: ... by unset (VM insn)
111
+ * * ivar_get_ic_miss_noobject: ... by "not T_OBJECT" (VM insn)
112
+ * * ivar_set_...: same counts with ivar_set (VM insn)
113
+ * * ivar_get/set_base: call counts of "rb_ivar_get/set()".
114
+ * because of (1) ic miss.
115
+ * (2) direct call by C extensions.
116
+ */
117
+ RB_DEBUG_COUNTER(ivar_get_ic_hit)
118
+ RB_DEBUG_COUNTER(ivar_get_ic_miss)
119
+ RB_DEBUG_COUNTER(ivar_get_ic_miss_serial)
120
+ RB_DEBUG_COUNTER(ivar_get_ic_miss_unset)
121
+ RB_DEBUG_COUNTER(ivar_get_ic_miss_noobject)
122
+ RB_DEBUG_COUNTER(ivar_set_ic_hit)
123
+ RB_DEBUG_COUNTER(ivar_set_ic_miss)
124
+ RB_DEBUG_COUNTER(ivar_set_ic_miss_serial)
125
+ RB_DEBUG_COUNTER(ivar_set_ic_miss_unset)
126
+ RB_DEBUG_COUNTER(ivar_set_ic_miss_oorange)
127
+ RB_DEBUG_COUNTER(ivar_set_ic_miss_noobject)
128
+ RB_DEBUG_COUNTER(ivar_get_base)
129
+ RB_DEBUG_COUNTER(ivar_set_base)
130
+
131
+ /* local variable counts
132
+ *
133
+ * * lvar_get: total lvar get counts (VM insn)
134
+ * * lvar_get_dynamic: lvar get counts if accessing upper env (VM insn)
135
+ * * lvar_set*: same as "get"
136
+ * * lvar_set_slowpath: counts using vm_env_write_slowpath()
137
+ */
138
+ RB_DEBUG_COUNTER(lvar_get)
139
+ RB_DEBUG_COUNTER(lvar_get_dynamic)
140
+ RB_DEBUG_COUNTER(lvar_set)
141
+ RB_DEBUG_COUNTER(lvar_set_dynamic)
142
+ RB_DEBUG_COUNTER(lvar_set_slowpath)
143
+
144
+ /* GC counts:
145
+ *
146
+ * * count: simple count
147
+ * * _minor: minor gc
148
+ * * _major: major gc
149
+ * * other suffix is corresponding to last_gc_info or
150
+ * gc_profile_record_flag in gc.c.
151
+ */
152
+ RB_DEBUG_COUNTER(gc_count)
153
+ RB_DEBUG_COUNTER(gc_minor_newobj)
154
+ RB_DEBUG_COUNTER(gc_minor_malloc)
155
+ RB_DEBUG_COUNTER(gc_minor_method)
156
+ RB_DEBUG_COUNTER(gc_minor_capi)
157
+ RB_DEBUG_COUNTER(gc_minor_stress)
158
+ RB_DEBUG_COUNTER(gc_major_nofree)
159
+ RB_DEBUG_COUNTER(gc_major_oldgen)
160
+ RB_DEBUG_COUNTER(gc_major_shady)
161
+ RB_DEBUG_COUNTER(gc_major_force)
162
+ RB_DEBUG_COUNTER(gc_major_oldmalloc)
163
+
164
+ RB_DEBUG_COUNTER(gc_isptr_trial)
165
+ RB_DEBUG_COUNTER(gc_isptr_range)
166
+ RB_DEBUG_COUNTER(gc_isptr_align)
167
+ RB_DEBUG_COUNTER(gc_isptr_maybe)
168
+
169
+ /* object allocation counts:
170
+ *
171
+ * * obj_newobj: newobj counts
172
+ * * obj_newobj_slowpath: newobj with slowpath counts
173
+ * * obj_newobj_wb_unprotected: newobj for wb_unprotected.
174
+ * * obj_free: obj_free() counts
175
+ * * obj_promote: promoted counts (oldgen)
176
+ * * obj_wb_unprotect: wb unprotect counts
177
+ *
178
+ * * obj_[type]_[attr]: *free'ed counts* for each type.
179
+ * Note that it is not a allocated counts.
180
+ * * [type]
181
+ * * _obj: T_OBJECT
182
+ * * _str: T_STRING
183
+ * * _ary: T_ARRAY
184
+ * * _xxx: T_XXX (hash, struct, ...)
185
+ *
186
+ * * [attr]
187
+ * * _ptr: R?? is not embed.
188
+ * * _embed: R?? is embed.
189
+ * * _transient: R?? uses transient heap.
190
+ * * type specific attr.
191
+ * * str_shared: str is shared.
192
+ * * str_nofree: nofree
193
+ * * str_fstr: fstr
194
+ * * hash_empty: hash is empty
195
+ * * hash_1_4: has 1 to 4 entries
196
+ * * hash_5_8: has 5 to 8 entries
197
+ * * hash_g8: has n entries (n>8)
198
+ * * match_under4: has under 4 oniguruma regions allocated
199
+ * * match_ge4: has n regions allocated (4<=n<8)
200
+ * * match_ge8: has n regions allocated (8<=n)
201
+ * * data_empty: T_DATA but no memory free.
202
+ * * data_xfree: free'ed by xfree().
203
+ * * data_imm_free: free'ed immediately.
204
+ * * data_zombie: free'ed with zombie.
205
+ * * imemo_*: T_IMEMO with each type.
206
+ */
207
+ RB_DEBUG_COUNTER(obj_newobj)
208
+ RB_DEBUG_COUNTER(obj_newobj_slowpath)
209
+ RB_DEBUG_COUNTER(obj_newobj_wb_unprotected)
210
+ RB_DEBUG_COUNTER(obj_free)
211
+ RB_DEBUG_COUNTER(obj_promote)
212
+ RB_DEBUG_COUNTER(obj_wb_unprotect)
213
+
214
+ RB_DEBUG_COUNTER(obj_obj_embed)
215
+ RB_DEBUG_COUNTER(obj_obj_transient)
216
+ RB_DEBUG_COUNTER(obj_obj_ptr)
217
+
218
+ RB_DEBUG_COUNTER(obj_str_ptr)
219
+ RB_DEBUG_COUNTER(obj_str_embed)
220
+ RB_DEBUG_COUNTER(obj_str_shared)
221
+ RB_DEBUG_COUNTER(obj_str_nofree)
222
+ RB_DEBUG_COUNTER(obj_str_fstr)
223
+
224
+ RB_DEBUG_COUNTER(obj_ary_embed)
225
+ RB_DEBUG_COUNTER(obj_ary_transient)
226
+ RB_DEBUG_COUNTER(obj_ary_ptr)
227
+ RB_DEBUG_COUNTER(obj_ary_extracapa)
228
+ /*
229
+ ary_shared_create: shared ary by Array#dup and so on.
230
+ ary_shared: finished in shard.
231
+ ary_shared_root_occupied: shared_root but has only 1 refcnt.
232
+ The number (ary_shared - ary_shared_root_occupied) is meaningful.
233
+ */
234
+ RB_DEBUG_COUNTER(obj_ary_shared_create)
235
+ RB_DEBUG_COUNTER(obj_ary_shared)
236
+ RB_DEBUG_COUNTER(obj_ary_shared_root_occupied)
237
+
238
+ RB_DEBUG_COUNTER(obj_hash_empty)
239
+ RB_DEBUG_COUNTER(obj_hash_1)
240
+ RB_DEBUG_COUNTER(obj_hash_2)
241
+ RB_DEBUG_COUNTER(obj_hash_3)
242
+ RB_DEBUG_COUNTER(obj_hash_4)
243
+ RB_DEBUG_COUNTER(obj_hash_5_8)
244
+ RB_DEBUG_COUNTER(obj_hash_g8)
245
+
246
+ RB_DEBUG_COUNTER(obj_hash_null)
247
+ RB_DEBUG_COUNTER(obj_hash_ar)
248
+ RB_DEBUG_COUNTER(obj_hash_st)
249
+ RB_DEBUG_COUNTER(obj_hash_transient)
250
+ RB_DEBUG_COUNTER(obj_hash_force_convert)
251
+
252
+ RB_DEBUG_COUNTER(obj_struct_embed)
253
+ RB_DEBUG_COUNTER(obj_struct_transient)
254
+ RB_DEBUG_COUNTER(obj_struct_ptr)
255
+
256
+ RB_DEBUG_COUNTER(obj_data_empty)
257
+ RB_DEBUG_COUNTER(obj_data_xfree)
258
+ RB_DEBUG_COUNTER(obj_data_imm_free)
259
+ RB_DEBUG_COUNTER(obj_data_zombie)
260
+
261
+ RB_DEBUG_COUNTER(obj_match_under4)
262
+ RB_DEBUG_COUNTER(obj_match_ge4)
263
+ RB_DEBUG_COUNTER(obj_match_ge8)
264
+ RB_DEBUG_COUNTER(obj_match_ptr)
265
+
266
+ RB_DEBUG_COUNTER(obj_iclass_ptr)
267
+ RB_DEBUG_COUNTER(obj_class_ptr)
268
+ RB_DEBUG_COUNTER(obj_module_ptr)
269
+
270
+ RB_DEBUG_COUNTER(obj_bignum_ptr)
271
+ RB_DEBUG_COUNTER(obj_bignum_embed)
272
+ RB_DEBUG_COUNTER(obj_float)
273
+ RB_DEBUG_COUNTER(obj_complex)
274
+ RB_DEBUG_COUNTER(obj_rational)
275
+
276
+ RB_DEBUG_COUNTER(obj_regexp_ptr)
277
+ RB_DEBUG_COUNTER(obj_file_ptr)
278
+ RB_DEBUG_COUNTER(obj_symbol)
279
+
280
+ RB_DEBUG_COUNTER(obj_imemo_ment)
281
+ RB_DEBUG_COUNTER(obj_imemo_iseq)
282
+ RB_DEBUG_COUNTER(obj_imemo_env)
283
+ RB_DEBUG_COUNTER(obj_imemo_tmpbuf)
284
+ RB_DEBUG_COUNTER(obj_imemo_ast)
285
+ RB_DEBUG_COUNTER(obj_imemo_cref)
286
+ RB_DEBUG_COUNTER(obj_imemo_svar)
287
+ RB_DEBUG_COUNTER(obj_imemo_throw_data)
288
+ RB_DEBUG_COUNTER(obj_imemo_ifunc)
289
+ RB_DEBUG_COUNTER(obj_imemo_memo)
290
+ RB_DEBUG_COUNTER(obj_imemo_parser_strterm)
291
+ RB_DEBUG_COUNTER(obj_imemo_callinfo)
292
+ RB_DEBUG_COUNTER(obj_imemo_callcache)
293
+
294
+ /* ar_table */
295
+ RB_DEBUG_COUNTER(artable_hint_hit)
296
+ RB_DEBUG_COUNTER(artable_hint_miss)
297
+ RB_DEBUG_COUNTER(artable_hint_notfound)
298
+
299
+ /* heap function counts
300
+ *
301
+ * * heap_xmalloc/realloc/xfree: call counts
302
+ */
303
+ RB_DEBUG_COUNTER(heap_xmalloc)
304
+ RB_DEBUG_COUNTER(heap_xrealloc)
305
+ RB_DEBUG_COUNTER(heap_xfree)
306
+
307
+ /* transient_heap */
308
+ RB_DEBUG_COUNTER(theap_alloc)
309
+ RB_DEBUG_COUNTER(theap_alloc_fail)
310
+ RB_DEBUG_COUNTER(theap_evacuate)
311
+
312
+ /* mjit_exec() counts */
313
+ RB_DEBUG_COUNTER(mjit_exec)
314
+ RB_DEBUG_COUNTER(mjit_exec_not_added)
315
+ RB_DEBUG_COUNTER(mjit_exec_not_ready)
316
+ RB_DEBUG_COUNTER(mjit_exec_not_compiled)
317
+ RB_DEBUG_COUNTER(mjit_exec_call_func)
318
+
319
+ /* MJIT enqueue / unload */
320
+ RB_DEBUG_COUNTER(mjit_add_iseq_to_process)
321
+ RB_DEBUG_COUNTER(mjit_unload_units)
322
+
323
+ /* MJIT <-> VM frame push counts */
324
+ RB_DEBUG_COUNTER(mjit_frame_VM2VM)
325
+ RB_DEBUG_COUNTER(mjit_frame_VM2JT)
326
+ RB_DEBUG_COUNTER(mjit_frame_JT2JT)
327
+ RB_DEBUG_COUNTER(mjit_frame_JT2VM)
328
+
329
+ /* MJIT cancel counters */
330
+ RB_DEBUG_COUNTER(mjit_cancel)
331
+ RB_DEBUG_COUNTER(mjit_cancel_ivar_inline)
332
+ RB_DEBUG_COUNTER(mjit_cancel_exivar_inline)
333
+ RB_DEBUG_COUNTER(mjit_cancel_send_inline)
334
+ RB_DEBUG_COUNTER(mjit_cancel_opt_insn) /* CALL_SIMPLE_METHOD */
335
+ RB_DEBUG_COUNTER(mjit_cancel_invalidate_all)
336
+ RB_DEBUG_COUNTER(mjit_cancel_leave)
337
+
338
+ /* rb_mjit_unit_list length */
339
+ RB_DEBUG_COUNTER(mjit_length_unit_queue)
340
+ RB_DEBUG_COUNTER(mjit_length_active_units)
341
+ RB_DEBUG_COUNTER(mjit_length_compact_units)
342
+ RB_DEBUG_COUNTER(mjit_length_stale_units)
343
+
344
+ /* Other MJIT counters */
345
+ RB_DEBUG_COUNTER(mjit_compile_failures)
346
+
347
+ /* load (not implemented yet) */
348
+ /*
349
+ RB_DEBUG_COUNTER(load_files)
350
+ RB_DEBUG_COUNTER(load_path_is_not_realpath)
351
+ */
352
+ #endif
353
+
354
+ #ifndef RUBY_DEBUG_COUNTER_H
355
+ #define RUBY_DEBUG_COUNTER_H 1
356
+
357
+ #include "ruby/internal/config.h"
358
+ #include <stddef.h> /* for size_t */
359
+ #include "ruby/ruby.h" /* for VALUE */
360
+
361
+ #if !defined(__GNUC__) && USE_DEBUG_COUNTER
362
+ #error "USE_DEBUG_COUNTER is not supported by other than __GNUC__"
363
+ #endif
364
+
365
+ enum rb_debug_counter_type {
366
+ #define RB_DEBUG_COUNTER(name) RB_DEBUG_COUNTER_##name,
367
+ #include __FILE__
368
+ RB_DEBUG_COUNTER_MAX
369
+ #undef RB_DEBUG_COUNTER
370
+ };
371
+
372
+ #if USE_DEBUG_COUNTER
373
+ extern size_t rb_debug_counter[];
374
+
375
+ inline static int
376
+ rb_debug_counter_add(enum rb_debug_counter_type type, int add, int cond)
377
+ {
378
+ if (cond) {
379
+ rb_debug_counter[(int)type] += add;
380
+ }
381
+ return cond;
382
+ }
383
+
384
+ inline static int
385
+ rb_debug_counter_max(enum rb_debug_counter_type type, unsigned int num)
386
+ {
387
+ if (rb_debug_counter[(int)type] < num) {
388
+ rb_debug_counter[(int)type] = num;
389
+ return 1;
390
+ }
391
+ else {
392
+ return 0;
393
+ }
394
+ }
395
+
396
+ VALUE rb_debug_counter_reset(VALUE klass);
397
+ VALUE rb_debug_counter_show(VALUE klass);
398
+
399
+ #define RB_DEBUG_COUNTER_INC(type) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, 1)
400
+ #define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (!rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, !(cond)))
401
+ #define RB_DEBUG_COUNTER_INC_IF(type, cond) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, !!(cond))
402
+ #define RB_DEBUG_COUNTER_ADD(type, num) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, (num), 1)
403
+ #define RB_DEBUG_COUNTER_SETMAX(type, num) rb_debug_counter_max(RB_DEBUG_COUNTER_##type, (unsigned int)(num))
404
+
405
+ #else
406
+ #define RB_DEBUG_COUNTER_INC(type) ((void)0)
407
+ #define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (!!(cond))
408
+ #define RB_DEBUG_COUNTER_INC_IF(type, cond) (!!(cond))
409
+ #define RB_DEBUG_COUNTER_ADD(type, num) ((void)0)
410
+ #define RB_DEBUG_COUNTER_SETMAX(type, num) 0
411
+ #endif
412
+
413
+ void rb_debug_counter_show_results(const char *msg);
414
+
415
+ RUBY_SYMBOL_EXPORT_BEGIN
416
+
417
+ size_t ruby_debug_counter_get(const char **names_ptr, size_t *counters_ptr);
418
+ void ruby_debug_counter_reset(void);
419
+ void ruby_debug_counter_show_at_exit(int enable);
420
+
421
+ RUBY_SYMBOL_EXPORT_END
422
+
423
+ #endif /* RUBY_DEBUG_COUNTER_H */