debase-ruby_core_source 3.3.6 → 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -0
  3. data/CHANGELOG.md +6 -0
  4. data/Rakefile +3 -1
  5. data/debase-ruby_core_source.gemspec +1 -0
  6. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/builtin.h +7 -1
  7. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/darray.h +1 -3
  8. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/id.h +5 -0
  9. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/insns.inc +2 -0
  10. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/insns_info.inc +310 -175
  11. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/basic_operators.h +1 -0
  12. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/bits.h +82 -0
  13. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/encoding.h +2 -0
  14. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/error.h +26 -0
  15. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/fixnum.h +1 -0
  16. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/gc.h +14 -6
  17. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/imemo.h +6 -1
  18. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/io.h +1 -1
  19. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/parse.h +2 -1
  20. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/proc.h +1 -0
  21. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/ractor.h +4 -0
  22. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/sanitizers.h +31 -39
  23. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/string.h +22 -10
  24. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/thread.h +23 -0
  25. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/vm.h +1 -1
  26. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/method.h +1 -0
  27. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/optunifs.inc +1 -1
  28. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/parse.h +2 -2
  29. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/ast.h +427 -3
  30. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/defines.h +8 -7
  31. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/diagnostic.h +1 -0
  32. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/extension.h +1 -1
  33. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/prism.h +47 -11
  34. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/version.h +2 -2
  35. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism_compile.h +5 -5
  36. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/ractor_core.h +6 -6
  37. data/lib/debase/ruby_core_source/ruby-3.4.0-p-1/revision.h +5 -0
  38. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/rubyparser.h +3 -2
  39. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/thread_pthread.h +0 -1
  40. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/version.h +1 -1
  41. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm.inc +151 -88
  42. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_core.h +40 -12
  43. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_sync.h +3 -3
  44. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vmtc.inc +2 -0
  45. data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/yjit.h +1 -0
  46. data/lib/debase/ruby_core_source/version.rb +1 -1
  47. data/lib/debase/ruby_core_source.rb +4 -2
  48. data/test/deduce_source_dir_test.rb +31 -0
  49. metadata +162 -293
  50. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/darray.h +0 -191
  51. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/debug_counter.h +0 -423
  52. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/dln.h +0 -34
  53. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/id.h +0 -343
  54. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/insns.inc +0 -259
  55. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/insns_info.inc +0 -9530
  56. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/array.h +0 -151
  57. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/basic_operators.h +0 -63
  58. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/bits.h +0 -568
  59. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/class.h +0 -283
  60. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/error.h +0 -216
  61. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/fixnum.h +0 -184
  62. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/gc.h +0 -334
  63. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/hash.h +0 -191
  64. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/imemo.h +0 -260
  65. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/io.h +0 -140
  66. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/parse.h +0 -117
  67. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/ractor.h +0 -6
  68. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/sanitizers.h +0 -297
  69. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/string.h +0 -182
  70. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/thread.h +0 -79
  71. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/vm.h +0 -137
  72. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/known_errors.inc +0 -1419
  73. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/method.h +0 -255
  74. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/optunifs.inc +0 -43
  75. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/parse.h +0 -243
  76. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/ast.h +0 -6245
  77. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/defines.h +0 -206
  78. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/diagnostic.h +0 -433
  79. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/extension.h +0 -19
  80. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/node.h +0 -150
  81. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/options.h +0 -305
  82. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/parser.h +0 -891
  83. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/regexp.h +0 -33
  84. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/static_literals.h +0 -120
  85. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_char.h +0 -205
  86. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_constant_pool.h +0 -226
  87. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_integer.h +0 -119
  88. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_newline_list.h +0 -102
  89. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string.h +0 -174
  90. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string_list.h +0 -44
  91. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/version.h +0 -29
  92. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism_compile.h +0 -88
  93. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/ractor_core.h +0 -393
  94. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/regint.h +0 -1010
  95. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/revision.h +0 -5
  96. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/rubyparser.h +0 -1430
  97. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/shape.h +0 -233
  98. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/symbol.h +0 -118
  99. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/thread_pthread.h +0 -166
  100. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/version.h +0 -69
  101. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm.inc +0 -5643
  102. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_callinfo.h +0 -605
  103. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_core.h +0 -2236
  104. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_insnhelper.h +0 -272
  105. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_sync.h +0 -137
  106. data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vmtc.inc +0 -253
  107. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/addr2line.h +0 -22
  108. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/builtin.h +0 -119
  109. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/build_assert/build_assert.h +0 -40
  110. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/check_type/check_type.h +0 -63
  111. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/container_of/container_of.h +0 -142
  112. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/list/list.h +0 -791
  113. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/str/str.h +0 -17
  114. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/constant.h +0 -53
  115. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/encindex.h +0 -70
  116. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/eval_intern.h +0 -324
  117. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/hrtime.h +0 -237
  118. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/id_table.h +0 -39
  119. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/bignum.h +0 -244
  120. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/cmdlineopt.h +0 -65
  121. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compar.h +0 -29
  122. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compile.h +0 -34
  123. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compilers.h +0 -107
  124. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/complex.h +0 -29
  125. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/cont.h +0 -35
  126. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/dir.h +0 -16
  127. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enc.h +0 -19
  128. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/encoding.h +0 -36
  129. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enum.h +0 -18
  130. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enumerator.h +0 -21
  131. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/eval.h +0 -33
  132. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/file.h +0 -38
  133. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/inits.h +0 -47
  134. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/load.h +0 -18
  135. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/loadpath.h +0 -16
  136. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/math.h +0 -23
  137. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/missing.h +0 -19
  138. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/numeric.h +0 -274
  139. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/object.h +0 -63
  140. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/proc.h +0 -30
  141. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/process.h +0 -124
  142. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/random.h +0 -17
  143. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/range.h +0 -40
  144. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/rational.h +0 -71
  145. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/re.h +0 -28
  146. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/ruby_parser.h +0 -102
  147. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/serial.h +0 -23
  148. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/signal.h +0 -24
  149. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/st.h +0 -11
  150. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/static_assert.h +0 -16
  151. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/struct.h +0 -127
  152. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/symbol.h +0 -45
  153. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/time.h +0 -34
  154. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/transcode.h +0 -23
  155. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/util.h +0 -27
  156. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/variable.h +0 -72
  157. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/warnings.h +0 -16
  158. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal.h +0 -108
  159. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/iseq.h +0 -340
  160. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/node.h +0 -111
  161. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/node_name.inc +0 -224
  162. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/optinsn.inc +0 -128
  163. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_bits.h +0 -564
  164. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_node.h +0 -32
  165. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_st.h +0 -162
  166. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_value.h +0 -106
  167. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/encoding.h +0 -283
  168. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/pack.h +0 -163
  169. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/prettyprint.h +0 -34
  170. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/prism.h +0 -336
  171. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_buffer.h +0 -218
  172. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_list.h +0 -97
  173. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_memchr.h +0 -29
  174. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_strncasecmp.h +0 -32
  175. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_strpbrk.h +0 -46
  176. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/probes_helper.h +0 -42
  177. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/regenc.h +0 -254
  178. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/regparse.h +0 -371
  179. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/revision.h +0 -5
  180. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit.h +0 -101
  181. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit_c.h +0 -165
  182. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ruby_assert.h +0 -14
  183. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ruby_atomic.h +0 -23
  184. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/siphash.h +0 -48
  185. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/thread_none.h +0 -21
  186. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/thread_win32.h +0 -58
  187. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/timev.h +0 -58
  188. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/transcode_data.h +0 -138
  189. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/variable.h +0 -39
  190. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_call_iseq_optimized.inc +0 -244
  191. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_debug.h +0 -124
  192. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_exec.h +0 -199
  193. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_opts.h +0 -67
  194. data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/yjit.h +0 -79
  195. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/addr2line.h +0 -0
  196. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/build_assert/build_assert.h +0 -0
  197. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/check_type/check_type.h +0 -0
  198. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/container_of/container_of.h +0 -0
  199. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/list/list.h +0 -0
  200. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/str/str.h +0 -0
  201. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/constant.h +0 -0
  202. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/debug_counter.h +0 -0
  203. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/dln.h +0 -0
  204. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/encindex.h +0 -0
  205. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/eval_intern.h +0 -0
  206. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/hrtime.h +0 -0
  207. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/id_table.h +0 -0
  208. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/array.h +0 -0
  209. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/bignum.h +0 -0
  210. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/class.h +0 -0
  211. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/cmdlineopt.h +0 -0
  212. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/compar.h +0 -0
  213. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/compile.h +0 -0
  214. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/compilers.h +0 -0
  215. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/complex.h +0 -0
  216. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/cont.h +0 -0
  217. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/dir.h +0 -0
  218. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/enc.h +0 -0
  219. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/enum.h +0 -0
  220. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/enumerator.h +0 -0
  221. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/eval.h +0 -0
  222. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/file.h +0 -0
  223. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/hash.h +0 -0
  224. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/inits.h +0 -0
  225. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/load.h +0 -0
  226. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/loadpath.h +0 -0
  227. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/math.h +0 -0
  228. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/missing.h +0 -0
  229. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/numeric.h +0 -0
  230. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/object.h +0 -0
  231. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/process.h +0 -0
  232. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/random.h +0 -0
  233. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/range.h +0 -0
  234. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/rational.h +0 -0
  235. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/re.h +0 -0
  236. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/ruby_parser.h +0 -0
  237. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/serial.h +0 -0
  238. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/signal.h +0 -0
  239. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/st.h +0 -0
  240. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/static_assert.h +0 -0
  241. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/struct.h +0 -0
  242. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/symbol.h +0 -0
  243. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/time.h +0 -0
  244. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/transcode.h +0 -0
  245. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/util.h +0 -0
  246. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/variable.h +0 -0
  247. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/warnings.h +0 -0
  248. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal.h +0 -0
  249. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/iseq.h +0 -0
  250. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/known_errors.inc +0 -0
  251. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/node.h +0 -0
  252. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/node_name.inc +0 -0
  253. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/optinsn.inc +0 -0
  254. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_bits.h +0 -0
  255. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_node.h +0 -0
  256. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_st.h +0 -0
  257. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_value.h +0 -0
  258. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/encoding.h +0 -0
  259. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/node.h +0 -0
  260. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/options.h +0 -0
  261. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/pack.h +0 -0
  262. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/parser.h +0 -0
  263. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/prettyprint.h +0 -0
  264. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/regexp.h +0 -0
  265. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/static_literals.h +0 -0
  266. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_buffer.h +0 -0
  267. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_char.h +0 -0
  268. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_constant_pool.h +0 -0
  269. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_integer.h +0 -0
  270. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_list.h +0 -0
  271. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_memchr.h +0 -0
  272. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_newline_list.h +0 -0
  273. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_string.h +0 -0
  274. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_strncasecmp.h +0 -0
  275. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_strpbrk.h +0 -0
  276. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/probes_helper.h +0 -0
  277. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/regenc.h +0 -0
  278. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/regint.h +0 -0
  279. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/regparse.h +0 -0
  280. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/rjit.h +0 -0
  281. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/rjit_c.h +0 -0
  282. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ruby_assert.h +0 -0
  283. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ruby_atomic.h +0 -0
  284. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/shape.h +0 -0
  285. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/siphash.h +0 -0
  286. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/symbol.h +0 -0
  287. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/thread_none.h +0 -0
  288. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/thread_win32.h +0 -0
  289. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/timev.h +0 -0
  290. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/transcode_data.h +0 -0
  291. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/variable.h +0 -0
  292. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_call_iseq_optimized.inc +0 -0
  293. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_callinfo.h +0 -0
  294. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_debug.h +0 -0
  295. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_exec.h +0 -0
  296. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_insnhelper.h +0 -0
  297. /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_opts.h +0 -0
@@ -70,7 +70,30 @@
70
70
  #define RUBY_ASSERT_MUTEX_OWNED(mutex) VM_ASSERT(rb_mutex_owned_p(mutex))
71
71
 
72
72
  #if defined(RUBY_ASSERT_CRITICAL_SECTION)
73
- // TODO add documentation
73
+ /*
74
+ # Critical Section Assertions
75
+
76
+ These assertions are used to ensure that context switching does not occur between two points in the code. In theory,
77
+ such code should already be protected by a mutex, but these assertions are used to ensure that the mutex is held.
78
+
79
+ The specific case where it can be useful is where a mutex is held further up the call stack, and the code in question
80
+ may not directly hold the mutex. In this case, the critical section assertions can be used to ensure that the mutex is
81
+ held by someone else.
82
+
83
+ These assertions are only enabled when RUBY_ASSERT_CRITICAL_SECTION is defined, which is only defined if VM_CHECK_MODE
84
+ is set.
85
+
86
+ ## Example Usage
87
+
88
+ ```c
89
+ RUBY_ASSERT_CRITICAL_SECTION_ENTER();
90
+ // ... some code which does not invoke rb_vm_check_ints() ...
91
+ RUBY_ASSERT_CRITICAL_SECTION_LEAVE();
92
+ ```
93
+
94
+ If `rb_vm_check_ints()` is called between the `RUBY_ASSERT_CRITICAL_SECTION_ENTER()` and
95
+ `RUBY_ASSERT_CRITICAL_SECTION_LEAVE()`, a failed assertion will result.
96
+ */
74
97
  extern int ruby_assert_critical_section_entered;
75
98
  #define RUBY_ASSERT_CRITICAL_SECTION_ENTER() do{ruby_assert_critical_section_entered += 1;}while(false)
76
99
  #define RUBY_ASSERT_CRITICAL_SECTION_LEAVE() do{VM_ASSERT(ruby_assert_critical_section_entered > 0);ruby_assert_critical_section_entered -= 1;}while(false)
@@ -230,6 +253,8 @@ union ic_serial_entry {
230
253
  VALUE data[2];
231
254
  };
232
255
 
256
+ #define IMEMO_CONST_CACHE_SHAREABLE IMEMO_FL_USER0
257
+
233
258
  // imemo_constcache
234
259
  struct iseq_inline_constant_cache_entry {
235
260
  VALUE flags;
@@ -370,6 +395,8 @@ enum rb_builtin_attr {
370
395
  BUILTIN_ATTR_SINGLE_NOARG_LEAF = 0x02,
371
396
  // This attribute signals JIT to duplicate the iseq for each block iseq so that its `yield` will be monomorphic.
372
397
  BUILTIN_ATTR_INLINE_BLOCK = 0x04,
398
+ // The iseq acts like a C method in backtraces.
399
+ BUILTIN_ATTR_C_TRACE = 0x08,
373
400
  };
374
401
 
375
402
  typedef VALUE (*rb_jit_func_t)(struct rb_execution_context_struct *, struct rb_control_frame_struct *);
@@ -579,6 +606,12 @@ rb_iseq_check(const rb_iseq_t *iseq)
579
606
  return iseq;
580
607
  }
581
608
 
609
+ static inline bool
610
+ rb_iseq_attr_p(const rb_iseq_t *iseq, enum rb_builtin_attr attr)
611
+ {
612
+ return (ISEQ_BODY(iseq)->builtin_attrs & attr) == attr;
613
+ }
614
+
582
615
  static inline const rb_iseq_t *
583
616
  def_iseq_ptr(rb_method_definition_t *def)
584
617
  {
@@ -766,13 +799,13 @@ typedef struct rb_vm_struct {
766
799
  struct rb_id_table *negative_cme_table;
767
800
  st_table *overloaded_cme_table; // cme -> overloaded_cme
768
801
  st_table *unused_block_warning_table;
769
- bool unused_block_warning_strict;
770
802
 
771
803
  // This id table contains a mapping from ID to ICs. It does this with ID
772
804
  // keys and nested st_tables as values. The nested tables have ICs as keys
773
805
  // and Qtrue as values. It is used when inline constant caches need to be
774
806
  // invalidated or ISEQs are being freed.
775
807
  struct rb_id_table *constant_cache;
808
+ ID inserting_constant_cache_id;
776
809
 
777
810
  #ifndef VM_GLOBAL_CC_CACHE_TABLE_SIZE
778
811
  #define VM_GLOBAL_CC_CACHE_TABLE_SIZE 1023
@@ -1124,6 +1157,7 @@ typedef struct rb_thread_struct {
1124
1157
  struct rb_unblock_callback unblock;
1125
1158
  VALUE locking_mutex;
1126
1159
  struct rb_mutex_struct *keeping_mutexes;
1160
+ struct ccan_list_head interrupt_exec_tasks;
1127
1161
 
1128
1162
  struct rb_waiting_list *join_list;
1129
1163
 
@@ -1280,6 +1314,7 @@ enum vm_opt_newarray_send_type {
1280
1314
  VM_OPT_NEWARRAY_SEND_HASH = 3,
1281
1315
  VM_OPT_NEWARRAY_SEND_PACK = 4,
1282
1316
  VM_OPT_NEWARRAY_SEND_PACK_BUFFER = 5,
1317
+ VM_OPT_NEWARRAY_SEND_INCLUDE_P = 6,
1283
1318
  };
1284
1319
 
1285
1320
  enum vm_special_object_type {
@@ -1487,22 +1522,13 @@ VM_ENV_ESCAPED_P(const VALUE *ep)
1487
1522
  return VM_ENV_FLAGS(ep, VM_ENV_FLAG_ESCAPED) ? 1 : 0;
1488
1523
  }
1489
1524
 
1490
- #if VM_CHECK_MODE > 0
1491
- static inline int
1492
- vm_assert_env(VALUE obj)
1493
- {
1494
- VM_ASSERT(imemo_type_p(obj, imemo_env));
1495
- return 1;
1496
- }
1497
- #endif
1498
-
1499
1525
  RBIMPL_ATTR_NONNULL((1))
1500
1526
  static inline VALUE
1501
1527
  VM_ENV_ENVVAL(const VALUE *ep)
1502
1528
  {
1503
1529
  VALUE envval = ep[VM_ENV_DATA_INDEX_ENV];
1504
1530
  VM_ASSERT(VM_ENV_ESCAPED_P(ep));
1505
- VM_ASSERT(vm_assert_env(envval));
1531
+ VM_ASSERT(envval == Qundef || imemo_type_p(envval, imemo_env));
1506
1532
  return envval;
1507
1533
  }
1508
1534
 
@@ -1945,6 +1971,8 @@ rb_ec_vm_ptr(const rb_execution_context_t *ec)
1945
1971
  }
1946
1972
  }
1947
1973
 
1974
+ NOINLINE(struct rb_execution_context_struct *rb_current_ec_noinline(void));
1975
+
1948
1976
  static inline rb_execution_context_t *
1949
1977
  rb_current_execution_context(bool expect_ec)
1950
1978
  {
@@ -21,9 +21,9 @@ void rb_vm_lock_body(LOCATION_ARGS);
21
21
  void rb_vm_unlock_body(LOCATION_ARGS);
22
22
 
23
23
  struct rb_ractor_struct;
24
- void rb_vm_lock_enter_body_cr(struct rb_ractor_struct *cr, unsigned int *lev APPEND_LOCATION_ARGS);
25
- void rb_vm_lock_enter_body_nb(unsigned int *lev APPEND_LOCATION_ARGS);
26
- void rb_vm_lock_enter_body(unsigned int *lev APPEND_LOCATION_ARGS);
24
+ NOINLINE(void rb_vm_lock_enter_body_cr(struct rb_ractor_struct *cr, unsigned int *lev APPEND_LOCATION_ARGS));
25
+ NOINLINE(void rb_vm_lock_enter_body_nb(unsigned int *lev APPEND_LOCATION_ARGS));
26
+ NOINLINE(void rb_vm_lock_enter_body(unsigned int *lev APPEND_LOCATION_ARGS));
27
27
  void rb_vm_lock_leave_body(unsigned int *lev APPEND_LOCATION_ARGS);
28
28
  void rb_vm_barrier(void);
29
29
 
@@ -100,6 +100,7 @@ static const void *const insns_address_table[] = {
100
100
  LABEL_PTR(opt_str_freeze),
101
101
  LABEL_PTR(opt_nil_p),
102
102
  LABEL_PTR(opt_str_uminus),
103
+ LABEL_PTR(opt_duparray_send),
103
104
  LABEL_PTR(opt_newarray_send),
104
105
  LABEL_PTR(invokesuper),
105
106
  LABEL_PTR(invokesuperforward),
@@ -209,6 +210,7 @@ static const void *const insns_address_table[] = {
209
210
  LABEL_PTR(trace_opt_str_freeze),
210
211
  LABEL_PTR(trace_opt_nil_p),
211
212
  LABEL_PTR(trace_opt_str_uminus),
213
+ LABEL_PTR(trace_opt_duparray_send),
212
214
  LABEL_PTR(trace_opt_newarray_send),
213
215
  LABEL_PTR(trace_invokesuper),
214
216
  LABEL_PTR(trace_invokesuperforward),
@@ -37,6 +37,7 @@ void rb_yjit_collect_binding_alloc(void);
37
37
  void rb_yjit_collect_binding_set(void);
38
38
  void rb_yjit_compile_iseq(const rb_iseq_t *iseq, rb_execution_context_t *ec, bool jit_exception);
39
39
  void rb_yjit_init(bool yjit_enabled);
40
+ void rb_yjit_free_at_exit();
40
41
  void rb_yjit_bop_redefined(int redefined_flag, enum ruby_basic_operators bop);
41
42
  void rb_yjit_constant_state_changed(ID id);
42
43
  void rb_yjit_iseq_mark(void *payload);
@@ -1,5 +1,5 @@
1
1
  module Debase
2
2
  module RubyCoreSource
3
- VERSION = '3.3.6'
3
+ VERSION = '3.4.1'
4
4
  end
5
5
  end
@@ -3,6 +3,8 @@ require 'rbconfig'
3
3
 
4
4
  module Debase
5
5
  module RubyCoreSource
6
+ MOCK_RUBY_VERSION_KEY = "MOCK_RUBY_VERSION"
7
+
6
8
  REVISION_MAP = {
7
9
  # Add pre-release version here since they do not have patchlevel to refer to.
8
10
  # Revision can be found at `revision.h` of ruby sources.
@@ -54,7 +56,7 @@ module Debase
54
56
  expected_directory
55
57
  else
56
58
  # Fallback to an older version.
57
- ruby_version = Gem::Version.new(RUBY_VERSION)
59
+ ruby_version = Gem::Version.new(ENV[MOCK_RUBY_VERSION_KEY] || RUBY_VERSION)
58
60
  path, = Dir.glob(prefix + 'ruby-*').
59
61
  select { |d| File.directory?(d) }.
60
62
  map { |d| [d, ruby_source_dir_version(d)] }.
@@ -68,7 +70,7 @@ module Debase
68
70
  end
69
71
 
70
72
  def self.ruby_source_dir_version(dir)
71
- match = /ruby-([0-9\.]+)-((p|rc|preview)[0-9]+)\z/.match(dir)
73
+ match = /ruby-([0-9\.]+)-((p|rc|preview)-?[0-9]+)\z/.match(dir)
72
74
  Gem::Version.new("#{match[1]}.#{match[2]}")
73
75
  end
74
76
 
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ DIR_NAME = File.dirname(__FILE__)
4
+ $:.unshift File.join(DIR_NAME, "..", "lib")
5
+
6
+ require 'test/unit'
7
+ require 'debase/ruby_core_source'
8
+
9
+ class DeduceSourceDirTest < Test::Unit::TestCase
10
+
11
+ def test_deduce_source_dir
12
+ version_to_answer = {
13
+ "3.4.1" => "ruby-3.4.0-p-1",
14
+ "3.4.0" => "ruby-3.4.0-p-1",
15
+ "3.3.6" => "ruby-3.3.5-p100",
16
+ "3.3.5" => "ruby-3.3.5-p100",
17
+ "3.3.4" => "ruby-3.3.0-p0",
18
+ "3.3.3" => "ruby-3.3.0-p0",
19
+ "3.2.6" => "ruby-3.2.0-p0",
20
+ "3.1.6" => "ruby-3.1.0-p0",
21
+ "3.0.7" => "ruby-3.0.0-p0",
22
+ }
23
+
24
+ version_to_answer.each do |version, answer|
25
+ ENV[Debase::RubyCoreSource::MOCK_RUBY_VERSION_KEY] = version
26
+ result = Debase::RubyCoreSource.deduce_packaged_source_dir(version)
27
+ deduced_source_dir_name = result.split(File::SEPARATOR).last
28
+ assert_equal(answer, deduced_source_dir_name)
29
+ end
30
+ end
31
+ end