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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/addr2line.h +3 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/insns_info.inc +60 -60
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/array.h +8 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/bits.h +6 -6
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/class.h +7 -3
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/cmdlineopt.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/gc.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/hash.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/imemo.h +0 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/parse.h +7 -32
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/thread.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/variable.h +1 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/vm.h +4 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/method.h +7 -6
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/node.h +22 -19
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/node_name.inc +4 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/parse.h +16 -5
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview3/parser_node.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview3/prism_compile.h +18 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ractor_core.h +7 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/regint.h +8 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/regparse.h +2 -1
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview3/revision.h +5 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview3/rubyparser.h +1403 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/shape.h +32 -22
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/symbol.h +1 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/thread_none.h +1 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview3/thread_pthread.h +166 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/thread_win32.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/variable.h +9 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/version.h +7 -3
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm.inc +170 -183
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_callinfo.h +4 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_core.h +64 -11
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/yjit.h +10 -8
- data/lib/debase/ruby_core_source/version.rb +1 -1
- metadata +120 -119
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_node.h +0 -133
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/revision.h +0 -5
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/rubyparser.h +0 -628
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/thread_pthread.h +0 -126
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/builtin.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ccan/build_assert/build_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ccan/check_type/check_type.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ccan/container_of/container_of.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ccan/list/list.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ccan/str/str.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/constant.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/darray.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/debug_counter.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/dln.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/encindex.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/eval_intern.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/hrtime.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/id.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/id_table.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/insns.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/basic_operators.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/bignum.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/compar.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/compile.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/compilers.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/complex.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/cont.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/dir.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/enc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/encoding.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/enum.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/enumerator.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/error.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/eval.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/file.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/fixnum.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/inits.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/io.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/load.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/loadpath.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/math.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/missing.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/numeric.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/object.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/proc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/process.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/ractor.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/random.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/range.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/rational.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/re.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/ruby_parser.h +2 -2
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/sanitizers.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/serial.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/signal.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/static_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/string.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/struct.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/symbol.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/time.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/transcode.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/util.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/warnings.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/iseq.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/known_errors.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/optinsn.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/optunifs.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/parser_bits.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/parser_st.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/parser_value.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/probes_helper.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/regenc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/rjit.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/rjit_c.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ruby_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/ruby_atomic.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/siphash.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/timev.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/transcode_data.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_call_iseq_optimized.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_debug.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_exec.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_insnhelper.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_opts.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/vm_sync.h +0 -0
- /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
|
|
1682
|
-
extern
|
|
1683
|
-
extern
|
|
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
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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(
|
|
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
|
-
|
|
51
|
-
static inline
|
|
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(
|
|
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) {}
|
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.
|
|
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-
|
|
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-
|
|
2142
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2143
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2144
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2145
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2146
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2147
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2148
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2149
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2150
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2151
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2152
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2153
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2154
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2155
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2156
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2157
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2158
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2159
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2160
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2161
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2162
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2163
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2164
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2165
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2166
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2167
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2168
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2169
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2170
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2171
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2172
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2173
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2174
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2175
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2176
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2177
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2178
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2179
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2180
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2181
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2182
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2183
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2184
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2185
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2186
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2187
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2188
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2189
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2190
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2191
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2192
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2193
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2194
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2195
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2196
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2197
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2198
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2199
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2200
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2201
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2202
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2203
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2204
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2205
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2206
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2207
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2208
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2209
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2210
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2211
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2212
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2213
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2214
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2215
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2216
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2217
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2218
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2219
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2220
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2221
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2222
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2223
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2224
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2225
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2226
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2227
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2228
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2229
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2230
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2231
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2232
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2233
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2234
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2235
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2236
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2237
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2238
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2239
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2240
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2241
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2242
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2243
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2244
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2245
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2246
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2247
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2248
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2249
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2250
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2251
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2252
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2253
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2254
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2255
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2256
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
2257
|
-
- lib/debase/ruby_core_source/ruby-3.3.0-
|
|
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 */
|