debase-ruby_core_source 3.3.6 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (293) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -0
  3. data/CHANGELOG.md +6 -0
  4. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/builtin.h +7 -1
  5. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/darray.h +1 -3
  6. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/id.h +5 -0
  7. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/insns.inc +2 -0
  8. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/insns_info.inc +310 -175
  9. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/basic_operators.h +1 -0
  10. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/bits.h +82 -0
  11. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/encoding.h +2 -0
  12. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/error.h +26 -0
  13. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/fixnum.h +1 -0
  14. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/gc.h +14 -6
  15. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/imemo.h +6 -1
  16. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/io.h +1 -1
  17. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/parse.h +2 -1
  18. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/proc.h +1 -0
  19. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/ractor.h +4 -0
  20. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/sanitizers.h +31 -39
  21. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/string.h +22 -10
  22. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/thread.h +23 -0
  23. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/vm.h +1 -1
  24. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/method.h +1 -0
  25. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/optunifs.inc +1 -1
  26. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/parse.h +2 -2
  27. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/ast.h +427 -3
  28. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/defines.h +8 -7
  29. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/diagnostic.h +1 -0
  30. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/extension.h +1 -1
  31. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/prism.h +47 -11
  32. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/version.h +2 -2
  33. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism_compile.h +5 -5
  34. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/ractor_core.h +6 -6
  35. data/lib/debase/ruby_core_source/ruby-3.4.0/revision.h +5 -0
  36. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/rubyparser.h +3 -2
  37. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/thread_pthread.h +0 -1
  38. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/version.h +1 -1
  39. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm.inc +151 -88
  40. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_core.h +40 -12
  41. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_sync.h +3 -3
  42. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vmtc.inc +2 -0
  43. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/yjit.h +1 -0
  44. data/lib/debase/ruby_core_source/version.rb +1 -1
  45. metadata +147 -293
  46. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/darray.h +0 -191
  47. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/debug_counter.h +0 -423
  48. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/dln.h +0 -34
  49. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/id.h +0 -343
  50. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/insns.inc +0 -259
  51. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/insns_info.inc +0 -9530
  52. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/array.h +0 -151
  53. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/basic_operators.h +0 -63
  54. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/bits.h +0 -568
  55. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/class.h +0 -283
  56. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/error.h +0 -216
  57. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/fixnum.h +0 -184
  58. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/gc.h +0 -334
  59. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/hash.h +0 -191
  60. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/imemo.h +0 -260
  61. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/io.h +0 -140
  62. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/parse.h +0 -117
  63. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/ractor.h +0 -6
  64. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/sanitizers.h +0 -297
  65. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/string.h +0 -182
  66. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/thread.h +0 -79
  67. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/vm.h +0 -137
  68. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/known_errors.inc +0 -1419
  69. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/method.h +0 -255
  70. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/optunifs.inc +0 -43
  71. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/parse.h +0 -243
  72. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/ast.h +0 -6245
  73. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/defines.h +0 -206
  74. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/diagnostic.h +0 -433
  75. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/extension.h +0 -19
  76. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/node.h +0 -150
  77. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/options.h +0 -305
  78. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/parser.h +0 -891
  79. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/regexp.h +0 -33
  80. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/static_literals.h +0 -120
  81. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_char.h +0 -205
  82. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_constant_pool.h +0 -226
  83. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_integer.h +0 -119
  84. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_newline_list.h +0 -102
  85. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string.h +0 -174
  86. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string_list.h +0 -44
  87. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/version.h +0 -29
  88. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism_compile.h +0 -88
  89. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/ractor_core.h +0 -393
  90. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/regint.h +0 -1010
  91. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/revision.h +0 -5
  92. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/rubyparser.h +0 -1430
  93. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/shape.h +0 -233
  94. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/symbol.h +0 -118
  95. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/thread_pthread.h +0 -166
  96. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/version.h +0 -69
  97. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm.inc +0 -5643
  98. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_callinfo.h +0 -605
  99. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_core.h +0 -2236
  100. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_insnhelper.h +0 -272
  101. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_sync.h +0 -137
  102. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vmtc.inc +0 -253
  103. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/addr2line.h +0 -22
  104. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/builtin.h +0 -119
  105. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/build_assert/build_assert.h +0 -40
  106. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/check_type/check_type.h +0 -63
  107. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/container_of/container_of.h +0 -142
  108. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/list/list.h +0 -791
  109. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/str/str.h +0 -17
  110. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/constant.h +0 -53
  111. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/encindex.h +0 -70
  112. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/eval_intern.h +0 -324
  113. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/hrtime.h +0 -237
  114. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/id_table.h +0 -39
  115. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/bignum.h +0 -244
  116. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/cmdlineopt.h +0 -65
  117. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compar.h +0 -29
  118. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compile.h +0 -34
  119. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compilers.h +0 -107
  120. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/complex.h +0 -29
  121. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/cont.h +0 -35
  122. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/dir.h +0 -16
  123. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enc.h +0 -19
  124. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/encoding.h +0 -36
  125. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enum.h +0 -18
  126. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enumerator.h +0 -21
  127. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/eval.h +0 -33
  128. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/file.h +0 -38
  129. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/inits.h +0 -47
  130. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/load.h +0 -18
  131. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/loadpath.h +0 -16
  132. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/math.h +0 -23
  133. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/missing.h +0 -19
  134. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/numeric.h +0 -274
  135. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/object.h +0 -63
  136. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/proc.h +0 -30
  137. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/process.h +0 -124
  138. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/random.h +0 -17
  139. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/range.h +0 -40
  140. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/rational.h +0 -71
  141. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/re.h +0 -28
  142. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/ruby_parser.h +0 -102
  143. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/serial.h +0 -23
  144. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/signal.h +0 -24
  145. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/st.h +0 -11
  146. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/static_assert.h +0 -16
  147. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/struct.h +0 -127
  148. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/symbol.h +0 -45
  149. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/time.h +0 -34
  150. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/transcode.h +0 -23
  151. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/util.h +0 -27
  152. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/variable.h +0 -72
  153. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/warnings.h +0 -16
  154. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal.h +0 -108
  155. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/iseq.h +0 -340
  156. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/node.h +0 -111
  157. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/node_name.inc +0 -224
  158. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/optinsn.inc +0 -128
  159. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_bits.h +0 -564
  160. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_node.h +0 -32
  161. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_st.h +0 -162
  162. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_value.h +0 -106
  163. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/encoding.h +0 -283
  164. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/pack.h +0 -163
  165. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/prettyprint.h +0 -34
  166. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/prism.h +0 -336
  167. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_buffer.h +0 -218
  168. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_list.h +0 -97
  169. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_memchr.h +0 -29
  170. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_strncasecmp.h +0 -32
  171. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_strpbrk.h +0 -46
  172. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/probes_helper.h +0 -42
  173. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/regenc.h +0 -254
  174. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/regparse.h +0 -371
  175. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/revision.h +0 -5
  176. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit.h +0 -101
  177. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit_c.h +0 -165
  178. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ruby_assert.h +0 -14
  179. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ruby_atomic.h +0 -23
  180. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/siphash.h +0 -48
  181. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/thread_none.h +0 -21
  182. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/thread_win32.h +0 -58
  183. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/timev.h +0 -58
  184. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/transcode_data.h +0 -138
  185. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/variable.h +0 -39
  186. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_call_iseq_optimized.inc +0 -244
  187. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_debug.h +0 -124
  188. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_exec.h +0 -199
  189. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_opts.h +0 -67
  190. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/yjit.h +0 -79
  191. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/addr2line.h +0 -0
  192. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/build_assert/build_assert.h +0 -0
  193. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/check_type/check_type.h +0 -0
  194. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/container_of/container_of.h +0 -0
  195. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/list/list.h +0 -0
  196. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/str/str.h +0 -0
  197. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/constant.h +0 -0
  198. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/debug_counter.h +0 -0
  199. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/dln.h +0 -0
  200. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/encindex.h +0 -0
  201. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/eval_intern.h +0 -0
  202. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/hrtime.h +0 -0
  203. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/id_table.h +0 -0
  204. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/array.h +0 -0
  205. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/bignum.h +0 -0
  206. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/class.h +0 -0
  207. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/cmdlineopt.h +0 -0
  208. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/compar.h +0 -0
  209. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/compile.h +0 -0
  210. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/compilers.h +0 -0
  211. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/complex.h +0 -0
  212. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/cont.h +0 -0
  213. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/dir.h +0 -0
  214. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/enc.h +0 -0
  215. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/enum.h +0 -0
  216. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/enumerator.h +0 -0
  217. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/eval.h +0 -0
  218. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/file.h +0 -0
  219. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/hash.h +0 -0
  220. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/inits.h +0 -0
  221. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/load.h +0 -0
  222. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/loadpath.h +0 -0
  223. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/math.h +0 -0
  224. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/missing.h +0 -0
  225. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/numeric.h +0 -0
  226. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/object.h +0 -0
  227. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/process.h +0 -0
  228. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/random.h +0 -0
  229. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/range.h +0 -0
  230. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/rational.h +0 -0
  231. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/re.h +0 -0
  232. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/ruby_parser.h +0 -0
  233. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/serial.h +0 -0
  234. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/signal.h +0 -0
  235. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/st.h +0 -0
  236. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/static_assert.h +0 -0
  237. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/struct.h +0 -0
  238. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/symbol.h +0 -0
  239. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/time.h +0 -0
  240. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/transcode.h +0 -0
  241. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/util.h +0 -0
  242. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/variable.h +0 -0
  243. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/warnings.h +0 -0
  244. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal.h +0 -0
  245. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/iseq.h +0 -0
  246. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/known_errors.inc +0 -0
  247. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/node.h +0 -0
  248. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/node_name.inc +0 -0
  249. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/optinsn.inc +0 -0
  250. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_bits.h +0 -0
  251. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_node.h +0 -0
  252. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_st.h +0 -0
  253. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_value.h +0 -0
  254. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/encoding.h +0 -0
  255. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/node.h +0 -0
  256. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/options.h +0 -0
  257. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/pack.h +0 -0
  258. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/parser.h +0 -0
  259. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/prettyprint.h +0 -0
  260. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/regexp.h +0 -0
  261. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/static_literals.h +0 -0
  262. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_buffer.h +0 -0
  263. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_char.h +0 -0
  264. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_constant_pool.h +0 -0
  265. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_integer.h +0 -0
  266. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_list.h +0 -0
  267. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_memchr.h +0 -0
  268. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_newline_list.h +0 -0
  269. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_string.h +0 -0
  270. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_strncasecmp.h +0 -0
  271. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_strpbrk.h +0 -0
  272. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/probes_helper.h +0 -0
  273. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/regenc.h +0 -0
  274. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/regint.h +0 -0
  275. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/regparse.h +0 -0
  276. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/rjit.h +0 -0
  277. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/rjit_c.h +0 -0
  278. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ruby_assert.h +0 -0
  279. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ruby_atomic.h +0 -0
  280. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/shape.h +0 -0
  281. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/siphash.h +0 -0
  282. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/symbol.h +0 -0
  283. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/thread_none.h +0 -0
  284. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/thread_win32.h +0 -0
  285. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/timev.h +0 -0
  286. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/transcode_data.h +0 -0
  287. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/variable.h +0 -0
  288. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_call_iseq_optimized.inc +0 -0
  289. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_callinfo.h +0 -0
  290. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_debug.h +0 -0
  291. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_exec.h +0 -0
  292. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_insnhelper.h +0 -0
  293. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_opts.h +0 -0
@@ -1,297 +0,0 @@
1
- #ifndef INTERNAL_SANITIZERS_H /*-*-C-*-vi:se ft=c:*/
2
- #define INTERNAL_SANITIZERS_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
- * @brief Internal header for ASAN / MSAN / etc.
10
- */
11
- #include "ruby/internal/config.h"
12
- #include "internal/compilers.h" /* for __has_feature */
13
-
14
- #ifdef HAVE_VALGRIND_MEMCHECK_H
15
- # include <valgrind/memcheck.h>
16
- #endif
17
-
18
- #ifdef HAVE_SANITIZER_ASAN_INTERFACE_H
19
- # if __has_feature(address_sanitizer)
20
- # define RUBY_ASAN_ENABLED
21
- # include <sanitizer/asan_interface.h>
22
- # endif
23
- #endif
24
-
25
- #ifdef HAVE_SANITIZER_MSAN_INTERFACE_H
26
- # if __has_feature(memory_sanitizer)
27
- # define RUBY_MSAN_ENABLED
28
- # include <sanitizer/msan_interface.h>
29
- # endif
30
- #endif
31
-
32
- #include "ruby/internal/stdbool.h" /* for bool */
33
- #include "ruby/ruby.h" /* for VALUE */
34
-
35
- #if 0
36
- #elif defined(RUBY_ASAN_ENABLED) && defined(RUBY_MSAN_ENABLED)
37
- # define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \
38
- __attribute__((__no_sanitize__("memory, address"), __noinline__)) x
39
- #elif defined(RUBY_ASAN_ENABLED)
40
- # define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \
41
- __attribute__((__no_sanitize__("address"), __noinline__)) x
42
- #elif defined(NO_SANITIZE_ADDRESS)
43
- # define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \
44
- NO_SANITIZE_ADDRESS(NOINLINE(x))
45
- #elif defined(NO_ADDRESS_SAFETY_ANALYSIS)
46
- # define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \
47
- NO_ADDRESS_SAFETY_ANALYSIS(NOINLINE(x))
48
- #else
49
- # define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) x
50
- #endif
51
-
52
- #if defined(NO_SANITIZE) && RBIMPL_COMPILER_IS(GCC)
53
- /* GCC warns about unknown sanitizer, which is annoying. */
54
- # include "internal/warnings.h"
55
- # undef NO_SANITIZE
56
- # define NO_SANITIZE(x, y) \
57
- COMPILER_WARNING_PUSH; \
58
- COMPILER_WARNING_IGNORED(-Wattributes); \
59
- __attribute__((__no_sanitize__(x))) y; \
60
- COMPILER_WARNING_POP
61
- #endif
62
-
63
- #ifndef NO_SANITIZE
64
- # define NO_SANITIZE(x, y) y
65
- #endif
66
-
67
- #ifndef RUBY_ASAN_ENABLED
68
- # define __asan_poison_memory_region(x, y)
69
- # define __asan_unpoison_memory_region(x, y)
70
- # define __asan_region_is_poisoned(x, y) 0
71
- # define __asan_get_current_fake_stack() NULL
72
- # define __asan_addr_is_in_fake_stack(fake_stack, slot, start, end) NULL
73
- #endif
74
-
75
- #ifndef RUBY_MSAN_ENABLED
76
- # define __msan_allocated_memory(x, y) ((void)(x), (void)(y))
77
- # define __msan_poison(x, y) ((void)(x), (void)(y))
78
- # define __msan_unpoison(x, y) ((void)(x), (void)(y))
79
- # define __msan_unpoison_string(x) ((void)(x))
80
- #endif
81
-
82
- #ifdef VALGRIND_MAKE_READABLE
83
- # define VALGRIND_MAKE_MEM_DEFINED(p, n) VALGRIND_MAKE_READABLE((p), (n))
84
- #endif
85
-
86
- #ifdef VALGRIND_MAKE_WRITABLE
87
- # define VALGRIND_MAKE_MEM_UNDEFINED(p, n) VALGRIND_MAKE_WRITABLE((p), (n))
88
- #endif
89
-
90
- #ifndef VALGRIND_MAKE_MEM_DEFINED
91
- # define VALGRIND_MAKE_MEM_DEFINED(p, n) 0
92
- #endif
93
-
94
- #ifndef VALGRIND_MAKE_MEM_UNDEFINED
95
- # define VALGRIND_MAKE_MEM_UNDEFINED(p, n) 0
96
- #endif
97
-
98
- /**
99
- * This function asserts that a (continuous) memory region from ptr to size
100
- * being "poisoned". Both read / write access to such memory region are
101
- * prohibited until properly unpoisoned. The region must be previously
102
- * allocated (do not pass a freed pointer here), but not necessarily be an
103
- * entire object that the malloc returns. You can punch hole a part of a
104
- * gigantic heap arena. This is handy when you do not free an allocated memory
105
- * region to reuse later: poison when you keep it unused, and unpoison when you
106
- * reuse.
107
- *
108
- * @param[in] ptr pointer to the beginning of the memory region to poison.
109
- * @param[in] size the length of the memory region to poison.
110
- */
111
- static inline void
112
- asan_poison_memory_region(const volatile void *ptr, size_t size)
113
- {
114
- __msan_poison(ptr, size);
115
- __asan_poison_memory_region(ptr, size);
116
- }
117
-
118
- /**
119
- * This is a variant of asan_poison_memory_region that takes a VALUE.
120
- *
121
- * @param[in] obj target object.
122
- */
123
- static inline void
124
- asan_poison_object(VALUE obj)
125
- {
126
- MAYBE_UNUSED(struct RVALUE *) ptr = (void *)obj;
127
- asan_poison_memory_region(ptr, SIZEOF_VALUE);
128
- }
129
-
130
- #ifdef RUBY_ASAN_ENABLED
131
- #define asan_poison_object_if(ptr, obj) do { \
132
- if (ptr) asan_poison_object(obj); \
133
- } while (0)
134
- #else
135
- #define asan_poison_object_if(ptr, obj) ((void)(ptr), (void)(obj))
136
- #endif
137
-
138
- /**
139
- * This function predicates if the given object is fully addressable or not.
140
- *
141
- * @param[in] obj target object.
142
- * @retval 0 the given object is fully addressable.
143
- * @retval otherwise pointer to first such byte who is poisoned.
144
- */
145
- static inline void *
146
- asan_poisoned_object_p(VALUE obj)
147
- {
148
- MAYBE_UNUSED(struct RVALUE *) ptr = (void *)obj;
149
- return __asan_region_is_poisoned(ptr, SIZEOF_VALUE);
150
- }
151
-
152
- /**
153
- * This function asserts that a (formally poisoned) memory region from ptr to
154
- * size is now addressable. Write access to such memory region gets allowed.
155
- * However read access might or might not be possible depending on situations,
156
- * because the region can have contents of previous usages. That information
157
- * should be passed by the malloc_p flag. If that is true, the contents of the
158
- * region is _not_ fully defined (like the return value of malloc behaves).
159
- * Reading from there is NG; write something first. If malloc_p is false on
160
- * the other hand, that memory region is fully defined and can be read
161
- * immediately.
162
- *
163
- * @param[in] ptr pointer to the beginning of the memory region to unpoison.
164
- * @param[in] size the length of the memory region.
165
- * @param[in] malloc_p if the memory region is like a malloc's return value or not.
166
- */
167
- static inline void
168
- asan_unpoison_memory_region(const volatile void *ptr, size_t size, bool malloc_p)
169
- {
170
- __asan_unpoison_memory_region(ptr, size);
171
- if (malloc_p) {
172
- __msan_allocated_memory(ptr, size);
173
- }
174
- else {
175
- __msan_unpoison(ptr, size);
176
- }
177
- }
178
-
179
- /**
180
- * This is a variant of asan_unpoison_memory_region that takes a VALUE.
181
- *
182
- * @param[in] obj target object.
183
- * @param[in] malloc_p if the memory region is like a malloc's return value or not.
184
- */
185
- static inline void
186
- asan_unpoison_object(VALUE obj, bool newobj_p)
187
- {
188
- MAYBE_UNUSED(struct RVALUE *) ptr = (void *)obj;
189
- asan_unpoison_memory_region(ptr, SIZEOF_VALUE, newobj_p);
190
- }
191
-
192
- static inline void *
193
- asan_unpoison_object_temporary(VALUE obj)
194
- {
195
- void *ptr = asan_poisoned_object_p(obj);
196
- asan_unpoison_object(obj, false);
197
- return ptr;
198
- }
199
-
200
- static inline void *
201
- asan_poison_object_restore(VALUE obj, void *ptr)
202
- {
203
- if (ptr) {
204
- asan_poison_object(obj);
205
- }
206
- return NULL;
207
- }
208
-
209
-
210
- /**
211
- * Checks if the given pointer is on an ASAN fake stack. If so, it returns the
212
- * address this variable has on the real frame; if not, it returns the origin
213
- * address unmodified.
214
- *
215
- * n.b. - _dereferencing_ the returned address is meaningless and should not
216
- * be done; even though ASAN reserves space for the variable in both the real and
217
- * fake stacks, the _value_ of that variable is only in the fake stack.
218
- *
219
- * n.b. - this only works for addresses passed in from local variables on the same
220
- * thread, because the ASAN fake stacks are threadlocal.
221
- *
222
- * @param[in] slot the address of some local variable
223
- * @retval a pointer to something from that frame on the _real_ machine stack
224
- */
225
- static inline void *
226
- asan_get_real_stack_addr(void* slot)
227
- {
228
- VALUE *addr;
229
- addr = __asan_addr_is_in_fake_stack(__asan_get_current_fake_stack(), slot, NULL, NULL);
230
- return addr ? addr : slot;
231
- }
232
-
233
- /**
234
- * Gets the current thread's fake stack handle, which can be passed into get_fake_stack_extents
235
- *
236
- * @retval An opaque value which can be passed to asan_get_fake_stack_extents
237
- */
238
- static inline void *
239
- asan_get_thread_fake_stack_handle(void)
240
- {
241
- return __asan_get_current_fake_stack();
242
- }
243
-
244
- /**
245
- * Checks if the given VALUE _actually_ represents a pointer to an ASAN fake stack.
246
- *
247
- * If the given slot _is_ actually a reference to an ASAN fake stack, and that fake stack
248
- * contains the real values for the passed-in range of machine stack addresses, returns true
249
- * and the range of the fake stack through the outparams.
250
- *
251
- * Otherwise, returns false, and sets the outparams to NULL.
252
- *
253
- * Note that this function expects "start" to be > "end" on downward-growing stack architectures;
254
- *
255
- * @param[in] thread_fake_stack_handle The asan fake stack reference for the thread we're scanning
256
- * @param[in] slot The value on the machine stack we want to inspect
257
- * @param[in] machine_stack_start The extents of the real machine stack on which slot lives
258
- * @param[in] machine_stack_end The extents of the real machine stack on which slot lives
259
- * @param[out] fake_stack_start_out The extents of the fake stack which contains real VALUEs
260
- * @param[out] fake_stack_end_out The extents of the fake stack which contains real VALUEs
261
- * @return Whether slot is a pointer to a fake stack for the given machine stack range
262
- */
263
-
264
- static inline bool
265
- asan_get_fake_stack_extents(void *thread_fake_stack_handle, VALUE slot,
266
- void *machine_stack_start, void *machine_stack_end,
267
- void **fake_stack_start_out, void **fake_stack_end_out)
268
- {
269
- /* the ifdef is needed here to suppress a warning about fake_frame_{start/end} being
270
- uninitialized if __asan_addr_is_in_fake_stack is an empty macro */
271
- #ifdef RUBY_ASAN_ENABLED
272
- void *fake_frame_start;
273
- void *fake_frame_end;
274
- void *real_stack_frame = __asan_addr_is_in_fake_stack(
275
- thread_fake_stack_handle, (void *)slot, &fake_frame_start, &fake_frame_end
276
- );
277
- if (real_stack_frame) {
278
- bool in_range;
279
- #if STACK_GROW_DIRECTION < 0
280
- in_range = machine_stack_start >= real_stack_frame && real_stack_frame >= machine_stack_end;
281
- #else
282
- in_range = machine_stack_start <= real_stack_frame && real_stack_frame <= machine_stack_end;
283
- #endif
284
- if (in_range) {
285
- *fake_stack_start_out = fake_frame_start;
286
- *fake_stack_end_out = fake_frame_end;
287
- return true;
288
- }
289
- }
290
- #endif
291
- *fake_stack_start_out = 0;
292
- *fake_stack_end_out = 0;
293
- return false;
294
- }
295
-
296
-
297
- #endif /* INTERNAL_SANITIZERS_H */
@@ -1,182 +0,0 @@
1
- #ifndef INTERNAL_STRING_H /*-*-C-*-vi:se ft=c:*/
2
- #define INTERNAL_STRING_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
- * @brief Internal header for String.
10
- */
11
- #include "ruby/internal/config.h"
12
- #include <stddef.h> /* for size_t */
13
- #include "internal/compilers.h" /* for __has_builtin */
14
- #include "ruby/internal/stdbool.h" /* for bool */
15
- #include "ruby/encoding.h" /* for rb_encoding */
16
- #include "ruby/ruby.h" /* for VALUE */
17
-
18
- #define STR_NOEMBED FL_USER1
19
- #define STR_SHARED FL_USER2 /* = ELTS_SHARED */
20
- #define STR_CHILLED FL_USER3
21
-
22
- #ifdef rb_fstring_cstr
23
- # undef rb_fstring_cstr
24
- #endif
25
-
26
- /* string.c */
27
- VALUE rb_fstring(VALUE);
28
- VALUE rb_fstring_cstr(const char *str);
29
- VALUE rb_fstring_enc_new(const char *ptr, long len, rb_encoding *enc);
30
- int rb_str_buf_cat_escaped_char(VALUE result, unsigned int c, int unicode_p);
31
- int rb_str_symname_p(VALUE);
32
- VALUE rb_str_quote_unprintable(VALUE);
33
- char *rb_str_fill_terminator(VALUE str, const int termlen);
34
- void rb_str_change_terminator_length(VALUE str, const int oldtermlen, const int termlen);
35
- VALUE rb_str_locktmp_ensure(VALUE str, VALUE (*func)(VALUE), VALUE arg);
36
- VALUE rb_str_chomp_string(VALUE str, VALUE chomp);
37
- VALUE rb_external_str_with_enc(VALUE str, rb_encoding *eenc);
38
- VALUE rb_str_cat_conv_enc_opts(VALUE newstr, long ofs, const char *ptr, long len,
39
- rb_encoding *from, int ecflags, VALUE ecopts);
40
- VALUE rb_enc_str_scrub(rb_encoding *enc, VALUE str, VALUE repl);
41
- VALUE rb_str_escape(VALUE str);
42
- size_t rb_str_memsize(VALUE);
43
- char *rb_str_to_cstr(VALUE str);
44
- const char *ruby_escaped_char(int c);
45
- void rb_str_make_independent(VALUE str);
46
- int rb_enc_str_coderange_scan(VALUE str, rb_encoding *enc);
47
- int rb_ascii8bit_appendable_encoding_index(rb_encoding *enc, unsigned int code);
48
- VALUE rb_str_include(VALUE str, VALUE arg);
49
- VALUE rb_str_byte_substr(VALUE str, VALUE beg, VALUE len);
50
-
51
- static inline bool STR_EMBED_P(VALUE str);
52
- static inline bool STR_SHARED_P(VALUE str);
53
- static inline VALUE QUOTE(VALUE v);
54
- static inline VALUE QUOTE_ID(ID v);
55
- static inline bool is_ascii_string(VALUE str);
56
- static inline bool is_broken_string(VALUE str);
57
- static inline VALUE rb_str_eql_internal(const VALUE str1, const VALUE str2);
58
-
59
- RUBY_SYMBOL_EXPORT_BEGIN
60
- /* string.c (export) */
61
- VALUE rb_str_tmp_frozen_acquire(VALUE str);
62
- VALUE rb_str_tmp_frozen_no_embed_acquire(VALUE str);
63
- void rb_str_tmp_frozen_release(VALUE str, VALUE tmp);
64
- VALUE rb_setup_fake_str(struct RString *fake_str, const char *name, long len, rb_encoding *enc);
65
- VALUE rb_str_upto_each(VALUE, VALUE, int, int (*each)(VALUE, VALUE), VALUE);
66
- VALUE rb_str_upto_endless_each(VALUE, int (*each)(VALUE, VALUE), VALUE);
67
- void rb_str_make_embedded(VALUE);
68
- size_t rb_str_size_as_embedded(VALUE);
69
- bool rb_str_reembeddable_p(VALUE);
70
- RUBY_SYMBOL_EXPORT_END
71
-
72
- VALUE rb_fstring_new(const char *ptr, long len);
73
- VALUE rb_obj_as_string_result(VALUE str, VALUE obj);
74
- VALUE rb_str_opt_plus(VALUE x, VALUE y);
75
- VALUE rb_str_concat_literals(size_t num, const VALUE *strary);
76
- VALUE rb_str_eql(VALUE str1, VALUE str2);
77
- VALUE rb_id_quote_unprintable(ID);
78
- VALUE rb_sym_proc_call(ID mid, int argc, const VALUE *argv, int kw_splat, VALUE passed_proc);
79
-
80
- struct rb_execution_context_struct;
81
- VALUE rb_ec_str_resurrect(struct rb_execution_context_struct *ec, VALUE str, bool chilled);
82
-
83
- #define rb_fstring_lit(str) rb_fstring_new((str), rb_strlen_lit(str))
84
- #define rb_fstring_literal(str) rb_fstring_lit(str)
85
- #define rb_fstring_enc_lit(str, enc) rb_fstring_enc_new((str), rb_strlen_lit(str), (enc))
86
- #define rb_fstring_enc_literal(str, enc) rb_fstring_enc_lit(str, enc)
87
-
88
- static inline VALUE
89
- QUOTE(VALUE v)
90
- {
91
- return rb_str_quote_unprintable(v);
92
- }
93
-
94
- static inline VALUE
95
- QUOTE_ID(ID i)
96
- {
97
- return rb_id_quote_unprintable(i);
98
- }
99
-
100
- static inline bool
101
- STR_EMBED_P(VALUE str)
102
- {
103
- return ! FL_TEST_RAW(str, STR_NOEMBED);
104
- }
105
-
106
- static inline bool
107
- STR_SHARED_P(VALUE str)
108
- {
109
- return FL_ALL_RAW(str, STR_NOEMBED | STR_SHARED);
110
- }
111
-
112
- static inline bool
113
- CHILLED_STRING_P(VALUE obj)
114
- {
115
- return RB_TYPE_P(obj, T_STRING) && FL_TEST_RAW(obj, STR_CHILLED);
116
- }
117
-
118
- static inline void
119
- CHILLED_STRING_MUTATED(VALUE str)
120
- {
121
- rb_category_warn(RB_WARN_CATEGORY_DEPRECATED, "literal string will be frozen in the future");
122
- FL_UNSET_RAW(str, STR_CHILLED | FL_FREEZE);
123
- }
124
-
125
- static inline void
126
- STR_CHILL_RAW(VALUE str)
127
- {
128
- // Chilled strings are always also frozen
129
- FL_SET_RAW(str, STR_CHILLED | RUBY_FL_FREEZE);
130
- }
131
-
132
- static inline bool
133
- is_ascii_string(VALUE str)
134
- {
135
- return rb_enc_str_coderange(str) == ENC_CODERANGE_7BIT;
136
- }
137
-
138
- static inline bool
139
- is_broken_string(VALUE str)
140
- {
141
- return rb_enc_str_coderange(str) == ENC_CODERANGE_BROKEN;
142
- }
143
-
144
- static inline bool
145
- at_char_boundary(const char *s, const char *p, const char *e, rb_encoding *enc)
146
- {
147
- return rb_enc_left_char_head(s, p, e, enc) == p;
148
- }
149
-
150
- static inline bool
151
- at_char_right_boundary(const char *s, const char *p, const char *e, rb_encoding *enc)
152
- {
153
- RUBY_ASSERT(s <= p);
154
- RUBY_ASSERT(p <= e);
155
-
156
- return rb_enc_right_char_head(s, p, e, enc) == p;
157
- }
158
-
159
- /* expect tail call optimization */
160
- // YJIT needs this function to never allocate and never raise
161
- static inline VALUE
162
- rb_str_eql_internal(const VALUE str1, const VALUE str2)
163
- {
164
- const long len = RSTRING_LEN(str1);
165
- const char *ptr1, *ptr2;
166
-
167
- if (len != RSTRING_LEN(str2)) return Qfalse;
168
- if (!rb_str_comparable(str1, str2)) return Qfalse;
169
- if ((ptr1 = RSTRING_PTR(str1)) == (ptr2 = RSTRING_PTR(str2)))
170
- return Qtrue;
171
- if (memcmp(ptr1, ptr2, len) == 0)
172
- return Qtrue;
173
- return Qfalse;
174
- }
175
-
176
- #if __has_builtin(__builtin_constant_p)
177
- # define rb_fstring_cstr(str) \
178
- (__builtin_constant_p(str) ? \
179
- rb_fstring_new((str), (long)strlen(str)) : \
180
- (rb_fstring_cstr)(str))
181
- #endif
182
- #endif /* INTERNAL_STRING_H */
@@ -1,79 +0,0 @@
1
- #ifndef INTERNAL_THREAD_H /*-*-C-*-vi:se ft=c:*/
2
- #define INTERNAL_THREAD_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
- * @brief Internal header for Thread.
10
- */
11
- #include "ruby/ruby.h" /* for VALUE */
12
- #include "ruby/intern.h" /* for rb_blocking_function_t */
13
- #include "ccan/list/list.h" /* for list in rb_io_close_wait_list */
14
-
15
- struct rb_thread_struct; /* in vm_core.h */
16
-
17
- #define RB_VM_SAVE_MACHINE_CONTEXT(th) \
18
- do { \
19
- FLUSH_REGISTER_WINDOWS; \
20
- setjmp((th)->ec->machine.regs); \
21
- SET_MACHINE_STACK_END(&(th)->ec->machine.stack_end); \
22
- } while (0)
23
-
24
- /* thread.c */
25
- #define COVERAGE_INDEX_LINES 0
26
- #define COVERAGE_INDEX_BRANCHES 1
27
- #define COVERAGE_TARGET_LINES 1
28
- #define COVERAGE_TARGET_BRANCHES 2
29
- #define COVERAGE_TARGET_METHODS 4
30
- #define COVERAGE_TARGET_ONESHOT_LINES 8
31
- #define COVERAGE_TARGET_EVAL 16
32
-
33
- #define RUBY_FATAL_THREAD_KILLED INT2FIX(0)
34
- #define RUBY_FATAL_THREAD_TERMINATED INT2FIX(1)
35
- #define RUBY_FATAL_FIBER_KILLED RB_INT2FIX(2)
36
-
37
- VALUE rb_obj_is_mutex(VALUE obj);
38
- VALUE rb_suppress_tracing(VALUE (*func)(VALUE), VALUE arg);
39
- void rb_thread_execute_interrupts(VALUE th);
40
- VALUE rb_get_coverages(void);
41
- int rb_get_coverage_mode(void);
42
- VALUE rb_default_coverage(int);
43
- VALUE rb_thread_shield_new(void);
44
- bool rb_thread_shield_owned(VALUE self);
45
- VALUE rb_thread_shield_wait(VALUE self);
46
- VALUE rb_thread_shield_release(VALUE self);
47
- VALUE rb_thread_shield_destroy(VALUE self);
48
- int rb_thread_to_be_killed(VALUE thread);
49
- void rb_mutex_allow_trap(VALUE self, int val);
50
- VALUE rb_uninterruptible(VALUE (*b_proc)(VALUE), VALUE data);
51
- VALUE rb_mutex_owned_p(VALUE self);
52
- VALUE rb_exec_recursive_outer_mid(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE h, ID mid);
53
- void ruby_mn_threads_params(void);
54
-
55
- int rb_thread_wait_for_single_fd(int fd, int events, struct timeval * timeout);
56
-
57
- struct rb_io_close_wait_list {
58
- struct ccan_list_head pending_fd_users;
59
- VALUE closing_thread;
60
- VALUE wakeup_mutex;
61
- };
62
- int rb_notify_fd_close(int fd, struct rb_io_close_wait_list *busy);
63
- void rb_notify_fd_close_wait(struct rb_io_close_wait_list *busy);
64
-
65
- RUBY_SYMBOL_EXPORT_BEGIN
66
-
67
- /* Temporary. This API will be removed (renamed). */
68
- VALUE rb_thread_io_blocking_region(rb_blocking_function_t *func, void *data1, int fd);
69
- VALUE rb_thread_io_blocking_call(rb_blocking_function_t *func, void *data1, int fd, int events);
70
-
71
- /* thread.c (export) */
72
- int ruby_thread_has_gvl_p(void); /* for ext/fiddle/closure.c */
73
-
74
- RUBY_SYMBOL_EXPORT_END
75
-
76
- int rb_threadptr_execute_interrupts(struct rb_thread_struct *th, int blocking_timing);
77
- bool rb_thread_mn_schedulable(VALUE thread);
78
-
79
- #endif /* INTERNAL_THREAD_H */
@@ -1,137 +0,0 @@
1
- #ifndef INTERNAL_VM_H /*-*-C-*-vi:se ft=c:*/
2
- #define INTERNAL_VM_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
- * @brief Internal header for RubyVM.
10
- */
11
- #include "ruby/internal/stdbool.h" /* for bool */
12
- #include "internal/serial.h" /* for rb_serial_t */
13
- #include "internal/static_assert.h" /* for STATIC_ASSERT */
14
- #include "ruby/ruby.h" /* for ID */
15
- #include "ruby/st.h" /* for st_table */
16
-
17
- #ifdef rb_funcallv
18
- # undef rb_funcallv
19
- #endif
20
-
21
- #ifdef rb_method_basic_definition_p
22
- # undef rb_method_basic_definition_p
23
- #endif
24
-
25
- struct rb_callable_method_entry_struct; /* in method.h */
26
- struct rb_method_definition_struct; /* in method.h */
27
- struct rb_execution_context_struct; /* in vm_core.h */
28
- struct rb_control_frame_struct; /* in vm_core.h */
29
- struct rb_callinfo; /* in vm_core.h */
30
-
31
- enum method_missing_reason {
32
- MISSING_NOENTRY = 0x00,
33
- MISSING_PRIVATE = 0x01,
34
- MISSING_PROTECTED = 0x02,
35
- MISSING_FCALL = 0x04,
36
- MISSING_VCALL = 0x08,
37
- MISSING_SUPER = 0x10,
38
- MISSING_MISSING = 0x20,
39
- MISSING_NONE = 0x40
40
- };
41
-
42
- /* vm_insnhelper.h */
43
- VALUE rb_vm_push_frame_fname(struct rb_execution_context_struct *ec, VALUE fname);
44
-
45
- /* vm.c */
46
- VALUE rb_obj_is_thread(VALUE obj);
47
- void rb_vm_mark(void *ptr);
48
- void rb_vm_register_global_object(VALUE obj);
49
- void rb_vm_each_stack_value(void *ptr, void (*cb)(VALUE, void*), void *ctx);
50
- PUREFUNC(VALUE rb_vm_top_self(void));
51
- const void **rb_vm_get_insns_address_table(void);
52
- VALUE rb_source_location(int *pline);
53
- const char *rb_source_location_cstr(int *pline);
54
- void rb_vm_pop_cfunc_frame(void);
55
- void rb_vm_check_redefinition_by_prepend(VALUE klass);
56
- int rb_vm_check_optimizable_mid(VALUE mid);
57
- VALUE rb_yield_refine_block(VALUE refinement, VALUE refinements);
58
- VALUE ruby_vm_special_exception_copy(VALUE);
59
- PUREFUNC(st_table *rb_vm_fstring_table(void));
60
-
61
- void rb_lastline_set_up(VALUE val, unsigned int up);
62
-
63
- /* vm_eval.c */
64
- VALUE rb_current_realfilepath(void);
65
- VALUE rb_check_block_call(VALUE, ID, int, const VALUE *, rb_block_call_func_t, VALUE);
66
- typedef void rb_check_funcall_hook(int, VALUE, ID, int, const VALUE *, VALUE);
67
- VALUE rb_check_funcall_with_hook(VALUE recv, ID mid, int argc, const VALUE *argv,
68
- rb_check_funcall_hook *hook, VALUE arg);
69
- VALUE rb_check_funcall_with_hook_kw(VALUE recv, ID mid, int argc, const VALUE *argv,
70
- rb_check_funcall_hook *hook, VALUE arg, int kw_splat);
71
- const char *rb_type_str(enum ruby_value_type type);
72
- VALUE rb_check_funcall_default(VALUE, ID, int, const VALUE *, VALUE);
73
- VALUE rb_check_funcall_basic_kw(VALUE, ID, VALUE, int, const VALUE*, int);
74
- VALUE rb_yield_1(VALUE val);
75
- VALUE rb_yield_force_blockarg(VALUE values);
76
- VALUE rb_lambda_call(VALUE obj, ID mid, int argc, const VALUE *argv,
77
- rb_block_call_func_t bl_proc, int min_argc, int max_argc,
78
- VALUE data2);
79
- void rb_check_stack_overflow(void);
80
-
81
- #if USE_YJIT
82
- /* vm_exec.c */
83
- extern uint64_t rb_vm_insns_count;
84
- #endif
85
-
86
- extern bool rb_free_at_exit;
87
-
88
- /* miniinit.c and builtin.c */
89
- void rb_free_loaded_builtin_table(void);
90
-
91
- /* vm_insnhelper.c */
92
- VALUE rb_equal_opt(VALUE obj1, VALUE obj2);
93
- VALUE rb_eql_opt(VALUE obj1, VALUE obj2);
94
-
95
- struct rb_iseq_struct;
96
- const struct rb_callcache *rb_vm_search_method_slowpath(const struct rb_callinfo *ci, VALUE klass);
97
-
98
- /* vm_method.c */
99
- struct rb_execution_context_struct;
100
- int rb_ec_obj_respond_to(struct rb_execution_context_struct *ec, VALUE obj, ID id, int priv);
101
-
102
- void rb_clear_constant_cache(void);
103
-
104
- /* vm_dump.c */
105
- void rb_print_backtrace(FILE *);
106
-
107
- /* vm_backtrace.c */
108
- VALUE rb_vm_thread_backtrace(int argc, const VALUE *argv, VALUE thval);
109
- VALUE rb_vm_thread_backtrace_locations(int argc, const VALUE *argv, VALUE thval);
110
- VALUE rb_vm_backtrace(int argc, const VALUE * argv, struct rb_execution_context_struct * ec);
111
- VALUE rb_vm_backtrace_locations(int argc, const VALUE * argv, struct rb_execution_context_struct * ec);
112
- VALUE rb_make_backtrace(void);
113
- void rb_backtrace_print_as_bugreport(FILE*);
114
- int rb_backtrace_p(VALUE obj);
115
- VALUE rb_backtrace_to_str_ary(VALUE obj);
116
- VALUE rb_backtrace_to_location_ary(VALUE obj);
117
- VALUE rb_location_ary_to_backtrace(VALUE ary);
118
- void rb_backtrace_each(VALUE (*iter)(VALUE recv, VALUE str), VALUE output);
119
- int rb_frame_info_p(VALUE obj);
120
- int rb_get_node_id_from_frame_info(VALUE obj);
121
- const struct rb_iseq_struct *rb_get_iseq_from_frame_info(VALUE obj);
122
-
123
- VALUE rb_ec_backtrace_object(const struct rb_execution_context_struct *ec);
124
- void rb_backtrace_use_iseq_first_lineno_for_last_location(VALUE self);
125
-
126
- #define RUBY_DTRACE_CREATE_HOOK(name, arg) \
127
- RUBY_DTRACE_HOOK(name##_CREATE, arg)
128
- #define RUBY_DTRACE_HOOK(name, arg) \
129
- do { \
130
- if (UNLIKELY(RUBY_DTRACE_##name##_ENABLED())) { \
131
- int dtrace_line; \
132
- const char *dtrace_file = rb_source_location_cstr(&dtrace_line); \
133
- if (!dtrace_file) dtrace_file = ""; \
134
- RUBY_DTRACE_##name(arg, dtrace_file, dtrace_line); \
135
- } \
136
- } while (0)
137
- #endif /* INTERNAL_VM_H */