debase-ruby_core_source 3.2.2 → 3.2.3

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 (126) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/addr2line.h +3 -1
  4. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/insns_info.inc +60 -60
  5. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/array.h +8 -1
  6. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/bits.h +6 -6
  7. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/class.h +7 -3
  8. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/cmdlineopt.h +2 -0
  9. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/gc.h +1 -0
  10. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/hash.h +1 -0
  11. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/imemo.h +0 -1
  12. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/parse.h +7 -32
  13. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/thread.h +1 -0
  14. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/variable.h +1 -2
  15. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/vm.h +4 -2
  16. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/method.h +7 -6
  17. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/node.h +22 -19
  18. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/node_name.inc +4 -2
  19. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/parse.h +16 -5
  20. data/lib/debase/ruby_core_source/ruby-3.3.0-preview3/parser_node.h +32 -0
  21. data/lib/debase/ruby_core_source/ruby-3.3.0-preview3/prism_compile.h +18 -0
  22. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ractor_core.h +7 -1
  23. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/regint.h +8 -0
  24. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/regparse.h +2 -1
  25. data/lib/debase/ruby_core_source/ruby-3.3.0-preview3/revision.h +5 -0
  26. data/lib/debase/ruby_core_source/ruby-3.3.0-preview3/rubyparser.h +1403 -0
  27. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/shape.h +32 -22
  28. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/symbol.h +1 -2
  29. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/thread_none.h +1 -0
  30. data/lib/debase/ruby_core_source/ruby-3.3.0-preview3/thread_pthread.h +166 -0
  31. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/thread_win32.h +1 -1
  32. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/variable.h +9 -2
  33. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/version.h +7 -3
  34. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm.inc +170 -183
  35. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_callinfo.h +4 -0
  36. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_core.h +64 -11
  37. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/yjit.h +10 -8
  38. data/lib/debase/ruby_core_source/version.rb +1 -1
  39. metadata +120 -119
  40. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_node.h +0 -133
  41. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/revision.h +0 -5
  42. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/rubyparser.h +0 -628
  43. data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/thread_pthread.h +0 -126
  44. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/builtin.h +0 -0
  45. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ccan/build_assert/build_assert.h +0 -0
  46. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ccan/check_type/check_type.h +0 -0
  47. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ccan/container_of/container_of.h +0 -0
  48. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ccan/list/list.h +0 -0
  49. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ccan/str/str.h +0 -0
  50. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/constant.h +0 -0
  51. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/darray.h +0 -0
  52. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/debug_counter.h +0 -0
  53. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/dln.h +0 -0
  54. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/encindex.h +0 -0
  55. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/eval_intern.h +0 -0
  56. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/hrtime.h +0 -0
  57. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/id.h +0 -0
  58. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/id_table.h +0 -0
  59. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/insns.inc +0 -0
  60. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/basic_operators.h +0 -0
  61. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/bignum.h +0 -0
  62. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/compar.h +0 -0
  63. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/compile.h +0 -0
  64. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/compilers.h +0 -0
  65. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/complex.h +0 -0
  66. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/cont.h +0 -0
  67. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/dir.h +0 -0
  68. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/enc.h +0 -0
  69. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/encoding.h +0 -0
  70. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/enum.h +0 -0
  71. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/enumerator.h +0 -0
  72. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/error.h +0 -0
  73. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/eval.h +0 -0
  74. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/file.h +0 -0
  75. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/fixnum.h +0 -0
  76. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/inits.h +0 -0
  77. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/io.h +0 -0
  78. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/load.h +0 -0
  79. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/loadpath.h +0 -0
  80. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/math.h +0 -0
  81. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/missing.h +0 -0
  82. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/numeric.h +0 -0
  83. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/object.h +0 -0
  84. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/proc.h +0 -0
  85. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/process.h +0 -0
  86. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/ractor.h +0 -0
  87. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/random.h +0 -0
  88. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/range.h +0 -0
  89. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/rational.h +0 -0
  90. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/re.h +0 -0
  91. data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/ruby_parser.h +2 -2
  92. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/sanitizers.h +0 -0
  93. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/serial.h +0 -0
  94. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/signal.h +0 -0
  95. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/static_assert.h +0 -0
  96. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/string.h +0 -0
  97. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/struct.h +0 -0
  98. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/symbol.h +0 -0
  99. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/time.h +0 -0
  100. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/transcode.h +0 -0
  101. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/util.h +0 -0
  102. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/warnings.h +0 -0
  103. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal.h +0 -0
  104. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/iseq.h +0 -0
  105. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/known_errors.inc +0 -0
  106. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/optinsn.inc +0 -0
  107. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/optunifs.inc +0 -0
  108. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/parser_bits.h +0 -0
  109. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/parser_st.h +0 -0
  110. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/parser_value.h +0 -0
  111. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/probes_helper.h +0 -0
  112. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/regenc.h +0 -0
  113. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/rjit.h +0 -0
  114. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/rjit_c.h +0 -0
  115. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ruby_assert.h +0 -0
  116. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ruby_atomic.h +0 -0
  117. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/siphash.h +0 -0
  118. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/timev.h +0 -0
  119. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/transcode_data.h +0 -0
  120. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_call_iseq_optimized.inc +0 -0
  121. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_debug.h +0 -0
  122. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_exec.h +0 -0
  123. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_insnhelper.h +0 -0
  124. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_opts.h +0 -0
  125. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_sync.h +0 -0
  126. /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vmtc.inc +0 -0
@@ -43,6 +43,7 @@ enum vm_call_flag_bits {
43
43
 
44
44
  struct rb_callinfo_kwarg {
45
45
  int keyword_len;
46
+ int references;
46
47
  VALUE keywords[];
47
48
  };
48
49
 
@@ -199,6 +200,9 @@ vm_ci_dump(const struct rb_callinfo *ci)
199
200
  static inline const struct rb_callinfo *
200
201
  vm_ci_new_(ID mid, unsigned int flag, unsigned int argc, const struct rb_callinfo_kwarg *kwarg, const char *file, int line)
201
202
  {
203
+ if (kwarg) {
204
+ ((struct rb_callinfo_kwarg *)kwarg)->references++;
205
+ }
202
206
  if (USE_EMBED_CI && VM_CI_EMBEDDABLE_P(mid, flag, argc, kwarg)) {
203
207
  RB_DEBUG_COUNTER_INC(ci_packed);
204
208
  return vm_ci_new_id(mid, flag, argc, kwarg);
@@ -524,6 +524,8 @@ struct rb_iseq_constant_body {
524
524
  #if USE_YJIT
525
525
  // YJIT stores some data on each iseq.
526
526
  void *yjit_payload;
527
+ // Used to estimate how frequently this ISEQ gets called
528
+ uint64_t yjit_calls_at_interv;
527
529
  #endif
528
530
  };
529
531
 
@@ -634,15 +636,51 @@ typedef struct rb_vm_struct {
634
636
  struct rb_ractor_struct *lock_owner;
635
637
  unsigned int lock_rec;
636
638
 
637
- // barrier
638
- bool barrier_waiting;
639
- unsigned int barrier_cnt;
640
- rb_nativethread_cond_t barrier_cond;
641
-
642
639
  // join at exit
643
640
  rb_nativethread_cond_t terminate_cond;
644
641
  bool terminate_waiting;
642
+
643
+ #ifndef RUBY_THREAD_PTHREAD_H
644
+ bool barrier_waiting;
645
+ unsigned int barrier_cnt;
646
+ rb_nativethread_cond_t barrier_cond;
647
+ #endif
645
648
  } sync;
649
+
650
+ // ractor scheduling
651
+ struct {
652
+ rb_nativethread_lock_t lock;
653
+ struct rb_ractor_struct *lock_owner;
654
+ bool locked;
655
+
656
+ rb_nativethread_cond_t cond; // GRQ
657
+ unsigned int snt_cnt; // count of shared NTs
658
+ unsigned int dnt_cnt; // count of dedicated NTs
659
+
660
+ unsigned int running_cnt;
661
+
662
+ unsigned int max_cpu;
663
+ struct ccan_list_head grq; // // Global Ready Queue
664
+ unsigned int grq_cnt;
665
+
666
+ // running threads
667
+ struct ccan_list_head running_threads;
668
+
669
+ // threads which switch context by timeslice
670
+ struct ccan_list_head timeslice_threads;
671
+
672
+ struct ccan_list_head zombie_threads;
673
+
674
+ // true if timeslice timer is not enable
675
+ bool timeslice_wait_inf;
676
+
677
+ // barrier
678
+ rb_nativethread_cond_t barrier_complete_cond;
679
+ rb_nativethread_cond_t barrier_release_cond;
680
+ bool barrier_waiting;
681
+ unsigned int barrier_waiting_cnt;
682
+ unsigned int barrier_serial;
683
+ } sched;
646
684
  } ractor;
647
685
 
648
686
  #ifdef USE_SIGALTSTACK
@@ -1678,13 +1716,13 @@ VALUE rb_proc_alloc(VALUE klass);
1678
1716
  VALUE rb_proc_dup(VALUE self);
1679
1717
 
1680
1718
  /* for debug */
1681
- extern void rb_vmdebug_stack_dump_raw(const rb_execution_context_t *ec, const rb_control_frame_t *cfp);
1682
- extern void rb_vmdebug_debug_print_pre(const rb_execution_context_t *ec, const rb_control_frame_t *cfp, const VALUE *_pc);
1683
- extern void rb_vmdebug_debug_print_post(const rb_execution_context_t *ec, const rb_control_frame_t *cfp);
1719
+ extern bool rb_vmdebug_stack_dump_raw(const rb_execution_context_t *ec, const rb_control_frame_t *cfp, FILE *);
1720
+ extern bool rb_vmdebug_debug_print_pre(const rb_execution_context_t *ec, const rb_control_frame_t *cfp, const VALUE *_pc, FILE *);
1721
+ extern bool rb_vmdebug_debug_print_post(const rb_execution_context_t *ec, const rb_control_frame_t *cfp, FILE *);
1684
1722
 
1685
- #define SDR() rb_vmdebug_stack_dump_raw(GET_EC(), GET_EC()->cfp)
1686
- #define SDR2(cfp) rb_vmdebug_stack_dump_raw(GET_EC(), (cfp))
1687
- void rb_vm_bugreport(const void *);
1723
+ #define SDR() rb_vmdebug_stack_dump_raw(GET_EC(), GET_EC()->cfp, stderr)
1724
+ #define SDR2(cfp) rb_vmdebug_stack_dump_raw(GET_EC(), (cfp), stderr)
1725
+ bool rb_vm_bugreport(const void *, FILE *);
1688
1726
  typedef void (*ruby_sighandler_t)(int);
1689
1727
  RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 4, 5)
1690
1728
  NORETURN(void rb_bug_for_fatal_signal(ruby_sighandler_t default_sighandler, int sig, const void *, const char *fmt, ...));
@@ -1739,6 +1777,7 @@ rb_vm_living_threads_init(rb_vm_t *vm)
1739
1777
  ccan_list_head_init(&vm->waiting_fds);
1740
1778
  ccan_list_head_init(&vm->workqueue);
1741
1779
  ccan_list_head_init(&vm->ractor.set);
1780
+ ccan_list_head_init(&vm->ractor.sched.zombie_threads);
1742
1781
  }
1743
1782
 
1744
1783
  typedef int rb_backtrace_iter_func(void *, VALUE, int, VALUE);
@@ -1839,6 +1878,20 @@ rb_current_execution_context(bool expect_ec)
1839
1878
  #else
1840
1879
  rb_execution_context_t *ec = ruby_current_ec;
1841
1880
  #endif
1881
+
1882
+ /* On the shared objects, `__tls_get_addr()` is used to access the TLS
1883
+ * and the address of the `ruby_current_ec` can be stored on a function
1884
+ * frame. However, this address can be mis-used after native thread
1885
+ * migration of a coroutine.
1886
+ * 1) Get `ptr =&ruby_current_ec` op NT1 and store it on the frame.
1887
+ * 2) Context switch and resume it on the NT2.
1888
+ * 3) `ptr` is used on NT2 but it accesses to the TLS on NT1.
1889
+ * This assertion checks such misusage.
1890
+ *
1891
+ * To avoid accidents, `GET_EC()` should be called once on the frame.
1892
+ * Note that inlining can produce the problem.
1893
+ */
1894
+ VM_ASSERT(ec == rb_current_ec_noinline());
1842
1895
  #else
1843
1896
  rb_execution_context_t *ec = native_tls_get(ruby_current_ec_key);
1844
1897
  #endif
@@ -25,15 +25,17 @@
25
25
  #endif
26
26
 
27
27
  // Expose these as declarations since we are building YJIT.
28
- bool rb_yjit_enabled_p(void);
29
- bool rb_yjit_compile_new_iseqs(void);
30
- bool rb_yjit_threshold_hit(const rb_iseq_t *const iseq, unsigned long total_calls);
28
+ extern uint64_t rb_yjit_call_threshold;
29
+ extern uint64_t rb_yjit_cold_threshold;
30
+ extern uint64_t rb_yjit_live_iseq_count;
31
+ extern bool rb_yjit_enabled_p;
32
+ void rb_yjit_incr_counter(const char *counter_name);
31
33
  void rb_yjit_invalidate_all_method_lookup_assumptions(void);
32
34
  void rb_yjit_cme_invalidate(rb_callable_method_entry_t *cme);
33
35
  void rb_yjit_collect_binding_alloc(void);
34
36
  void rb_yjit_collect_binding_set(void);
35
37
  void rb_yjit_compile_iseq(const rb_iseq_t *iseq, rb_execution_context_t *ec, bool jit_exception);
36
- void rb_yjit_init(void);
38
+ void rb_yjit_init(bool yjit_enabled);
37
39
  void rb_yjit_bop_redefined(int redefined_flag, enum ruby_basic_operators bop);
38
40
  void rb_yjit_constant_state_changed(ID id);
39
41
  void rb_yjit_iseq_mark(void *payload);
@@ -42,20 +44,20 @@ void rb_yjit_iseq_free(void *payload);
42
44
  void rb_yjit_before_ractor_spawn(void);
43
45
  void rb_yjit_constant_ic_update(const rb_iseq_t *const iseq, IC ic, unsigned insn_idx);
44
46
  void rb_yjit_tracing_invalidate_all(void);
47
+ void rb_yjit_show_usage(int help, int highlight, unsigned int width, int columns);
45
48
 
46
49
  #else
47
50
  // !USE_YJIT
48
51
  // In these builds, YJIT could never be turned on. Provide dummy implementations.
49
52
 
50
- static inline bool rb_yjit_enabled_p(void) { return false; }
51
- static inline bool rb_yjit_compile_new_iseqs(void) { return false; }
52
- static inline bool rb_yjit_threshold_hit(const rb_iseq_t *const iseq, unsigned long total_calls) { return false; }
53
+ #define rb_yjit_enabled_p false
54
+ static inline void rb_yjit_incr_counter(const char *counter_name) {}
53
55
  static inline void rb_yjit_invalidate_all_method_lookup_assumptions(void) {}
54
56
  static inline void rb_yjit_cme_invalidate(rb_callable_method_entry_t *cme) {}
55
57
  static inline void rb_yjit_collect_binding_alloc(void) {}
56
58
  static inline void rb_yjit_collect_binding_set(void) {}
57
59
  static inline void rb_yjit_compile_iseq(const rb_iseq_t *iseq, rb_execution_context_t *ec, bool jit_exception) {}
58
- static inline void rb_yjit_init(void) {}
60
+ static inline void rb_yjit_init(bool yjit_enabled) {}
59
61
  static inline void rb_yjit_bop_redefined(int redefined_flag, enum ruby_basic_operators bop) {}
60
62
  static inline void rb_yjit_constant_state_changed(ID id) {}
61
63
  static inline void rb_yjit_iseq_mark(void *payload) {}
@@ -1,5 +1,5 @@
1
1
  module Debase
2
2
  module RubyCoreSource
3
- VERSION = '3.2.2'
3
+ VERSION = '3.2.3'
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: 3.2.2
4
+ version: 3.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Moseley
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-09-18 00:00:00.000000000 Z
13
+ date: 2023-11-25 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: archive-tar-minitar
@@ -2138,123 +2138,124 @@ files:
2138
2138
  - lib/debase/ruby_core_source/ruby-3.2.0-p0/vm_sync.h
2139
2139
  - lib/debase/ruby_core_source/ruby-3.2.0-p0/vmtc.inc
2140
2140
  - lib/debase/ruby_core_source/ruby-3.2.0-p0/yjit.h
2141
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/addr2line.h
2142
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/builtin.h
2143
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/ccan/build_assert/build_assert.h
2144
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/ccan/check_type/check_type.h
2145
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/ccan/container_of/container_of.h
2146
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/ccan/list/list.h
2147
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/ccan/str/str.h
2148
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/constant.h
2149
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/darray.h
2150
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/debug_counter.h
2151
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/dln.h
2152
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/encindex.h
2153
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/eval_intern.h
2154
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/hrtime.h
2155
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/id.h
2156
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/id_table.h
2157
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/insns.inc
2158
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/insns_info.inc
2159
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal.h
2160
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/array.h
2161
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/basic_operators.h
2162
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/bignum.h
2163
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/bits.h
2164
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/class.h
2165
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/cmdlineopt.h
2166
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/compar.h
2167
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/compile.h
2168
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/compilers.h
2169
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/complex.h
2170
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/cont.h
2171
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/dir.h
2172
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/enc.h
2173
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/encoding.h
2174
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/enum.h
2175
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/enumerator.h
2176
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/error.h
2177
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/eval.h
2178
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/file.h
2179
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/fixnum.h
2180
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/gc.h
2181
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/hash.h
2182
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/imemo.h
2183
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/inits.h
2184
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/io.h
2185
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/load.h
2186
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/loadpath.h
2187
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/math.h
2188
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/missing.h
2189
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/numeric.h
2190
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/object.h
2191
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/parse.h
2192
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/proc.h
2193
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/process.h
2194
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/ractor.h
2195
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/random.h
2196
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/range.h
2197
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/rational.h
2198
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/re.h
2199
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/ruby_parser.h
2200
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/sanitizers.h
2201
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/serial.h
2202
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/signal.h
2203
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/static_assert.h
2204
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/string.h
2205
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/struct.h
2206
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/symbol.h
2207
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/thread.h
2208
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/time.h
2209
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/transcode.h
2210
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/util.h
2211
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/variable.h
2212
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/vm.h
2213
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/warnings.h
2214
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/iseq.h
2215
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/known_errors.inc
2216
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/method.h
2217
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/node.h
2218
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/node_name.inc
2219
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/optinsn.inc
2220
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/optunifs.inc
2221
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/parse.h
2222
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_bits.h
2223
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_node.h
2224
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_st.h
2225
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_value.h
2226
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/probes_helper.h
2227
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/ractor_core.h
2228
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/regenc.h
2229
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/regint.h
2230
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/regparse.h
2231
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/revision.h
2232
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/rjit.h
2233
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/rjit_c.h
2234
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/ruby_assert.h
2235
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/ruby_atomic.h
2236
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/rubyparser.h
2237
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/shape.h
2238
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/siphash.h
2239
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/symbol.h
2240
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/thread_none.h
2241
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/thread_pthread.h
2242
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/thread_win32.h
2243
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/timev.h
2244
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/transcode_data.h
2245
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/variable.h
2246
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/version.h
2247
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm.inc
2248
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_call_iseq_optimized.inc
2249
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_callinfo.h
2250
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_core.h
2251
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_debug.h
2252
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_exec.h
2253
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_insnhelper.h
2254
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_opts.h
2255
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/vm_sync.h
2256
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/vmtc.inc
2257
- - lib/debase/ruby_core_source/ruby-3.3.0-preview2/yjit.h
2141
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/addr2line.h
2142
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/builtin.h
2143
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/ccan/build_assert/build_assert.h
2144
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/ccan/check_type/check_type.h
2145
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/ccan/container_of/container_of.h
2146
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/ccan/list/list.h
2147
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/ccan/str/str.h
2148
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/constant.h
2149
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/darray.h
2150
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/debug_counter.h
2151
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/dln.h
2152
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/encindex.h
2153
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/eval_intern.h
2154
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/hrtime.h
2155
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/id.h
2156
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/id_table.h
2157
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/insns.inc
2158
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/insns_info.inc
2159
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal.h
2160
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/array.h
2161
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/basic_operators.h
2162
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/bignum.h
2163
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/bits.h
2164
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/class.h
2165
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/cmdlineopt.h
2166
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/compar.h
2167
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/compile.h
2168
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/compilers.h
2169
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/complex.h
2170
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/cont.h
2171
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/dir.h
2172
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/enc.h
2173
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/encoding.h
2174
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/enum.h
2175
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/enumerator.h
2176
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/error.h
2177
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/eval.h
2178
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/file.h
2179
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/fixnum.h
2180
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/gc.h
2181
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/hash.h
2182
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/imemo.h
2183
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/inits.h
2184
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/io.h
2185
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/load.h
2186
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/loadpath.h
2187
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/math.h
2188
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/missing.h
2189
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/numeric.h
2190
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/object.h
2191
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/parse.h
2192
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/proc.h
2193
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/process.h
2194
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/ractor.h
2195
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/random.h
2196
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/range.h
2197
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/rational.h
2198
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/re.h
2199
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/ruby_parser.h
2200
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/sanitizers.h
2201
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/serial.h
2202
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/signal.h
2203
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/static_assert.h
2204
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/string.h
2205
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/struct.h
2206
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/symbol.h
2207
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/thread.h
2208
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/time.h
2209
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/transcode.h
2210
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/util.h
2211
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/variable.h
2212
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/vm.h
2213
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/internal/warnings.h
2214
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/iseq.h
2215
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/known_errors.inc
2216
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/method.h
2217
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/node.h
2218
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/node_name.inc
2219
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/optinsn.inc
2220
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/optunifs.inc
2221
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/parse.h
2222
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/parser_bits.h
2223
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/parser_node.h
2224
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/parser_st.h
2225
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/parser_value.h
2226
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/prism_compile.h
2227
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/probes_helper.h
2228
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/ractor_core.h
2229
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/regenc.h
2230
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/regint.h
2231
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/regparse.h
2232
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/revision.h
2233
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/rjit.h
2234
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/rjit_c.h
2235
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/ruby_assert.h
2236
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/ruby_atomic.h
2237
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/rubyparser.h
2238
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/shape.h
2239
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/siphash.h
2240
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/symbol.h
2241
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/thread_none.h
2242
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/thread_pthread.h
2243
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/thread_win32.h
2244
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/timev.h
2245
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/transcode_data.h
2246
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/variable.h
2247
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/version.h
2248
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/vm.inc
2249
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/vm_call_iseq_optimized.inc
2250
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/vm_callinfo.h
2251
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/vm_core.h
2252
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/vm_debug.h
2253
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/vm_exec.h
2254
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/vm_insnhelper.h
2255
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/vm_opts.h
2256
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/vm_sync.h
2257
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/vmtc.inc
2258
+ - lib/debase/ruby_core_source/ruby-3.3.0-preview3/yjit.h
2258
2259
  - lib/debase/ruby_core_source/version.rb
2259
2260
  homepage: https://github.com/ruby-debug/debase-ruby_core_source
2260
2261
  licenses:
@@ -1,133 +0,0 @@
1
- #ifndef RUBY_PARSER_NODE_H
2
- #define RUBY_PARSER_NODE_H 1
3
- /*
4
- * This is a header file used by only "parse.y"
5
- */
6
- #include "rubyparser.h"
7
- #include "internal/compilers.h"
8
-
9
- #if defined(__cplusplus)
10
- extern "C" {
11
- #if 0
12
- } /* satisfy cc-mode */
13
- #endif
14
- #endif
15
-
16
- static inline rb_code_location_t
17
- code_loc_gen(const rb_code_location_t *loc1, const rb_code_location_t *loc2)
18
- {
19
- rb_code_location_t loc;
20
- loc.beg_pos = loc1->beg_pos;
21
- loc.end_pos = loc2->end_pos;
22
- return loc;
23
- }
24
-
25
- #define RNODE(obj) ((struct RNode *)(obj))
26
-
27
-
28
- #define NEW_NODE(t,a0,a1,a2,loc) rb_node_newnode((t),(VALUE)(a0),(VALUE)(a1),(VALUE)(a2),loc)
29
- #define NEW_NODE_WITH_LOCALS(t,a1,a2,loc) node_newnode_with_locals(p, (t),(VALUE)(a1),(VALUE)(a2),loc)
30
-
31
- #define NEW_DEFN(i,a,d,loc) NEW_NODE(NODE_DEFN,0,i,NEW_SCOPE(a,d,loc),loc)
32
- #define NEW_DEFS(r,i,a,d,loc) NEW_NODE(NODE_DEFS,r,i,NEW_SCOPE(a,d,loc),loc)
33
- #define NEW_SCOPE(a,b,loc) NEW_NODE_WITH_LOCALS(NODE_SCOPE,b,a,loc)
34
- #define NEW_BLOCK(a,loc) NEW_NODE(NODE_BLOCK,a,0,0,loc)
35
- #define NEW_IF(c,t,e,loc) NEW_NODE(NODE_IF,c,t,e,loc)
36
- #define NEW_UNLESS(c,t,e,loc) NEW_NODE(NODE_UNLESS,c,t,e,loc)
37
- #define NEW_CASE(h,b,loc) NEW_NODE(NODE_CASE,h,b,0,loc)
38
- #define NEW_CASE2(b,loc) NEW_NODE(NODE_CASE2,0,b,0,loc)
39
- #define NEW_CASE3(h,b,loc) NEW_NODE(NODE_CASE3,h,b,0,loc)
40
- #define NEW_WHEN(c,t,e,loc) NEW_NODE(NODE_WHEN,c,t,e,loc)
41
- #define NEW_IN(c,t,e,loc) NEW_NODE(NODE_IN,c,t,e,loc)
42
- #define NEW_WHILE(c,b,n,loc) NEW_NODE(NODE_WHILE,c,b,n,loc)
43
- #define NEW_UNTIL(c,b,n,loc) NEW_NODE(NODE_UNTIL,c,b,n,loc)
44
- #define NEW_FOR(i,b,loc) NEW_NODE(NODE_FOR,0,b,i,loc)
45
- #define NEW_FOR_MASGN(v,loc) NEW_NODE(NODE_FOR_MASGN,v,0,0,loc)
46
- #define NEW_ITER(a,b,loc) NEW_NODE(NODE_ITER,0,NEW_SCOPE(a,b,loc),0,loc)
47
- #define NEW_LAMBDA(a,b,loc) NEW_NODE(NODE_LAMBDA,0,NEW_SCOPE(a,b,loc),0,loc)
48
- #define NEW_BREAK(s,loc) NEW_NODE(NODE_BREAK,s,0,0,loc)
49
- #define NEW_NEXT(s,loc) NEW_NODE(NODE_NEXT,s,0,0,loc)
50
- #define NEW_REDO(loc) NEW_NODE(NODE_REDO,0,0,0,loc)
51
- #define NEW_RETRY(loc) NEW_NODE(NODE_RETRY,0,0,0,loc)
52
- #define NEW_BEGIN(b,loc) NEW_NODE(NODE_BEGIN,0,b,0,loc)
53
- #define NEW_RESCUE(b,res,e,loc) NEW_NODE(NODE_RESCUE,b,res,e,loc)
54
- #define NEW_RESBODY(a,ex,n,loc) NEW_NODE(NODE_RESBODY,n,ex,a,loc)
55
- #define NEW_ENSURE(b,en,loc) NEW_NODE(NODE_ENSURE,b,0,en,loc)
56
- #define NEW_RETURN(s,loc) NEW_NODE(NODE_RETURN,s,0,0,loc)
57
- #define NEW_YIELD(a,loc) NEW_NODE(NODE_YIELD,a,0,0,loc)
58
- #define NEW_LIST(a,loc) NEW_NODE(NODE_LIST,a,1,0,loc)
59
- #define NEW_ZLIST(loc) NEW_NODE(NODE_ZLIST,0,0,0,loc)
60
- #define NEW_HASH(a,loc) NEW_NODE(NODE_HASH,a,0,0,loc)
61
- #define NEW_MASGN(l,r,loc) NEW_NODE(NODE_MASGN,l,0,r,loc)
62
- #define NEW_GASGN(v,val,loc) NEW_NODE(NODE_GASGN,v,val,0,loc)
63
- #define NEW_LASGN(v,val,loc) NEW_NODE(NODE_LASGN,v,val,0,loc)
64
- #define NEW_DASGN(v,val,loc) NEW_NODE(NODE_DASGN,v,val,0,loc)
65
- #define NEW_IASGN(v,val,loc) NEW_NODE(NODE_IASGN,v,val,0,loc)
66
- #define NEW_CDECL(v,val,path,loc) NEW_NODE(NODE_CDECL,v,val,path,loc)
67
- #define NEW_CVASGN(v,val,loc) NEW_NODE(NODE_CVASGN,v,val,0,loc)
68
- #define NEW_OP_ASGN1(p,id,a,loc) NEW_NODE(NODE_OP_ASGN1,p,id,a,loc)
69
- #define NEW_OP_ASGN2(r,t,i,o,val,loc) NEW_NODE(NODE_OP_ASGN2,r,val,NEW_OP_ASGN22(i,o,t,loc),loc)
70
- #define NEW_OP_ASGN22(i,o,t,loc) NEW_NODE(NODE_OP_ASGN2,i,o,t,loc)
71
- #define NEW_OP_ASGN_OR(i,val,loc) NEW_NODE(NODE_OP_ASGN_OR,i,val,0,loc)
72
- #define NEW_OP_ASGN_AND(i,val,loc) NEW_NODE(NODE_OP_ASGN_AND,i,val,0,loc)
73
- #define NEW_OP_CDECL(v,op,val,loc) NEW_NODE(NODE_OP_CDECL,v,val,op,loc)
74
- #define NEW_GVAR(v,loc) NEW_NODE(NODE_GVAR,v,0,0,loc)
75
- #define NEW_LVAR(v,loc) NEW_NODE(NODE_LVAR,v,0,0,loc)
76
- #define NEW_DVAR(v,loc) NEW_NODE(NODE_DVAR,v,0,0,loc)
77
- #define NEW_IVAR(v,loc) NEW_NODE(NODE_IVAR,v,0,0,loc)
78
- #define NEW_CONST(v,loc) NEW_NODE(NODE_CONST,v,0,0,loc)
79
- #define NEW_CVAR(v,loc) NEW_NODE(NODE_CVAR,v,0,0,loc)
80
- #define NEW_NTH_REF(n,loc) NEW_NODE(NODE_NTH_REF,0,n,0,loc)
81
- #define NEW_BACK_REF(n,loc) NEW_NODE(NODE_BACK_REF,0,n,0,loc)
82
- #define NEW_MATCH(c,loc) NEW_NODE(NODE_MATCH,c,0,0,loc)
83
- #define NEW_MATCH2(n1,n2,loc) NEW_NODE(NODE_MATCH2,n1,n2,0,loc)
84
- #define NEW_MATCH3(r,n2,loc) NEW_NODE(NODE_MATCH3,r,n2,0,loc)
85
- #define NEW_LIT(l,loc) NEW_NODE(NODE_LIT,l,0,0,loc)
86
- #define NEW_STR(s,loc) NEW_NODE(NODE_STR,s,0,0,loc)
87
- #define NEW_DSTR(s,loc) NEW_NODE(NODE_DSTR,s,1,0,loc)
88
- #define NEW_XSTR(s,loc) NEW_NODE(NODE_XSTR,s,0,0,loc)
89
- #define NEW_DXSTR(s,loc) NEW_NODE(NODE_DXSTR,s,0,0,loc)
90
- #define NEW_DSYM(s,loc) NEW_NODE(NODE_DSYM,s,0,0,loc)
91
- #define NEW_EVSTR(n,loc) NEW_NODE(NODE_EVSTR,0,(n),0,loc)
92
- #define NEW_CALL(r,m,a,loc) NEW_NODE(NODE_CALL,r,m,a,loc)
93
- #define NEW_OPCALL(r,m,a,loc) NEW_NODE(NODE_OPCALL,r,m,a,loc)
94
- #define NEW_FCALL(m,a,loc) NEW_NODE(NODE_FCALL,0,m,a,loc)
95
- #define NEW_VCALL(m,loc) NEW_NODE(NODE_VCALL,0,m,0,loc)
96
- #define NEW_SUPER(a,loc) NEW_NODE(NODE_SUPER,0,0,a,loc)
97
- #define NEW_ZSUPER(loc) NEW_NODE(NODE_ZSUPER,0,0,0,loc)
98
- #define NEW_ARGS_AUX(r,b,loc) NEW_NODE(NODE_ARGS_AUX,r,b,0,loc)
99
- #define NEW_OPT_ARG(i,v,loc) NEW_NODE(NODE_OPT_ARG,i,v,0,loc)
100
- #define NEW_KW_ARG(v,loc) NEW_NODE(NODE_KW_ARG,0,v,0,loc)
101
- #define NEW_POSTARG(i,v,loc) NEW_NODE(NODE_POSTARG,i,v,0,loc)
102
- #define NEW_ARGSCAT(a,b,loc) NEW_NODE(NODE_ARGSCAT,a,b,0,loc)
103
- #define NEW_ARGSPUSH(a,b,loc) NEW_NODE(NODE_ARGSPUSH,a,b,0,loc)
104
- #define NEW_SPLAT(a,loc) NEW_NODE(NODE_SPLAT,a,0,0,loc)
105
- #define NEW_BLOCK_PASS(b,loc) NEW_NODE(NODE_BLOCK_PASS,0,b,0,loc)
106
- #define NEW_ALIAS(n,o,loc) NEW_NODE(NODE_ALIAS,n,o,0,loc)
107
- #define NEW_VALIAS(n,o,loc) NEW_NODE(NODE_VALIAS,n,o,0,loc)
108
- #define NEW_UNDEF(i,loc) NEW_NODE(NODE_UNDEF,0,i,0,loc)
109
- #define NEW_CLASS(n,b,s,loc) NEW_NODE(NODE_CLASS,n,NEW_SCOPE(0,b,loc),(s),loc)
110
- #define NEW_SCLASS(r,b,loc) NEW_NODE(NODE_SCLASS,r,NEW_SCOPE(0,b,loc),0,loc)
111
- #define NEW_MODULE(n,b,loc) NEW_NODE(NODE_MODULE,n,NEW_SCOPE(0,b,loc),0,loc)
112
- #define NEW_COLON2(c,i,loc) NEW_NODE(NODE_COLON2,c,i,0,loc)
113
- #define NEW_COLON3(i,loc) NEW_NODE(NODE_COLON3,0,i,0,loc)
114
- #define NEW_DOT2(b,e,loc) NEW_NODE(NODE_DOT2,b,e,0,loc)
115
- #define NEW_DOT3(b,e,loc) NEW_NODE(NODE_DOT3,b,e,0,loc)
116
- #define NEW_SELF(loc) NEW_NODE(NODE_SELF,0,0,1,loc)
117
- #define NEW_NIL(loc) NEW_NODE(NODE_NIL,0,0,0,loc)
118
- #define NEW_TRUE(loc) NEW_NODE(NODE_TRUE,0,0,0,loc)
119
- #define NEW_FALSE(loc) NEW_NODE(NODE_FALSE,0,0,0,loc)
120
- #define NEW_ERRINFO(loc) NEW_NODE(NODE_ERRINFO,0,0,0,loc)
121
- #define NEW_DEFINED(e,loc) NEW_NODE(NODE_DEFINED,e,0,0,loc)
122
- #define NEW_POSTEXE(b,loc) NEW_NODE(NODE_POSTEXE,0,b,0,loc)
123
- #define NEW_ATTRASGN(r,m,a,loc) NEW_NODE(NODE_ATTRASGN,r,m,a,loc)
124
- #define NEW_ERROR(loc) NEW_NODE(NODE_ERROR,0,0,0,loc)
125
-
126
- #if defined(__cplusplus)
127
- #if 0
128
- { /* satisfy cc-mode */
129
- #endif
130
- } /* extern "C" { */
131
- #endif
132
-
133
- #endif /* RUBY_PARSER_NODE_H */
@@ -1,5 +0,0 @@
1
- #define RUBY_REVISION "e50fcca9a7"
2
- #define RUBY_FULL_REVISION "e50fcca9a79d8e25b33ad3611df6bf4627faafbf"
3
- #define RUBY_RELEASE_YEAR 2023
4
- #define RUBY_RELEASE_MONTH 9
5
- #define RUBY_RELEASE_DAY 14