debase-ruby_core_source 4.0.0.preview2 → 4.0.0

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 (150) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/id.h +3 -0
  4. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/insns.inc +2 -0
  5. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/insns_info.inc +234 -218
  6. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/basic_operators.h +1 -0
  7. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/bignum.h +21 -10
  8. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/bits.h +14 -17
  9. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/box.h +3 -1
  10. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/class.h +3 -2
  11. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/cont.h +0 -1
  12. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/eval.h +2 -0
  13. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/gc.h +7 -5
  14. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/numeric.h +48 -0
  15. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/thread.h +2 -2
  16. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/time.h +2 -5
  17. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/vm.h +2 -0
  18. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/iseq.h +3 -1
  19. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/method.h +7 -2
  20. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/parse.h +5 -3
  21. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/parser_bits.h +108 -25
  22. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/ast.h +38 -17
  23. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/extension.h +1 -1
  24. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/options.h +4 -1
  25. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/prism.h +1 -1
  26. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/version.h +2 -2
  27. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/ractor_core.h +25 -0
  28. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/regint.h +1 -16
  29. data/lib/debase/ruby_core_source/ruby-4.0.0-p0/revision.h +5 -0
  30. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/ruby_atomic.h +7 -0
  31. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/rubyparser.h +0 -1
  32. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/shape.h +30 -10
  33. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/thread_pthread.h +3 -1
  34. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/version.h +2 -2
  35. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/vm.inc +115 -91
  36. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/vm_callinfo.h +19 -6
  37. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/vm_core.h +68 -12
  38. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/vm_exec.h +1 -1
  39. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/vm_sync.h +4 -0
  40. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/vmtc.inc +2 -0
  41. data/lib/debase/ruby_core_source/version.rb +1 -1
  42. metadata +147 -147
  43. data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/revision.h +0 -5
  44. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/addr2line.h +0 -0
  45. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/builtin.h +0 -0
  46. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/ccan/build_assert/build_assert.h +0 -0
  47. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/ccan/check_type/check_type.h +0 -0
  48. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/ccan/container_of/container_of.h +0 -0
  49. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/ccan/list/list.h +0 -0
  50. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/ccan/str/str.h +0 -0
  51. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/constant.h +0 -0
  52. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/darray.h +0 -0
  53. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/debug_counter.h +0 -0
  54. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/dln.h +0 -0
  55. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/encindex.h +0 -0
  56. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/eval_intern.h +0 -0
  57. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/hrtime.h +0 -0
  58. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/id_table.h +0 -0
  59. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/array.h +0 -0
  60. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/cmdlineopt.h +0 -0
  61. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/compar.h +0 -0
  62. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/compile.h +0 -0
  63. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/compilers.h +0 -0
  64. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/complex.h +0 -0
  65. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/concurrent_set.h +0 -0
  66. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/dir.h +0 -0
  67. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/enc.h +0 -0
  68. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/encoding.h +0 -0
  69. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/enum.h +0 -0
  70. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/enumerator.h +0 -0
  71. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/error.h +0 -0
  72. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/file.h +0 -0
  73. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/fixnum.h +0 -0
  74. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/hash.h +0 -0
  75. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/imemo.h +0 -0
  76. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/inits.h +0 -0
  77. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/io.h +0 -0
  78. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/load.h +0 -0
  79. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/loadpath.h +0 -0
  80. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/math.h +0 -0
  81. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/missing.h +0 -0
  82. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/object.h +0 -0
  83. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/parse.h +0 -0
  84. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/proc.h +0 -0
  85. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/process.h +0 -0
  86. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/ractor.h +0 -0
  87. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/random.h +0 -0
  88. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/range.h +0 -0
  89. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/rational.h +0 -0
  90. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/re.h +0 -0
  91. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/ruby_parser.h +0 -0
  92. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/sanitizers.h +0 -0
  93. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/serial.h +0 -0
  94. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/set_table.h +0 -0
  95. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/signal.h +0 -0
  96. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/st.h +0 -0
  97. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/static_assert.h +0 -0
  98. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/string.h +0 -0
  99. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/struct.h +0 -0
  100. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/symbol.h +0 -0
  101. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/transcode.h +0 -0
  102. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/util.h +0 -0
  103. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/variable.h +0 -0
  104. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal/warnings.h +0 -0
  105. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/internal.h +0 -0
  106. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/known_errors.inc +0 -0
  107. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/node.h +0 -0
  108. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/node_name.inc +0 -0
  109. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/optinsn.inc +0 -0
  110. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/optunifs.inc +0 -0
  111. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/parser_node.h +0 -0
  112. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/parser_st.h +0 -0
  113. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/parser_value.h +0 -0
  114. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/defines.h +0 -0
  115. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/diagnostic.h +0 -0
  116. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/encoding.h +0 -0
  117. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/node.h +0 -0
  118. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/pack.h +0 -0
  119. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/parser.h +0 -0
  120. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/prettyprint.h +0 -0
  121. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/regexp.h +0 -0
  122. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/static_literals.h +0 -0
  123. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/util/pm_buffer.h +0 -0
  124. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/util/pm_char.h +0 -0
  125. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/util/pm_constant_pool.h +0 -0
  126. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/util/pm_integer.h +0 -0
  127. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/util/pm_list.h +0 -0
  128. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/util/pm_memchr.h +0 -0
  129. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/util/pm_newline_list.h +0 -0
  130. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/util/pm_string.h +0 -0
  131. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/util/pm_strncasecmp.h +0 -0
  132. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism/util/pm_strpbrk.h +0 -0
  133. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/prism_compile.h +0 -0
  134. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/probes_helper.h +0 -0
  135. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/regenc.h +0 -0
  136. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/regparse.h +0 -0
  137. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/ruby_assert.h +0 -0
  138. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/siphash.h +0 -0
  139. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/symbol.h +0 -0
  140. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/thread_none.h +0 -0
  141. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/thread_win32.h +0 -0
  142. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/timev.h +0 -0
  143. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/transcode_data.h +0 -0
  144. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/variable.h +0 -0
  145. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/vm_call_iseq_optimized.inc +0 -0
  146. data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/vm_debug.h +4 -4
  147. /data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/vm_insnhelper.h +0 -0
  148. /data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/vm_opts.h +0 -0
  149. /data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/yjit.h +0 -0
  150. /data/lib/debase/ruby_core_source/{ruby-4.0.0-preview2 → ruby-4.0.0-p0}/zjit.h +0 -0
@@ -302,6 +302,7 @@ struct rb_callcache {
302
302
  #define VM_CALLCACHE_REFINEMENT IMEMO_FL_USER3
303
303
  #define VM_CALLCACHE_UNMARKABLE IMEMO_FL_USER4
304
304
  #define VM_CALLCACHE_ON_STACK IMEMO_FL_USER5
305
+ #define VM_CALLCACHE_INVALID_SUPER IMEMO_FL_USER6
305
306
 
306
307
  enum vm_cc_type {
307
308
  cc_type_normal, // chained from ccs
@@ -344,8 +345,6 @@ vm_cc_new(VALUE klass,
344
345
  *((struct rb_callable_method_entry_struct **)&cc->cme_) = (struct rb_callable_method_entry_struct *)cme;
345
346
  *((vm_call_handler *)&cc->call_) = call;
346
347
 
347
- VM_ASSERT(RB_TYPE_P(klass, T_CLASS) || RB_TYPE_P(klass, T_ICLASS));
348
-
349
348
  switch (type) {
350
349
  case cc_type_normal:
351
350
  break;
@@ -358,8 +357,13 @@ vm_cc_new(VALUE klass,
358
357
  break;
359
358
  }
360
359
 
361
- if (cme->def->type == VM_METHOD_TYPE_ATTRSET || cme->def->type == VM_METHOD_TYPE_IVAR) {
362
- vm_cc_attr_index_initialize(cc, INVALID_SHAPE_ID);
360
+ if (cme) {
361
+ if (cme->def->type == VM_METHOD_TYPE_ATTRSET || cme->def->type == VM_METHOD_TYPE_IVAR) {
362
+ vm_cc_attr_index_initialize(cc, INVALID_SHAPE_ID);
363
+ }
364
+ }
365
+ else {
366
+ *(VALUE *)&cc->flags |= VM_CALLCACHE_INVALID_SUPER;
363
367
  }
364
368
 
365
369
  RB_DEBUG_COUNTER_INC(cc_new);
@@ -405,6 +409,14 @@ vm_cc_markable(const struct rb_callcache *cc)
405
409
  return FL_TEST_RAW((VALUE)cc, VM_CALLCACHE_UNMARKABLE) == 0;
406
410
  }
407
411
 
412
+ static inline bool
413
+ vm_cc_invalid_super(const struct rb_callcache *cc)
414
+ {
415
+ VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
416
+ // Set when calling super and there is no superclass.
417
+ return FL_TEST_RAW((VALUE)cc, VM_CALLCACHE_INVALID_SUPER);
418
+ }
419
+
408
420
  static inline bool
409
421
  vm_cc_valid(const struct rb_callcache *cc)
410
422
  {
@@ -418,10 +430,11 @@ static inline const struct rb_callable_method_entry_struct *
418
430
  vm_cc_cme(const struct rb_callcache *cc)
419
431
  {
420
432
  VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
421
- VM_ASSERT(cc->klass != Qundef || !vm_cc_markable(cc));
433
+ VM_ASSERT(cc->klass != Qundef || !vm_cc_markable(cc) || vm_cc_invalid_super(cc));
422
434
  VM_ASSERT(cc_check_class(cc->klass));
423
435
  VM_ASSERT(cc->call_ == NULL || // not initialized yet
424
436
  !vm_cc_markable(cc) ||
437
+ vm_cc_invalid_super(cc) ||
425
438
  cc->cme_ != NULL);
426
439
 
427
440
  return cc->cme_;
@@ -432,7 +445,7 @@ vm_cc_call(const struct rb_callcache *cc)
432
445
  {
433
446
  VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
434
447
  VM_ASSERT(cc->call_ != NULL);
435
- VM_ASSERT(cc->klass != Qundef || !vm_cc_markable(cc));
448
+ VM_ASSERT(cc->klass != Qundef || !vm_cc_markable(cc) || vm_cc_invalid_super(cc));
436
449
  VM_ASSERT(cc_check_class(cc->klass));
437
450
  return cc->call_;
438
451
  }
@@ -317,6 +317,8 @@ struct rb_calling_info {
317
317
  #define VM_ARGC_STACK_MAX 128
318
318
  #endif
319
319
 
320
+ #define VM_KW_SPECIFIED_BITS_MAX (32-1) /* TODO: 32 -> Fixnum's max bits */
321
+
320
322
  # define CALLING_ARGC(calling) ((calling)->heap_argv ? RARRAY_LENINT((calling)->heap_argv) : (calling)->argc)
321
323
 
322
324
  struct rb_execution_context_struct;
@@ -429,7 +431,7 @@ struct rb_iseq_constant_body {
429
431
  * size = M+N+O+(*1)+K+(&1)+(**1) // parameter size.
430
432
  */
431
433
 
432
- struct {
434
+ struct rb_iseq_parameters {
433
435
  struct {
434
436
  unsigned int has_lead : 1;
435
437
  unsigned int has_opt : 1;
@@ -582,7 +584,7 @@ struct rb_iseq_struct {
582
584
  } loader;
583
585
 
584
586
  struct {
585
- struct rb_hook_list_struct *local_hooks;
587
+ unsigned int local_hooks_cnt;
586
588
  rb_event_flag_t global_trace_events;
587
589
  } exec;
588
590
  } aux;
@@ -648,15 +650,21 @@ void *rb_objspace_alloc(void);
648
650
  void rb_objspace_free(void *objspace);
649
651
  void rb_objspace_call_finalizer(void);
650
652
 
653
+ enum rb_hook_list_type {
654
+ hook_list_type_ractor_local,
655
+ hook_list_type_targeted_iseq,
656
+ hook_list_type_targeted_def, // C function
657
+ hook_list_type_global
658
+ };
659
+
651
660
  typedef struct rb_hook_list_struct {
652
661
  struct rb_event_hook_struct *hooks;
653
662
  rb_event_flag_t events;
654
663
  unsigned int running;
664
+ enum rb_hook_list_type type;
655
665
  bool need_clean;
656
- bool is_local;
657
666
  } rb_hook_list_t;
658
667
 
659
-
660
668
  // see builtin.h for definition
661
669
  typedef const struct rb_builtin_function *RB_BUILTIN;
662
670
 
@@ -768,6 +776,9 @@ typedef struct rb_vm_struct {
768
776
  VALUE cmd[RUBY_NSIG];
769
777
  } trap_list;
770
778
 
779
+ /* hook (for internal events: NEWOBJ, FREEOBJ, GC events, etc.) */
780
+ rb_hook_list_t global_hooks;
781
+
771
782
  /* postponed_job (async-signal-safe, and thread-safe) */
772
783
  struct rb_postponed_job_queue *postponed_job_queue;
773
784
 
@@ -1036,6 +1047,8 @@ struct rb_execution_context_struct {
1036
1047
 
1037
1048
  rb_fiber_t *fiber_ptr;
1038
1049
  struct rb_thread_struct *thread_ptr;
1050
+ rb_serial_t serial;
1051
+ rb_serial_t ractor_id;
1039
1052
 
1040
1053
  /* storage (ec (fiber) local) */
1041
1054
  struct rb_id_table *local_storage;
@@ -1102,6 +1115,10 @@ void rb_ec_initialize_vm_stack(rb_execution_context_t *ec, VALUE *stack, size_t
1102
1115
  // @param ec the execution context to update.
1103
1116
  void rb_ec_clear_vm_stack(rb_execution_context_t *ec);
1104
1117
 
1118
+ // Close an execution context and free related resources that are no longer needed.
1119
+ // @param ec the execution context to close.
1120
+ void rb_ec_close(rb_execution_context_t *ec);
1121
+
1105
1122
  struct rb_ext_config {
1106
1123
  bool ractor_safe;
1107
1124
  };
@@ -2019,14 +2036,22 @@ rb_execution_context_t *rb_vm_main_ractor_ec(rb_vm_t *vm); // ractor.c
2019
2036
  RUBY_EXTERN struct rb_ractor_struct *ruby_single_main_ractor; // ractor.c
2020
2037
  RUBY_EXTERN rb_vm_t *ruby_current_vm_ptr;
2021
2038
  RUBY_EXTERN rb_event_flag_t ruby_vm_event_flags;
2022
- RUBY_EXTERN rb_event_flag_t ruby_vm_event_enabled_global_flags;
2023
- RUBY_EXTERN unsigned int ruby_vm_event_local_num;
2039
+ RUBY_EXTERN rb_event_flag_t ruby_vm_event_enabled_global_flags; // only ever added to
2040
+ RUBY_EXTERN unsigned int ruby_vm_iseq_events_enabled;
2041
+ RUBY_EXTERN unsigned int ruby_vm_c_events_enabled;
2024
2042
 
2025
2043
  #define GET_VM() rb_current_vm()
2026
2044
  #define GET_RACTOR() rb_current_ractor()
2027
2045
  #define GET_THREAD() rb_current_thread()
2028
2046
  #define GET_EC() rb_current_execution_context(true)
2029
2047
 
2048
+ static inline rb_serial_t
2049
+ rb_ec_serial(struct rb_execution_context_struct *ec)
2050
+ {
2051
+ VM_ASSERT(ec->serial >= 1);
2052
+ return ec->serial;
2053
+ }
2054
+
2030
2055
  static inline rb_thread_t *
2031
2056
  rb_ec_thread_ptr(const rb_execution_context_t *ec)
2032
2057
  {
@@ -2046,6 +2071,14 @@ rb_ec_ractor_ptr(const rb_execution_context_t *ec)
2046
2071
  }
2047
2072
  }
2048
2073
 
2074
+ static inline rb_serial_t
2075
+ rb_ec_ractor_id(const rb_execution_context_t *ec)
2076
+ {
2077
+ rb_serial_t ractor_id = ec->ractor_id;
2078
+ RUBY_ASSERT(ractor_id);
2079
+ return ractor_id;
2080
+ }
2081
+
2049
2082
  static inline rb_vm_t *
2050
2083
  rb_ec_vm_ptr(const rb_execution_context_t *ec)
2051
2084
  {
@@ -2074,9 +2107,9 @@ rb_current_execution_context(bool expect_ec)
2074
2107
  * and the address of the `ruby_current_ec` can be stored on a function
2075
2108
  * frame. However, this address can be mis-used after native thread
2076
2109
  * migration of a coroutine.
2077
- * 1) Get `ptr =&ruby_current_ec` op NT1 and store it on the frame.
2110
+ * 1) Get `ptr = &ruby_current_ec` on NT1 and store it on the frame.
2078
2111
  * 2) Context switch and resume it on the NT2.
2079
- * 3) `ptr` is used on NT2 but it accesses to the TLS on NT1.
2112
+ * 3) `ptr` is used on NT2 but it accesses the TLS of NT1.
2080
2113
  * This assertion checks such misusage.
2081
2114
  *
2082
2115
  * To avoid accidents, `GET_EC()` should be called once on the frame.
@@ -2255,8 +2288,9 @@ struct rb_trace_arg_struct {
2255
2288
  void rb_hook_list_mark(rb_hook_list_t *hooks);
2256
2289
  void rb_hook_list_mark_and_move(rb_hook_list_t *hooks);
2257
2290
  void rb_hook_list_free(rb_hook_list_t *hooks);
2258
- void rb_hook_list_connect_tracepoint(VALUE target, rb_hook_list_t *list, VALUE tpval, unsigned int target_line);
2259
- void rb_hook_list_remove_tracepoint(rb_hook_list_t *list, VALUE tpval);
2291
+ void rb_hook_list_connect_local_tracepoint(rb_hook_list_t *list, VALUE tpval, unsigned int target_line);
2292
+ bool rb_hook_list_remove_local_tracepoint(rb_hook_list_t *list, VALUE tpval);
2293
+ unsigned int rb_hook_list_count(rb_hook_list_t *list);
2260
2294
 
2261
2295
  void rb_exec_event_hooks(struct rb_trace_arg_struct *trace_arg, rb_hook_list_t *hooks, int pop_p);
2262
2296
 
@@ -2295,6 +2329,8 @@ struct rb_ractor_pub {
2295
2329
  VALUE self;
2296
2330
  uint32_t id;
2297
2331
  rb_hook_list_t hooks;
2332
+ st_table *targeted_hooks; // also called "local hooks". {ISEQ => hook_list, def => hook_list...}
2333
+ unsigned int targeted_hooks_cnt; // ex: tp.enabled(target: method(:puts))
2298
2334
  };
2299
2335
 
2300
2336
  static inline rb_hook_list_t *
@@ -2304,11 +2340,31 @@ rb_ec_ractor_hooks(const rb_execution_context_t *ec)
2304
2340
  return &cr_pub->hooks;
2305
2341
  }
2306
2342
 
2343
+ static inline rb_hook_list_t *
2344
+ rb_vm_global_hooks(const rb_execution_context_t *ec)
2345
+ {
2346
+ return &rb_ec_vm_ptr(ec)->global_hooks;
2347
+ }
2348
+
2349
+ static inline rb_hook_list_t *
2350
+ rb_ec_hooks(const rb_execution_context_t *ec, rb_event_flag_t event)
2351
+ {
2352
+ // Should be a single bit set
2353
+ VM_ASSERT(event != 0 && ((event - 1) & event) == 0);
2354
+
2355
+ if (event & RUBY_INTERNAL_EVENT_OBJSPACE_MASK) {
2356
+ return rb_vm_global_hooks(ec);
2357
+ }
2358
+ else {
2359
+ return rb_ec_ractor_hooks(ec);
2360
+ }
2361
+ }
2362
+
2307
2363
  #define EXEC_EVENT_HOOK(ec_, flag_, self_, id_, called_id_, klass_, data_) \
2308
- EXEC_EVENT_HOOK_ORIG(ec_, rb_ec_ractor_hooks(ec_), flag_, self_, id_, called_id_, klass_, data_, 0)
2364
+ EXEC_EVENT_HOOK_ORIG(ec_, rb_ec_hooks(ec_, flag_), flag_, self_, id_, called_id_, klass_, data_, 0)
2309
2365
 
2310
2366
  #define EXEC_EVENT_HOOK_AND_POP_FRAME(ec_, flag_, self_, id_, called_id_, klass_, data_) \
2311
- EXEC_EVENT_HOOK_ORIG(ec_, rb_ec_ractor_hooks(ec_), flag_, self_, id_, called_id_, klass_, data_, 1)
2367
+ EXEC_EVENT_HOOK_ORIG(ec_, rb_ec_hooks(ec_, flag_), flag_, self_, id_, called_id_, klass_, data_, 1)
2312
2368
 
2313
2369
  static inline void
2314
2370
  rb_exec_event_hook_script_compiled(rb_execution_context_t *ec, const rb_iseq_t *iseq, VALUE eval_script)
@@ -185,7 +185,7 @@ default: \
185
185
  if (ec->tag->state) THROW_EXCEPTION(val); \
186
186
  } \
187
187
  } \
188
- else if ((zjit_entry = rb_zjit_entry)) { \
188
+ else if ((zjit_entry = (rb_zjit_func_t)rb_zjit_entry)) { \
189
189
  rb_jit_func_t func = zjit_compile(ec); \
190
190
  if (func) { \
191
191
  val = zjit_entry(ec, ec->cfp, func); \
@@ -28,6 +28,10 @@ void rb_vm_lock_leave_body_nb(unsigned int *lev APPEND_LOCATION_ARGS);
28
28
  void rb_vm_lock_leave_body(unsigned int *lev APPEND_LOCATION_ARGS);
29
29
  void rb_vm_barrier(void);
30
30
 
31
+ RUBY_SYMBOL_EXPORT_BEGIN
32
+ VALUE rb_vm_lock_with_barrier(VALUE (*func)(void *args), void *args);
33
+ RUBY_SYMBOL_EXPORT_END
34
+
31
35
  #if RUBY_DEBUG
32
36
  // GET_VM()
33
37
  #include "vm_core.h"
@@ -256,6 +256,8 @@ static const void *const insns_address_table[] = {
256
256
  LABEL_PTR(trace_putobject_INT2FIX_1_),
257
257
  #if USE_ZJIT
258
258
  LABEL_PTR(zjit_getinstancevariable),
259
+ LABEL_PTR(zjit_setinstancevariable),
260
+ LABEL_PTR(zjit_definedivar),
259
261
  LABEL_PTR(zjit_send),
260
262
  LABEL_PTR(zjit_opt_send_without_block),
261
263
  LABEL_PTR(zjit_objtostring),
@@ -1,5 +1,5 @@
1
1
  module Debase
2
2
  module RubyCoreSource
3
- VERSION = '4.0.0.preview2'
3
+ VERSION = '4.0.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: debase-ruby_core_source
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.preview2
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Moseley
@@ -2580,151 +2580,151 @@ files:
2580
2580
  - lib/debase/ruby_core_source/ruby-3.4.0-p-1/vm_sync.h
2581
2581
  - lib/debase/ruby_core_source/ruby-3.4.0-p-1/vmtc.inc
2582
2582
  - lib/debase/ruby_core_source/ruby-3.4.0-p-1/yjit.h
2583
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/addr2line.h
2584
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/builtin.h
2585
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/ccan/build_assert/build_assert.h
2586
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/ccan/check_type/check_type.h
2587
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/ccan/container_of/container_of.h
2588
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/ccan/list/list.h
2589
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/ccan/str/str.h
2590
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/constant.h
2591
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/darray.h
2592
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/debug_counter.h
2593
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/dln.h
2594
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/encindex.h
2595
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/eval_intern.h
2596
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/hrtime.h
2597
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/id.h
2598
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/id_table.h
2599
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/insns.inc
2600
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/insns_info.inc
2601
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal.h
2602
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/array.h
2603
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/basic_operators.h
2604
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/bignum.h
2605
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/bits.h
2606
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/box.h
2607
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/class.h
2608
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/cmdlineopt.h
2609
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/compar.h
2610
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/compile.h
2611
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/compilers.h
2612
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/complex.h
2613
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/concurrent_set.h
2614
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/cont.h
2615
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/dir.h
2616
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/enc.h
2617
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/encoding.h
2618
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/enum.h
2619
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/enumerator.h
2620
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/error.h
2621
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/eval.h
2622
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/file.h
2623
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/fixnum.h
2624
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/gc.h
2625
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/hash.h
2626
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/imemo.h
2627
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/inits.h
2628
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/io.h
2629
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/load.h
2630
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/loadpath.h
2631
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/math.h
2632
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/missing.h
2633
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/numeric.h
2634
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/object.h
2635
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/parse.h
2636
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/proc.h
2637
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/process.h
2638
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/ractor.h
2639
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/random.h
2640
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/range.h
2641
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/rational.h
2642
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/re.h
2643
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/ruby_parser.h
2644
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/sanitizers.h
2645
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/serial.h
2646
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/set_table.h
2647
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/signal.h
2648
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/st.h
2649
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/static_assert.h
2650
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/string.h
2651
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/struct.h
2652
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/symbol.h
2653
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/thread.h
2654
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/time.h
2655
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/transcode.h
2656
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/util.h
2657
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/variable.h
2658
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/vm.h
2659
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/warnings.h
2660
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/iseq.h
2661
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/known_errors.inc
2662
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/method.h
2663
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/node.h
2664
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/node_name.inc
2665
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/optinsn.inc
2666
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/optunifs.inc
2667
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/parse.h
2668
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/parser_bits.h
2669
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/parser_node.h
2670
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/parser_st.h
2671
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/parser_value.h
2672
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/ast.h
2673
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/defines.h
2674
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/diagnostic.h
2675
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/encoding.h
2676
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/extension.h
2677
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/node.h
2678
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/options.h
2679
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/pack.h
2680
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/parser.h
2681
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/prettyprint.h
2682
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/prism.h
2683
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/regexp.h
2684
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/static_literals.h
2685
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_buffer.h
2686
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_char.h
2687
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_constant_pool.h
2688
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_integer.h
2689
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_list.h
2690
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_memchr.h
2691
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_newline_list.h
2692
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_string.h
2693
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_strncasecmp.h
2694
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_strpbrk.h
2695
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/version.h
2696
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism_compile.h
2697
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/probes_helper.h
2698
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/ractor_core.h
2699
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/regenc.h
2700
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/regint.h
2701
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/regparse.h
2702
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/revision.h
2703
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/ruby_assert.h
2704
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/ruby_atomic.h
2705
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/rubyparser.h
2706
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/shape.h
2707
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/siphash.h
2708
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/symbol.h
2709
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/thread_none.h
2710
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/thread_pthread.h
2711
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/thread_win32.h
2712
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/timev.h
2713
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/transcode_data.h
2714
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/variable.h
2715
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/version.h
2716
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/vm.inc
2717
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/vm_call_iseq_optimized.inc
2718
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/vm_callinfo.h
2719
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/vm_core.h
2720
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/vm_debug.h
2721
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/vm_exec.h
2722
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/vm_insnhelper.h
2723
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/vm_opts.h
2724
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/vm_sync.h
2725
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/vmtc.inc
2726
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/yjit.h
2727
- - lib/debase/ruby_core_source/ruby-4.0.0-preview2/zjit.h
2583
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/addr2line.h
2584
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/builtin.h
2585
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/ccan/build_assert/build_assert.h
2586
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/ccan/check_type/check_type.h
2587
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/ccan/container_of/container_of.h
2588
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/ccan/list/list.h
2589
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/ccan/str/str.h
2590
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/constant.h
2591
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/darray.h
2592
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/debug_counter.h
2593
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/dln.h
2594
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/encindex.h
2595
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/eval_intern.h
2596
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/hrtime.h
2597
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/id.h
2598
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/id_table.h
2599
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/insns.inc
2600
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/insns_info.inc
2601
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal.h
2602
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/array.h
2603
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/basic_operators.h
2604
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/bignum.h
2605
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/bits.h
2606
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/box.h
2607
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/class.h
2608
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/cmdlineopt.h
2609
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/compar.h
2610
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/compile.h
2611
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/compilers.h
2612
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/complex.h
2613
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/concurrent_set.h
2614
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/cont.h
2615
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/dir.h
2616
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/enc.h
2617
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/encoding.h
2618
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/enum.h
2619
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/enumerator.h
2620
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/error.h
2621
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/eval.h
2622
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/file.h
2623
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/fixnum.h
2624
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/gc.h
2625
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/hash.h
2626
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/imemo.h
2627
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/inits.h
2628
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/io.h
2629
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/load.h
2630
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/loadpath.h
2631
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/math.h
2632
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/missing.h
2633
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/numeric.h
2634
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/object.h
2635
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/parse.h
2636
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/proc.h
2637
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/process.h
2638
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/ractor.h
2639
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/random.h
2640
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/range.h
2641
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/rational.h
2642
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/re.h
2643
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/ruby_parser.h
2644
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/sanitizers.h
2645
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/serial.h
2646
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/set_table.h
2647
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/signal.h
2648
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/st.h
2649
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/static_assert.h
2650
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/string.h
2651
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/struct.h
2652
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/symbol.h
2653
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/thread.h
2654
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/time.h
2655
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/transcode.h
2656
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/util.h
2657
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/variable.h
2658
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/vm.h
2659
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/internal/warnings.h
2660
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/iseq.h
2661
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/known_errors.inc
2662
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/method.h
2663
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/node.h
2664
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/node_name.inc
2665
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/optinsn.inc
2666
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/optunifs.inc
2667
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/parse.h
2668
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/parser_bits.h
2669
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/parser_node.h
2670
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/parser_st.h
2671
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/parser_value.h
2672
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/ast.h
2673
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/defines.h
2674
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/diagnostic.h
2675
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/encoding.h
2676
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/extension.h
2677
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/node.h
2678
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/options.h
2679
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/pack.h
2680
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/parser.h
2681
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/prettyprint.h
2682
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/prism.h
2683
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/regexp.h
2684
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/static_literals.h
2685
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/util/pm_buffer.h
2686
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/util/pm_char.h
2687
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/util/pm_constant_pool.h
2688
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/util/pm_integer.h
2689
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/util/pm_list.h
2690
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/util/pm_memchr.h
2691
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/util/pm_newline_list.h
2692
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/util/pm_string.h
2693
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/util/pm_strncasecmp.h
2694
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/util/pm_strpbrk.h
2695
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism/version.h
2696
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/prism_compile.h
2697
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/probes_helper.h
2698
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/ractor_core.h
2699
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/regenc.h
2700
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/regint.h
2701
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/regparse.h
2702
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/revision.h
2703
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/ruby_assert.h
2704
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/ruby_atomic.h
2705
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/rubyparser.h
2706
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/shape.h
2707
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/siphash.h
2708
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/symbol.h
2709
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/thread_none.h
2710
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/thread_pthread.h
2711
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/thread_win32.h
2712
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/timev.h
2713
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/transcode_data.h
2714
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/variable.h
2715
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/version.h
2716
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/vm.inc
2717
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/vm_call_iseq_optimized.inc
2718
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/vm_callinfo.h
2719
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/vm_core.h
2720
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/vm_debug.h
2721
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/vm_exec.h
2722
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/vm_insnhelper.h
2723
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/vm_opts.h
2724
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/vm_sync.h
2725
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/vmtc.inc
2726
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/yjit.h
2727
+ - lib/debase/ruby_core_source/ruby-4.0.0-p0/zjit.h
2728
2728
  - lib/debase/ruby_core_source/version.rb
2729
2729
  - test/deduce_source_dir_test.rb
2730
2730
  homepage: https://github.com/ruby-debug/debase-ruby_core_source
@@ -2745,7 +2745,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
2745
2745
  - !ruby/object:Gem::Version
2746
2746
  version: 1.3.6
2747
2747
  requirements: []
2748
- rubygems_version: 4.0.0.dev
2748
+ rubygems_version: 4.0.3
2749
2749
  specification_version: 4
2750
2750
  summary: Provide Ruby core source files
2751
2751
  test_files: []
@@ -1,5 +0,0 @@
1
- #define RUBY_REVISION "4fa6e9938c"
2
- #define RUBY_FULL_REVISION "4fa6e9938cfb9458abd876ad4219a6648bfe1c96"
3
- #define RUBY_RELEASE_YEAR 2025
4
- #define RUBY_RELEASE_MONTH 11
5
- #define RUBY_RELEASE_DAY 17