datadog-ruby_core_source 3.3.6 → 3.3.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (374) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.datadog.md +7 -1
  3. data/datadog-ruby_core_source.gemspec +6 -1
  4. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/id.h +7 -0
  5. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/array.h +1 -0
  6. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/basic_operators.h +2 -0
  7. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/bits.h +82 -0
  8. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/class.h +1 -1
  9. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/encoding.h +2 -0
  10. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/error.h +2 -0
  11. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/fixnum.h +1 -0
  12. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/gc.h +23 -28
  13. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/hash.h +1 -0
  14. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/imemo.h +7 -1
  15. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/io.h +4 -1
  16. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/parse.h +14 -2
  17. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/ractor.h +4 -0
  18. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/sanitizers.h +36 -3
  19. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/string.h +34 -18
  20. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/thread.h +29 -0
  21. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/vm.h +3 -3
  22. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/method.h +1 -0
  23. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/ast.h +2146 -453
  24. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/defines.h +44 -7
  25. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/diagnostic.h +24 -6
  26. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/extension.h +2 -2
  27. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/node.h +0 -21
  28. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/options.h +94 -3
  29. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/parser.h +82 -40
  30. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/prism.h +47 -11
  31. data/lib/datadog/ruby_core_source/ruby-3.4.0-rc1/prism/regexp.h +43 -0
  32. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/static_literals.h +3 -2
  33. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_char.h +1 -2
  34. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_constant_pool.h +0 -8
  35. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_integer.h +22 -15
  36. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_newline_list.h +11 -0
  37. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_string.h +28 -12
  38. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/version.h +3 -3
  39. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism_compile.h +23 -12
  40. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ractor_core.h +8 -20
  41. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/rubyparser.h +168 -249
  42. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/shape.h +2 -1
  43. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/thread_pthread.h +26 -25
  44. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/vm_core.h +62 -48
  45. data/lib/datadog/ruby_core_source/version.rb +1 -1
  46. data/lib/datadog/ruby_core_source.rb +14 -1
  47. metadata +109 -372
  48. data/.github/workflows/publish.yml +0 -18
  49. data/.gitignore +0 -7
  50. data/.idea/vcs.xml +0 -28
  51. data/CHANGELOG.md +0 -284
  52. data/CONTRIBUTING.md +0 -2
  53. data/Gemfile +0 -4
  54. data/Rakefile +0 -73
  55. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/addr2line.h +0 -21
  56. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/constant.h +0 -50
  57. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/debug_counter.h +0 -109
  58. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/dln.h +0 -51
  59. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/encindex.h +0 -69
  60. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/eval_intern.h +0 -334
  61. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/gc.h +0 -116
  62. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/id_table.h +0 -31
  63. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/insns.inc +0 -217
  64. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/insns_info.inc +0 -1570
  65. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/known_errors.inc +0 -746
  66. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/node_name.inc +0 -198
  67. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/opt_sc.inc +0 -1601
  68. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/optinsn.inc +0 -103
  69. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/optunifs.inc +0 -61
  70. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/parse.h +0 -206
  71. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/probes_helper.h +0 -43
  72. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/regenc.h +0 -254
  73. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/regint.h +0 -938
  74. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/regparse.h +0 -370
  75. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/revision.h +0 -1
  76. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/siphash.h +0 -48
  77. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/symbol.h +0 -108
  78. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/thread_win32.h +0 -36
  79. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/timev.h +0 -42
  80. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/transcode_data.h +0 -139
  81. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/version.h +0 -73
  82. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/vm.inc +0 -3667
  83. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/vm_call_iseq_optimized.inc +0 -213
  84. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/vm_exec.h +0 -192
  85. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/vm_insnhelper.h +0 -255
  86. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/vmtc.inc +0 -214
  87. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/addr2line.h +0 -21
  88. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/constant.h +0 -51
  89. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/debug_counter.h +0 -109
  90. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/dln.h +0 -51
  91. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/encindex.h +0 -69
  92. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/eval_intern.h +0 -334
  93. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/gc.h +0 -116
  94. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/id_table.h +0 -31
  95. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/insns.inc +0 -217
  96. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/insns_info.inc +0 -1570
  97. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/known_errors.inc +0 -746
  98. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/node_name.inc +0 -198
  99. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/opt_sc.inc +0 -1601
  100. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/optinsn.inc +0 -103
  101. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/optunifs.inc +0 -61
  102. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/parse.h +0 -206
  103. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/probes_helper.h +0 -43
  104. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/regenc.h +0 -254
  105. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/regint.h +0 -938
  106. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/regparse.h +0 -370
  107. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/revision.h +0 -1
  108. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/siphash.h +0 -48
  109. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/symbol.h +0 -108
  110. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/thread_win32.h +0 -36
  111. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/timev.h +0 -42
  112. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/transcode_data.h +0 -139
  113. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/version.h +0 -73
  114. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/vm.inc +0 -3667
  115. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/vm_call_iseq_optimized.inc +0 -213
  116. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/vm_exec.h +0 -192
  117. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/vm_insnhelper.h +0 -255
  118. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/vmtc.inc +0 -214
  119. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/addr2line.h +0 -21
  120. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/constant.h +0 -51
  121. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/debug_counter.h +0 -109
  122. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/dln.h +0 -51
  123. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/encindex.h +0 -69
  124. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/eval_intern.h +0 -334
  125. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/gc.h +0 -116
  126. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/id_table.h +0 -31
  127. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/insns.inc +0 -217
  128. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/insns_info.inc +0 -1570
  129. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/known_errors.inc +0 -746
  130. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/node_name.inc +0 -198
  131. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/opt_sc.inc +0 -1601
  132. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/optinsn.inc +0 -103
  133. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/optunifs.inc +0 -61
  134. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/parse.h +0 -200
  135. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/probes_helper.h +0 -43
  136. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/regenc.h +0 -254
  137. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/regint.h +0 -938
  138. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/regparse.h +0 -370
  139. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/revision.h +0 -1
  140. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/siphash.h +0 -48
  141. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/symbol.h +0 -108
  142. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/thread_win32.h +0 -36
  143. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/timev.h +0 -42
  144. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/transcode_data.h +0 -139
  145. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/version.h +0 -73
  146. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/vm.inc +0 -3667
  147. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/vm_call_iseq_optimized.inc +0 -213
  148. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/vm_exec.h +0 -192
  149. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/vm_insnhelper.h +0 -255
  150. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/vmtc.inc +0 -214
  151. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/addr2line.h +0 -22
  152. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/builtin.h +0 -117
  153. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/constant.h +0 -53
  154. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/darray.h +0 -246
  155. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/debug_counter.h +0 -423
  156. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/dln.h +0 -32
  157. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/encindex.h +0 -70
  158. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/eval_intern.h +0 -343
  159. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/hrtime.h +0 -227
  160. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/insns.inc +0 -251
  161. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/insns_info.inc +0 -9215
  162. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/known_errors.inc +0 -791
  163. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/node_name.inc +0 -212
  164. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/optinsn.inc +0 -128
  165. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/optunifs.inc +0 -43
  166. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/parse.h +0 -243
  167. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/parser_bits.h +0 -564
  168. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/parser_node.h +0 -32
  169. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/probes_helper.h +0 -42
  170. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/regenc.h +0 -254
  171. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/regint.h +0 -1004
  172. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/regparse.h +0 -371
  173. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/revision.h +0 -5
  174. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/rjit.h +0 -101
  175. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/rjit_c.h +0 -164
  176. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/siphash.h +0 -48
  177. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/symbol.h +0 -118
  178. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/thread_win32.h +0 -58
  179. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/timev.h +0 -58
  180. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/transcode_data.h +0 -138
  181. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/variable.h +0 -39
  182. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/version.h +0 -69
  183. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm.inc +0 -5436
  184. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_call_iseq_optimized.inc +0 -244
  185. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_callinfo.h +0 -619
  186. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_exec.h +0 -199
  187. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_insnhelper.h +0 -261
  188. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_sync.h +0 -137
  189. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vmtc.inc +0 -245
  190. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/yjit.h +0 -72
  191. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/addr2line.h +0 -22
  192. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/builtin.h +0 -117
  193. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/constant.h +0 -53
  194. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/darray.h +0 -246
  195. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/debug_counter.h +0 -423
  196. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/dln.h +0 -32
  197. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/encindex.h +0 -70
  198. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/eval_intern.h +0 -343
  199. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/hrtime.h +0 -227
  200. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/insns.inc +0 -251
  201. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/insns_info.inc +0 -9215
  202. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/known_errors.inc +0 -791
  203. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/node_name.inc +0 -212
  204. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/optinsn.inc +0 -128
  205. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/optunifs.inc +0 -43
  206. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/parse.h +0 -243
  207. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/parser_bits.h +0 -564
  208. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/parser_node.h +0 -32
  209. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/probes_helper.h +0 -42
  210. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/regenc.h +0 -254
  211. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/regint.h +0 -1006
  212. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/regparse.h +0 -371
  213. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/revision.h +0 -5
  214. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/rjit.h +0 -101
  215. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/rjit_c.h +0 -164
  216. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/siphash.h +0 -48
  217. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/symbol.h +0 -118
  218. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/thread_win32.h +0 -58
  219. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/timev.h +0 -58
  220. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/transcode_data.h +0 -138
  221. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/variable.h +0 -39
  222. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/version.h +0 -69
  223. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm.inc +0 -5436
  224. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_call_iseq_optimized.inc +0 -244
  225. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_callinfo.h +0 -614
  226. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_exec.h +0 -199
  227. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_insnhelper.h +0 -261
  228. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_sync.h +0 -137
  229. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vmtc.inc +0 -245
  230. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/yjit.h +0 -72
  231. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/addr2line.h +0 -22
  232. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/builtin.h +0 -119
  233. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/constant.h +0 -53
  234. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/darray.h +0 -191
  235. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/debug_counter.h +0 -423
  236. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/dln.h +0 -34
  237. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/encindex.h +0 -70
  238. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/eval_intern.h +0 -324
  239. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/hrtime.h +0 -237
  240. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/insns.inc +0 -259
  241. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/insns_info.inc +0 -9530
  242. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/known_errors.inc +0 -1419
  243. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/node_name.inc +0 -224
  244. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/optinsn.inc +0 -128
  245. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/optunifs.inc +0 -43
  246. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/parse.h +0 -243
  247. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/parser_bits.h +0 -564
  248. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/parser_node.h +0 -32
  249. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/prism/regexp.h +0 -33
  250. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string_list.h +0 -44
  251. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/probes_helper.h +0 -42
  252. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/regenc.h +0 -254
  253. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/regint.h +0 -1010
  254. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/regparse.h +0 -371
  255. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/revision.h +0 -5
  256. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/rjit.h +0 -101
  257. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/rjit_c.h +0 -165
  258. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/siphash.h +0 -48
  259. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/symbol.h +0 -118
  260. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/thread_win32.h +0 -58
  261. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/timev.h +0 -58
  262. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/transcode_data.h +0 -138
  263. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/variable.h +0 -39
  264. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/version.h +0 -69
  265. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm.inc +0 -5643
  266. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm_call_iseq_optimized.inc +0 -244
  267. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm_callinfo.h +0 -605
  268. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm_exec.h +0 -199
  269. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm_insnhelper.h +0 -272
  270. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm_sync.h +0 -137
  271. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vmtc.inc +0 -253
  272. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/yjit.h +0 -79
  273. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/addr2line.h +0 -22
  274. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/builtin.h +0 -119
  275. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/constant.h +0 -53
  276. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/darray.h +0 -209
  277. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/debug_counter.h +0 -423
  278. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/dln.h +0 -32
  279. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/encindex.h +0 -70
  280. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/eval_intern.h +0 -324
  281. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/hrtime.h +0 -237
  282. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/insns.inc +0 -265
  283. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/insns_info.inc +0 -9902
  284. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/known_errors.inc +0 -1419
  285. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/node_name.inc +0 -224
  286. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/optinsn.inc +0 -128
  287. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/optunifs.inc +0 -43
  288. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/parse.h +0 -244
  289. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/parser_bits.h +0 -564
  290. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/parser_node.h +0 -32
  291. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/probes_helper.h +0 -42
  292. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/regenc.h +0 -254
  293. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/regint.h +0 -1006
  294. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/regparse.h +0 -371
  295. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/revision.h +0 -5
  296. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/rjit.h +0 -101
  297. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/rjit_c.h +0 -165
  298. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/siphash.h +0 -48
  299. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/symbol.h +0 -123
  300. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/thread_win32.h +0 -58
  301. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/timev.h +0 -58
  302. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/transcode_data.h +0 -138
  303. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/variable.h +0 -39
  304. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/version.h +0 -69
  305. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm.inc +0 -5840
  306. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm_call_iseq_optimized.inc +0 -244
  307. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm_callinfo.h +0 -627
  308. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm_exec.h +0 -199
  309. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm_insnhelper.h +0 -277
  310. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm_sync.h +0 -137
  311. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vmtc.inc +0 -259
  312. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/yjit.h +0 -79
  313. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ccan/build_assert/build_assert.h +0 -0
  314. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ccan/check_type/check_type.h +0 -0
  315. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ccan/container_of/container_of.h +0 -0
  316. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ccan/list/list.h +0 -0
  317. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ccan/str/str.h +0 -0
  318. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/id_table.h +0 -0
  319. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/bignum.h +0 -0
  320. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/cmdlineopt.h +0 -0
  321. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/compar.h +0 -0
  322. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/compile.h +0 -0
  323. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/compilers.h +0 -0
  324. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/complex.h +0 -0
  325. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/cont.h +0 -0
  326. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/dir.h +0 -0
  327. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/enc.h +0 -0
  328. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/enum.h +0 -0
  329. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/enumerator.h +0 -0
  330. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/eval.h +0 -0
  331. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/file.h +0 -0
  332. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/inits.h +0 -0
  333. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/load.h +0 -0
  334. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/loadpath.h +0 -0
  335. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/math.h +0 -0
  336. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/missing.h +0 -0
  337. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/numeric.h +0 -0
  338. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/object.h +0 -0
  339. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/proc.h +0 -0
  340. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/process.h +0 -0
  341. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/random.h +0 -0
  342. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/range.h +0 -0
  343. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/rational.h +0 -0
  344. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/re.h +0 -0
  345. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/ruby_parser.h +0 -0
  346. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/serial.h +0 -0
  347. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/signal.h +0 -0
  348. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/st.h +0 -0
  349. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/static_assert.h +0 -0
  350. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/struct.h +0 -0
  351. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/symbol.h +0 -0
  352. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/time.h +0 -0
  353. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/transcode.h +0 -0
  354. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/util.h +0 -0
  355. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/variable.h +0 -0
  356. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/warnings.h +0 -0
  357. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal.h +0 -0
  358. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/iseq.h +0 -0
  359. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/node.h +0 -0
  360. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/parser_st.h +0 -0
  361. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/parser_value.h +0 -0
  362. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/encoding.h +0 -0
  363. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/pack.h +0 -0
  364. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/prettyprint.h +0 -0
  365. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_buffer.h +0 -0
  366. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_list.h +0 -0
  367. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_memchr.h +0 -0
  368. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_strncasecmp.h +0 -0
  369. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_strpbrk.h +0 -0
  370. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ruby_assert.h +0 -0
  371. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ruby_atomic.h +0 -0
  372. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/thread_none.h +0 -0
  373. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/vm_debug.h +0 -0
  374. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/vm_opts.h +0 -0
@@ -1,619 +0,0 @@
1
- #ifndef RUBY_VM_CALLINFO_H /*-*-C-*-vi:se ft=c:*/
2
- #define RUBY_VM_CALLINFO_H
3
- /**
4
- * @author Ruby developers <ruby-core@ruby-lang.org>
5
- * @copyright This file is a part of the programming language Ruby.
6
- * Permission is hereby granted, to either redistribute and/or
7
- * modify this file, provided that the conditions mentioned in the
8
- * file COPYING are met. Consult the file for details.
9
- */
10
-
11
- #include "debug_counter.h"
12
- #include "internal/class.h"
13
- #include "shape.h"
14
-
15
- enum vm_call_flag_bits {
16
- VM_CALL_ARGS_SPLAT_bit, // m(*args)
17
- VM_CALL_ARGS_BLOCKARG_bit, // m(&block)
18
- VM_CALL_FCALL_bit, // m(args) # receiver is self
19
- VM_CALL_VCALL_bit, // m # method call that looks like a local variable
20
- VM_CALL_ARGS_SIMPLE_bit, // (ci->flag & (SPLAT|BLOCKARG)) && blockiseq == NULL && ci->kw_arg == NULL
21
- VM_CALL_KWARG_bit, // has kwarg
22
- VM_CALL_KW_SPLAT_bit, // m(**opts)
23
- VM_CALL_TAILCALL_bit, // located at tail position
24
- VM_CALL_SUPER_bit, // super
25
- VM_CALL_ZSUPER_bit, // zsuper
26
- VM_CALL_OPT_SEND_bit, // internal flag
27
- VM_CALL_KW_SPLAT_MUT_bit, // kw splat hash can be modified (to avoid allocating a new one)
28
- VM_CALL__END
29
- };
30
-
31
- #define VM_CALL_ARGS_SPLAT (0x01 << VM_CALL_ARGS_SPLAT_bit)
32
- #define VM_CALL_ARGS_BLOCKARG (0x01 << VM_CALL_ARGS_BLOCKARG_bit)
33
- #define VM_CALL_FCALL (0x01 << VM_CALL_FCALL_bit)
34
- #define VM_CALL_VCALL (0x01 << VM_CALL_VCALL_bit)
35
- #define VM_CALL_ARGS_SIMPLE (0x01 << VM_CALL_ARGS_SIMPLE_bit)
36
- #define VM_CALL_KWARG (0x01 << VM_CALL_KWARG_bit)
37
- #define VM_CALL_KW_SPLAT (0x01 << VM_CALL_KW_SPLAT_bit)
38
- #define VM_CALL_TAILCALL (0x01 << VM_CALL_TAILCALL_bit)
39
- #define VM_CALL_SUPER (0x01 << VM_CALL_SUPER_bit)
40
- #define VM_CALL_ZSUPER (0x01 << VM_CALL_ZSUPER_bit)
41
- #define VM_CALL_OPT_SEND (0x01 << VM_CALL_OPT_SEND_bit)
42
- #define VM_CALL_KW_SPLAT_MUT (0x01 << VM_CALL_KW_SPLAT_MUT_bit)
43
-
44
- struct rb_callinfo_kwarg {
45
- int keyword_len;
46
- int references;
47
- VALUE keywords[];
48
- };
49
-
50
- static inline size_t
51
- rb_callinfo_kwarg_bytes(int keyword_len)
52
- {
53
- return rb_size_mul_add_or_raise(
54
- keyword_len,
55
- sizeof(VALUE),
56
- sizeof(struct rb_callinfo_kwarg),
57
- rb_eRuntimeError);
58
- }
59
-
60
- // imemo_callinfo
61
- struct rb_callinfo {
62
- VALUE flags;
63
- const struct rb_callinfo_kwarg *kwarg;
64
- VALUE mid;
65
- VALUE flag;
66
- VALUE argc;
67
- };
68
-
69
- #if !defined(USE_EMBED_CI) || (USE_EMBED_CI+0)
70
- #undef USE_EMBED_CI
71
- #define USE_EMBED_CI 1
72
- #else
73
- #undef USE_EMBED_CI
74
- #define USE_EMBED_CI 0
75
- #endif
76
-
77
- #if SIZEOF_VALUE == 8
78
- #define CI_EMBED_TAG_bits 1
79
- #define CI_EMBED_ARGC_bits 15
80
- #define CI_EMBED_FLAG_bits 16
81
- #define CI_EMBED_ID_bits 32
82
- #elif SIZEOF_VALUE == 4
83
- #define CI_EMBED_TAG_bits 1
84
- #define CI_EMBED_ARGC_bits 3
85
- #define CI_EMBED_FLAG_bits 13
86
- #define CI_EMBED_ID_bits 15
87
- #endif
88
-
89
- #if (CI_EMBED_TAG_bits + CI_EMBED_ARGC_bits + CI_EMBED_FLAG_bits + CI_EMBED_ID_bits) != (SIZEOF_VALUE * 8)
90
- #error
91
- #endif
92
-
93
- #define CI_EMBED_FLAG 0x01
94
- #define CI_EMBED_ARGC_SHFT (CI_EMBED_TAG_bits)
95
- #define CI_EMBED_ARGC_MASK ((((VALUE)1)<<CI_EMBED_ARGC_bits) - 1)
96
- #define CI_EMBED_FLAG_SHFT (CI_EMBED_TAG_bits + CI_EMBED_ARGC_bits)
97
- #define CI_EMBED_FLAG_MASK ((((VALUE)1)<<CI_EMBED_FLAG_bits) - 1)
98
- #define CI_EMBED_ID_SHFT (CI_EMBED_TAG_bits + CI_EMBED_ARGC_bits + CI_EMBED_FLAG_bits)
99
- #define CI_EMBED_ID_MASK ((((VALUE)1)<<CI_EMBED_ID_bits) - 1)
100
-
101
- static inline bool
102
- vm_ci_packed_p(const struct rb_callinfo *ci)
103
- {
104
- if (!USE_EMBED_CI) {
105
- return 0;
106
- }
107
- if (LIKELY(((VALUE)ci) & 0x01)) {
108
- return 1;
109
- }
110
- else {
111
- VM_ASSERT(IMEMO_TYPE_P(ci, imemo_callinfo));
112
- return 0;
113
- }
114
- }
115
-
116
- static inline bool
117
- vm_ci_p(const struct rb_callinfo *ci)
118
- {
119
- if (vm_ci_packed_p(ci) || IMEMO_TYPE_P(ci, imemo_callinfo)) {
120
- return 1;
121
- }
122
- else {
123
- return 0;
124
- }
125
- }
126
-
127
- static inline ID
128
- vm_ci_mid(const struct rb_callinfo *ci)
129
- {
130
- if (vm_ci_packed_p(ci)) {
131
- return (((VALUE)ci) >> CI_EMBED_ID_SHFT) & CI_EMBED_ID_MASK;
132
- }
133
- else {
134
- return (ID)ci->mid;
135
- }
136
- }
137
-
138
- static inline unsigned int
139
- vm_ci_flag(const struct rb_callinfo *ci)
140
- {
141
- if (vm_ci_packed_p(ci)) {
142
- return (unsigned int)((((VALUE)ci) >> CI_EMBED_FLAG_SHFT) & CI_EMBED_FLAG_MASK);
143
- }
144
- else {
145
- return (unsigned int)ci->flag;
146
- }
147
- }
148
-
149
- static inline unsigned int
150
- vm_ci_argc(const struct rb_callinfo *ci)
151
- {
152
- if (vm_ci_packed_p(ci)) {
153
- return (unsigned int)((((VALUE)ci) >> CI_EMBED_ARGC_SHFT) & CI_EMBED_ARGC_MASK);
154
- }
155
- else {
156
- return (unsigned int)ci->argc;
157
- }
158
- }
159
-
160
- static inline const struct rb_callinfo_kwarg *
161
- vm_ci_kwarg(const struct rb_callinfo *ci)
162
- {
163
- if (vm_ci_packed_p(ci)) {
164
- return NULL;
165
- }
166
- else {
167
- return ci->kwarg;
168
- }
169
- }
170
-
171
- static inline void
172
- vm_ci_dump(const struct rb_callinfo *ci)
173
- {
174
- if (vm_ci_packed_p(ci)) {
175
- ruby_debug_printf("packed_ci ID:%s flag:%x argc:%u\n",
176
- rb_id2name(vm_ci_mid(ci)), vm_ci_flag(ci), vm_ci_argc(ci));
177
- }
178
- else {
179
- rp(ci);
180
- }
181
- }
182
-
183
- #define vm_ci_new(mid, flag, argc, kwarg) vm_ci_new_(mid, flag, argc, kwarg, __FILE__, __LINE__)
184
- #define vm_ci_new_runtime(mid, flag, argc, kwarg) vm_ci_new_runtime_(mid, flag, argc, kwarg, __FILE__, __LINE__)
185
-
186
- /* This is passed to STATIC_ASSERT. Cannot be an inline function. */
187
- #define VM_CI_EMBEDDABLE_P(mid, flag, argc, kwarg) \
188
- (((mid ) & ~CI_EMBED_ID_MASK) ? false : \
189
- ((flag) & ~CI_EMBED_FLAG_MASK) ? false : \
190
- ((argc) & ~CI_EMBED_ARGC_MASK) ? false : \
191
- (kwarg) ? false : true)
192
-
193
- #define vm_ci_new_id(mid, flag, argc, must_zero) \
194
- ((const struct rb_callinfo *) \
195
- ((((VALUE)(mid )) << CI_EMBED_ID_SHFT) | \
196
- (((VALUE)(flag)) << CI_EMBED_FLAG_SHFT) | \
197
- (((VALUE)(argc)) << CI_EMBED_ARGC_SHFT) | \
198
- RUBY_FIXNUM_FLAG))
199
-
200
- static inline const struct rb_callinfo *
201
- vm_ci_new_(ID mid, unsigned int flag, unsigned int argc, const struct rb_callinfo_kwarg *kwarg, const char *file, int line)
202
- {
203
- if (kwarg) {
204
- ((struct rb_callinfo_kwarg *)kwarg)->references++;
205
- }
206
- if (USE_EMBED_CI && VM_CI_EMBEDDABLE_P(mid, flag, argc, kwarg)) {
207
- RB_DEBUG_COUNTER_INC(ci_packed);
208
- return vm_ci_new_id(mid, flag, argc, kwarg);
209
- }
210
-
211
- const bool debug = 0;
212
- if (debug) ruby_debug_printf("%s:%d ", file, line);
213
-
214
- // TODO: dedup
215
- const struct rb_callinfo *ci = (const struct rb_callinfo *)
216
- rb_imemo_new(imemo_callinfo,
217
- (VALUE)mid,
218
- (VALUE)flag,
219
- (VALUE)argc,
220
- (VALUE)kwarg);
221
- if (debug) rp(ci);
222
- if (kwarg) {
223
- RB_DEBUG_COUNTER_INC(ci_kw);
224
- }
225
- else {
226
- RB_DEBUG_COUNTER_INC(ci_nokw);
227
- }
228
-
229
- VM_ASSERT(vm_ci_flag(ci) == flag);
230
- VM_ASSERT(vm_ci_argc(ci) == argc);
231
-
232
- return ci;
233
- }
234
-
235
-
236
- static inline const struct rb_callinfo *
237
- vm_ci_new_runtime_(ID mid, unsigned int flag, unsigned int argc, const struct rb_callinfo_kwarg *kwarg, const char *file, int line)
238
- {
239
- RB_DEBUG_COUNTER_INC(ci_runtime);
240
- return vm_ci_new_(mid, flag, argc, kwarg, file, line);
241
- }
242
-
243
- #define VM_CALLINFO_NOT_UNDER_GC IMEMO_FL_USER0
244
-
245
- static inline bool
246
- vm_ci_markable(const struct rb_callinfo *ci)
247
- {
248
- if (! ci) {
249
- return false; /* or true? This is Qfalse... */
250
- }
251
- else if (vm_ci_packed_p(ci)) {
252
- return true;
253
- }
254
- else {
255
- VM_ASSERT(IMEMO_TYPE_P(ci, imemo_callinfo));
256
- return ! FL_ANY_RAW((VALUE)ci, VM_CALLINFO_NOT_UNDER_GC);
257
- }
258
- }
259
-
260
- #define VM_CI_ON_STACK(mid_, flags_, argc_, kwarg_) \
261
- (struct rb_callinfo) { \
262
- .flags = T_IMEMO | \
263
- (imemo_callinfo << FL_USHIFT) | \
264
- VM_CALLINFO_NOT_UNDER_GC, \
265
- .mid = mid_, \
266
- .flag = flags_, \
267
- .argc = argc_, \
268
- .kwarg = kwarg_, \
269
- }
270
-
271
- typedef VALUE (*vm_call_handler)(
272
- struct rb_execution_context_struct *ec,
273
- struct rb_control_frame_struct *cfp,
274
- struct rb_calling_info *calling);
275
-
276
- // imemo_callcache
277
-
278
- struct rb_callcache {
279
- const VALUE flags;
280
-
281
- /* inline cache: key */
282
- const VALUE klass; // should not mark it because klass can not be free'd
283
- // because of this marking. When klass is collected,
284
- // cc will be cleared (cc->klass = 0) at vm_ccs_free().
285
-
286
- /* inline cache: values */
287
- const struct rb_callable_method_entry_struct * const cme_;
288
- const vm_call_handler call_;
289
-
290
- union {
291
- struct {
292
- uintptr_t value; // Shape ID in upper bits, index in lower bits
293
- } attr;
294
- const enum method_missing_reason method_missing_reason; /* used by method_missing */
295
- VALUE v;
296
- const struct rb_builtin_function *bf;
297
- } aux_;
298
- };
299
-
300
- #define VM_CALLCACHE_UNMARKABLE FL_FREEZE
301
- #define VM_CALLCACHE_ON_STACK FL_EXIVAR
302
-
303
- /* VM_CALLCACHE_IVAR used for IVAR/ATTRSET/STRUCT_AREF/STRUCT_ASET methods */
304
- #define VM_CALLCACHE_IVAR IMEMO_FL_USER0
305
- #define VM_CALLCACHE_BF IMEMO_FL_USER1
306
- #define VM_CALLCACHE_SUPER IMEMO_FL_USER2
307
- #define VM_CALLCACHE_REFINEMENT IMEMO_FL_USER3
308
-
309
- enum vm_cc_type {
310
- cc_type_normal, // chained from ccs
311
- cc_type_super,
312
- cc_type_refinement,
313
- };
314
-
315
- extern const struct rb_callcache *rb_vm_empty_cc(void);
316
- extern const struct rb_callcache *rb_vm_empty_cc_for_super(void);
317
-
318
- #define vm_cc_empty() rb_vm_empty_cc()
319
-
320
- static inline void vm_cc_attr_index_set(const struct rb_callcache *cc, attr_index_t index, shape_id_t dest_shape_id);
321
-
322
- static inline void
323
- vm_cc_attr_index_initialize(const struct rb_callcache *cc, shape_id_t shape_id)
324
- {
325
- vm_cc_attr_index_set(cc, (attr_index_t)-1, shape_id);
326
- }
327
-
328
- static inline const struct rb_callcache *
329
- vm_cc_new(VALUE klass,
330
- const struct rb_callable_method_entry_struct *cme,
331
- vm_call_handler call,
332
- enum vm_cc_type type)
333
- {
334
- const struct rb_callcache *cc = (const struct rb_callcache *)rb_imemo_new(imemo_callcache, (VALUE)cme, (VALUE)call, 0, klass);
335
-
336
- switch (type) {
337
- case cc_type_normal:
338
- break;
339
- case cc_type_super:
340
- *(VALUE *)&cc->flags |= VM_CALLCACHE_SUPER;
341
- break;
342
- case cc_type_refinement:
343
- *(VALUE *)&cc->flags |= VM_CALLCACHE_REFINEMENT;
344
- break;
345
- }
346
-
347
- vm_cc_attr_index_initialize(cc, INVALID_SHAPE_ID);
348
- RB_DEBUG_COUNTER_INC(cc_new);
349
- return cc;
350
- }
351
-
352
- static inline bool
353
- vm_cc_super_p(const struct rb_callcache *cc)
354
- {
355
- return (cc->flags & VM_CALLCACHE_SUPER) != 0;
356
- }
357
-
358
- static inline bool
359
- vm_cc_refinement_p(const struct rb_callcache *cc)
360
- {
361
- return (cc->flags & VM_CALLCACHE_REFINEMENT) != 0;
362
- }
363
-
364
- #define VM_CC_ON_STACK(clazz, call, aux, cme) \
365
- (struct rb_callcache) { \
366
- .flags = T_IMEMO | \
367
- (imemo_callcache << FL_USHIFT) | \
368
- VM_CALLCACHE_UNMARKABLE | \
369
- VM_CALLCACHE_ON_STACK, \
370
- .klass = clazz, \
371
- .cme_ = cme, \
372
- .call_ = call, \
373
- .aux_ = aux, \
374
- }
375
-
376
- static inline bool
377
- vm_cc_class_check(const struct rb_callcache *cc, VALUE klass)
378
- {
379
- VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
380
- VM_ASSERT(cc->klass == 0 ||
381
- RB_TYPE_P(cc->klass, T_CLASS) || RB_TYPE_P(cc->klass, T_ICLASS));
382
- return cc->klass == klass;
383
- }
384
-
385
- static inline int
386
- vm_cc_markable(const struct rb_callcache *cc)
387
- {
388
- VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
389
- return FL_TEST_RAW((VALUE)cc, VM_CALLCACHE_UNMARKABLE) == 0;
390
- }
391
-
392
- static inline const struct rb_callable_method_entry_struct *
393
- vm_cc_cme(const struct rb_callcache *cc)
394
- {
395
- VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
396
- VM_ASSERT(cc->call_ == NULL || // not initialized yet
397
- !vm_cc_markable(cc) ||
398
- cc->cme_ != NULL);
399
-
400
- return cc->cme_;
401
- }
402
-
403
- static inline vm_call_handler
404
- vm_cc_call(const struct rb_callcache *cc)
405
- {
406
- VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
407
- VM_ASSERT(cc->call_ != NULL);
408
- return cc->call_;
409
- }
410
-
411
- static inline attr_index_t
412
- vm_cc_attr_index(const struct rb_callcache *cc)
413
- {
414
- VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
415
- return (attr_index_t)((cc->aux_.attr.value & SHAPE_FLAG_MASK) - 1);
416
- }
417
-
418
- static inline shape_id_t
419
- vm_cc_attr_index_dest_shape_id(const struct rb_callcache *cc)
420
- {
421
- VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
422
-
423
- return cc->aux_.attr.value >> SHAPE_FLAG_SHIFT;
424
- }
425
-
426
- static inline void
427
- vm_cc_atomic_shape_and_index(const struct rb_callcache *cc, shape_id_t * shape_id, attr_index_t * index)
428
- {
429
- uintptr_t cache_value = cc->aux_.attr.value; // Atomically read 64 bits
430
- *shape_id = (shape_id_t)(cache_value >> SHAPE_FLAG_SHIFT);
431
- *index = (attr_index_t)(cache_value & SHAPE_FLAG_MASK) - 1;
432
- return;
433
- }
434
-
435
- static inline void
436
- vm_ic_atomic_shape_and_index(const struct iseq_inline_iv_cache_entry *ic, shape_id_t * shape_id, attr_index_t * index)
437
- {
438
- uintptr_t cache_value = ic->value; // Atomically read 64 bits
439
- *shape_id = (shape_id_t)(cache_value >> SHAPE_FLAG_SHIFT);
440
- *index = (attr_index_t)(cache_value & SHAPE_FLAG_MASK) - 1;
441
- return;
442
- }
443
-
444
- static inline shape_id_t
445
- vm_ic_attr_index_dest_shape_id(const struct iseq_inline_iv_cache_entry *ic)
446
- {
447
- return (shape_id_t)(ic->value >> SHAPE_FLAG_SHIFT);
448
- }
449
-
450
- static inline unsigned int
451
- vm_cc_cmethod_missing_reason(const struct rb_callcache *cc)
452
- {
453
- VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
454
- return cc->aux_.method_missing_reason;
455
- }
456
-
457
- static inline bool
458
- vm_cc_invalidated_p(const struct rb_callcache *cc)
459
- {
460
- if (cc->klass && !METHOD_ENTRY_INVALIDATED(vm_cc_cme(cc))) {
461
- return false;
462
- }
463
- else {
464
- return true;
465
- }
466
- }
467
-
468
- // For RJIT. cc_cme is supposed to have inlined `vm_cc_cme(cc)`.
469
- static inline bool
470
- vm_cc_valid_p(const struct rb_callcache *cc, const rb_callable_method_entry_t *cc_cme, VALUE klass)
471
- {
472
- VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
473
- if (cc->klass == klass && !METHOD_ENTRY_INVALIDATED(cc_cme)) {
474
- return 1;
475
- }
476
- else {
477
- return 0;
478
- }
479
- }
480
-
481
- /* callcache: mutate */
482
-
483
- static inline void
484
- vm_cc_call_set(const struct rb_callcache *cc, vm_call_handler call)
485
- {
486
- VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
487
- VM_ASSERT(cc != vm_cc_empty());
488
- *(vm_call_handler *)&cc->call_ = call;
489
- }
490
-
491
- static inline void
492
- set_vm_cc_ivar(const struct rb_callcache *cc)
493
- {
494
- *(VALUE *)&cc->flags |= VM_CALLCACHE_IVAR;
495
- }
496
-
497
- static inline void
498
- vm_cc_attr_index_set(const struct rb_callcache *cc, attr_index_t index, shape_id_t dest_shape_id)
499
- {
500
- uintptr_t *attr_value = (uintptr_t *)&cc->aux_.attr.value;
501
- if (!vm_cc_markable(cc)) {
502
- *attr_value = (uintptr_t)INVALID_SHAPE_ID << SHAPE_FLAG_SHIFT;
503
- return;
504
- }
505
- VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
506
- VM_ASSERT(cc != vm_cc_empty());
507
- *attr_value = (attr_index_t)(index + 1) | ((uintptr_t)(dest_shape_id) << SHAPE_FLAG_SHIFT);
508
- set_vm_cc_ivar(cc);
509
- }
510
-
511
- static inline bool
512
- vm_cc_ivar_p(const struct rb_callcache *cc)
513
- {
514
- return (cc->flags & VM_CALLCACHE_IVAR) != 0;
515
- }
516
-
517
- static inline void
518
- vm_ic_attr_index_set(const rb_iseq_t *iseq, const struct iseq_inline_iv_cache_entry *ic, attr_index_t index, shape_id_t dest_shape_id)
519
- {
520
- *(uintptr_t *)&ic->value = ((uintptr_t)dest_shape_id << SHAPE_FLAG_SHIFT) | (attr_index_t)(index + 1);
521
- }
522
-
523
- static inline void
524
- vm_ic_attr_index_initialize(const struct iseq_inline_iv_cache_entry *ic, shape_id_t shape_id)
525
- {
526
- *(uintptr_t *)&ic->value = (uintptr_t)shape_id << SHAPE_FLAG_SHIFT;
527
- }
528
-
529
- static inline void
530
- vm_cc_method_missing_reason_set(const struct rb_callcache *cc, enum method_missing_reason reason)
531
- {
532
- VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
533
- VM_ASSERT(cc != vm_cc_empty());
534
- *(enum method_missing_reason *)&cc->aux_.method_missing_reason = reason;
535
- }
536
-
537
- static inline void
538
- vm_cc_bf_set(const struct rb_callcache *cc, const struct rb_builtin_function *bf)
539
- {
540
- VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
541
- VM_ASSERT(cc != vm_cc_empty());
542
- *(const struct rb_builtin_function **)&cc->aux_.bf = bf;
543
- *(VALUE *)&cc->flags |= VM_CALLCACHE_BF;
544
- }
545
-
546
- static inline bool
547
- vm_cc_bf_p(const struct rb_callcache *cc)
548
- {
549
- return (cc->flags & VM_CALLCACHE_BF) != 0;
550
- }
551
-
552
- static inline void
553
- vm_cc_invalidate(const struct rb_callcache *cc)
554
- {
555
- VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
556
- VM_ASSERT(cc != vm_cc_empty());
557
- VM_ASSERT(cc->klass != 0); // should be enable
558
-
559
- *(VALUE *)&cc->klass = 0;
560
- RB_DEBUG_COUNTER_INC(cc_ent_invalidate);
561
- }
562
-
563
- /* calldata */
564
-
565
- struct rb_call_data {
566
- const struct rb_callinfo *ci;
567
- const struct rb_callcache *cc;
568
- };
569
-
570
- struct rb_class_cc_entries {
571
- #if VM_CHECK_MODE > 0
572
- VALUE debug_sig;
573
- #endif
574
- int capa;
575
- int len;
576
- const struct rb_callable_method_entry_struct *cme;
577
- struct rb_class_cc_entries_entry {
578
- const struct rb_callinfo *ci;
579
- const struct rb_callcache *cc;
580
- } *entries;
581
- };
582
-
583
- #if VM_CHECK_MODE > 0
584
-
585
- const rb_callable_method_entry_t *rb_vm_lookup_overloaded_cme(const rb_callable_method_entry_t *cme);
586
- void rb_vm_dump_overloaded_cme_table(void);
587
-
588
- static inline bool
589
- vm_ccs_p(const struct rb_class_cc_entries *ccs)
590
- {
591
- return ccs->debug_sig == ~(VALUE)ccs;
592
- }
593
-
594
- static inline bool
595
- vm_cc_check_cme(const struct rb_callcache *cc, const rb_callable_method_entry_t *cme)
596
- {
597
- if (vm_cc_cme(cc) == cme ||
598
- (cme->def->iseq_overload && vm_cc_cme(cc) == rb_vm_lookup_overloaded_cme(cme))) {
599
- return true;
600
- }
601
- else {
602
- #if 1
603
- // debug print
604
-
605
- fprintf(stderr, "iseq_overload:%d\n", (int)cme->def->iseq_overload);
606
- rp(cme);
607
- rp(vm_cc_cme(cc));
608
- rb_vm_lookup_overloaded_cme(cme);
609
- #endif
610
- return false;
611
- }
612
- }
613
-
614
- #endif
615
-
616
- // gc.c
617
- void rb_vm_ccs_free(struct rb_class_cc_entries *ccs);
618
-
619
- #endif /* RUBY_VM_CALLINFO_H */