debase-ruby_core_source 3.2.2 → 3.2.3

Sign up to get free protection for your applications and to get access to all the features.
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