debase-ruby_core_source 0.10.11 → 0.10.12
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/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/addr2line.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/builtin.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/ccan/build_assert/build_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/ccan/check_type/check_type.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/ccan/container_of/container_of.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/ccan/list/list.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/ccan/str/str.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/constant.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/debug_counter.h +38 -4
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/dln.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/encindex.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/eval_intern.h +16 -5
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/gc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/hrtime.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/id.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/id_table.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/insns.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/insns_info.inc +93 -89
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/array.h +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/bignum.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/bits.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/class.h +7 -1
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/compar.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/compile.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/compilers.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/complex.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/cont.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/dir.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/enc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/encoding.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/enum.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/enumerator.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/error.h +0 -7
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/eval.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/file.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/fixnum.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/gc.h +9 -2
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/hash.h +2 -1
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/imemo.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/inits.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/io.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/load.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/loadpath.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/math.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/missing.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/numeric.h +4 -1
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/object.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/parse.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/proc.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/process.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/random.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/range.h +4 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/rational.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/re.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/sanitizers.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/scheduler.h +9 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/serial.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/signal.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/static_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/string.h +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/struct.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/symbol.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/thread.h +0 -6
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/time.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/transcode.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/util.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/variable.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/vm.h +7 -6
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/warnings.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/iseq.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/known_errors.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/method.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/mjit.h +37 -14
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/mjit_compile.inc +715 -557
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/node.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/node_name.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/opt_sc.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/optinsn.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/optunifs.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/parse.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/probes_helper.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1/ractor.h → ruby-3.0.0-p0/ractor_core.h} +97 -25
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/regenc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/regint.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/regparse.h +0 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/revision.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/ruby_assert.h +0 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/ruby_atomic.h +23 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/siphash.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/symbol.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/thread_pthread.h +23 -14
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/thread_win32.h +5 -10
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/timev.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/transcode_data.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/transient_heap.h +4 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/variable.h +2 -1
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/version.h +3 -3
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm.inc +94 -99
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_call_iseq_optimized.inc +48 -48
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_callinfo.h +2 -3
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_core.h +96 -25
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_debug.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_exec.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_insnhelper.h +1 -4
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_opts.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vm_sync.h +44 -5
- data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/vmtc.inc +0 -0
- data/lib/debase/ruby_core_source/version.rb +1 -1
- metadata +111 -113
- data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/internal/mjit.h +0 -29
- data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ractor_pub.h +0 -50
- data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/revision.h +0 -2
- data/lib/debase/ruby_core_source/ruby-3.0.0-preview1/ruby_atomic.h +0 -236
File without changes
|
@@ -29,6 +29,8 @@ VALUE rb_ary_tmp_new_fill(long capa);
|
|
29
29
|
VALUE rb_ary_at(VALUE, VALUE);
|
30
30
|
size_t rb_ary_memsize(VALUE);
|
31
31
|
VALUE rb_to_array_type(VALUE obj);
|
32
|
+
void rb_ary_cancel_sharing(VALUE ary);
|
33
|
+
|
32
34
|
static inline VALUE rb_ary_entry_internal(VALUE ary, long offset);
|
33
35
|
static inline bool ARY_PTR_USING_P(VALUE ary);
|
34
36
|
static inline void RARY_TRANSIENT_SET(VALUE ary);
|
@@ -46,6 +48,9 @@ VALUE rb_ary_tmp_new_from_values(VALUE, long, const VALUE *);
|
|
46
48
|
VALUE rb_check_to_array(VALUE ary);
|
47
49
|
VALUE rb_ary_behead(VALUE, long);
|
48
50
|
VALUE rb_ary_aref1(VALUE ary, VALUE i);
|
51
|
+
|
52
|
+
struct rb_execution_context_struct;
|
53
|
+
VALUE rb_ec_ary_new_from_values(struct rb_execution_context_struct *ec, long n, const VALUE *elts);
|
49
54
|
MJIT_SYMBOL_EXPORT_END
|
50
55
|
|
51
56
|
static inline VALUE
|
File without changes
|
File without changes
|
@@ -25,8 +25,14 @@ struct rb_subclass_entry {
|
|
25
25
|
struct rb_subclass_entry *next;
|
26
26
|
};
|
27
27
|
|
28
|
+
struct rb_iv_index_tbl_entry {
|
29
|
+
uint32_t index;
|
30
|
+
rb_serial_t class_serial;
|
31
|
+
VALUE class_value;
|
32
|
+
};
|
33
|
+
|
28
34
|
struct rb_classext_struct {
|
29
|
-
struct st_table *iv_index_tbl;
|
35
|
+
struct st_table *iv_index_tbl; // ID -> struct rb_iv_index_tbl_entry
|
30
36
|
struct st_table *iv_tbl;
|
31
37
|
#if SIZEOF_SERIAL_T == SIZEOF_VALUE /* otherwise m_tbl is in struct RClass */
|
32
38
|
struct rb_id_table *m_tbl;
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/enumerator.h
RENAMED
File without changes
|
@@ -40,13 +40,6 @@
|
|
40
40
|
#endif
|
41
41
|
|
42
42
|
/* error.c */
|
43
|
-
typedef enum {
|
44
|
-
RB_WARN_CATEGORY_NONE,
|
45
|
-
RB_WARN_CATEGORY_DEPRECATED,
|
46
|
-
RB_WARN_CATEGORY_EXPERIMENTAL,
|
47
|
-
RB_WARN_CATEGORY_ALL_BITS = 0x6, /* no RB_WARN_CATEGORY_NONE bit */
|
48
|
-
} rb_warning_category_t;
|
49
|
-
|
50
43
|
extern long rb_backtrace_length_limit;
|
51
44
|
extern VALUE rb_eEAGAIN;
|
52
45
|
extern VALUE rb_eEWOULDBLOCK;
|
File without changes
|
File without changes
|
@@ -61,7 +61,7 @@ rb_fix_plus_fix(VALUE x, VALUE y)
|
|
61
61
|
* (3) Of course `z = x + (y-1)` may overflow.
|
62
62
|
* At that time true value is
|
63
63
|
* * positive: 0b0 1xxx...1, and z = 0b1xxx...1
|
64
|
-
* *
|
64
|
+
* * negative: 0b1 0xxx...1, and z = 0b0xxx...1
|
65
65
|
* To convert this true value to long,
|
66
66
|
* (a) Use arithmetic shift
|
67
67
|
* * positive: 0b11xxx...
|
@@ -30,6 +30,12 @@ struct rb_objspace; /* in vm_core.h */
|
|
30
30
|
T *(var) = (T *)(((f) & FL_WB_PROTECTED) ? \
|
31
31
|
rb_wb_protected_newobj_of((c), (f) & ~FL_WB_PROTECTED) : \
|
32
32
|
rb_wb_unprotected_newobj_of((c), (f)))
|
33
|
+
|
34
|
+
#define RB_EC_NEWOBJ_OF(ec, var, T, c, f) \
|
35
|
+
T *(var) = (T *)(((f) & FL_WB_PROTECTED) ? \
|
36
|
+
rb_ec_wb_protected_newobj_of((ec), (c), (f) & ~FL_WB_PROTECTED) : \
|
37
|
+
rb_wb_unprotected_newobj_of((c), (f)))
|
38
|
+
|
33
39
|
#define NEWOBJ_OF(var, T, c, f) RB_NEWOBJ_OF((var), T, (c), (f))
|
34
40
|
#define RB_OBJ_GC_FLAGS_MAX 6 /* used in ext/objspace */
|
35
41
|
|
@@ -52,8 +58,8 @@ struct rb_objspace; /* in vm_core.h */
|
|
52
58
|
|
53
59
|
#define UNALIGNED_MEMBER_PTR(ptr, mem) UNALIGNED_MEMBER_ACCESS(&(ptr)->mem)
|
54
60
|
#define RB_OBJ_WRITE(a, slot, b) \
|
55
|
-
UNALIGNED_MEMBER_ACCESS(\
|
56
|
-
|
61
|
+
rb_obj_write((VALUE)(a), UNALIGNED_MEMBER_ACCESS((VALUE *)(slot)), \
|
62
|
+
(VALUE)(b), __FILE__, __LINE__)
|
57
63
|
|
58
64
|
/* gc.c */
|
59
65
|
extern VALUE *ruby_initial_gc_stress_ptr;
|
@@ -85,6 +91,7 @@ RUBY_SYMBOL_EXPORT_BEGIN
|
|
85
91
|
const char *rb_objspace_data_type_name(VALUE obj);
|
86
92
|
VALUE rb_wb_protected_newobj_of(VALUE, VALUE);
|
87
93
|
VALUE rb_wb_unprotected_newobj_of(VALUE, VALUE);
|
94
|
+
VALUE rb_ec_wb_protected_newobj_of(struct rb_execution_context_struct *ec, VALUE klass, VALUE flags);
|
88
95
|
size_t rb_obj_memsize_of(VALUE);
|
89
96
|
void rb_gc_verify_internal_consistency(void);
|
90
97
|
size_t rb_obj_gc_flags(VALUE, ID[], size_t);
|
@@ -83,6 +83,8 @@ VALUE rb_hash_set_pair(VALUE hash, VALUE pair);
|
|
83
83
|
int rb_hash_stlike_delete(VALUE hash, st_data_t *pkey, st_data_t *pval);
|
84
84
|
int rb_hash_stlike_foreach_with_replace(VALUE hash, st_foreach_check_callback_func *func, st_update_callback_func *replace, st_data_t arg);
|
85
85
|
int rb_hash_stlike_update(VALUE hash, st_data_t key, st_update_callback_func *func, st_data_t arg);
|
86
|
+
extern st_table *rb_hash_st_table(VALUE hash);
|
87
|
+
|
86
88
|
static inline unsigned RHASH_AR_TABLE_SIZE_RAW(VALUE h);
|
87
89
|
static inline VALUE RHASH_IFNONE(VALUE h);
|
88
90
|
static inline size_t RHASH_SIZE(VALUE h);
|
@@ -135,7 +137,6 @@ RHASH_AR_TABLE(VALUE h)
|
|
135
137
|
static inline st_table *
|
136
138
|
RHASH_ST_TABLE(VALUE h)
|
137
139
|
{
|
138
|
-
extern st_table *rb_hash_st_table(VALUE hash);
|
139
140
|
return rb_hash_st_table(h)
|
140
141
|
}
|
141
142
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -50,11 +50,11 @@ double ruby_float_step_size(double beg, double end, double unit, int excl);
|
|
50
50
|
int ruby_float_step(VALUE from, VALUE to, VALUE step, int excl, int allow_endless);
|
51
51
|
int rb_num_negative_p(VALUE);
|
52
52
|
VALUE rb_int_succ(VALUE num);
|
53
|
-
VALUE rb_int_uminus(VALUE num);
|
54
53
|
VALUE rb_float_uminus(VALUE num);
|
55
54
|
VALUE rb_int_plus(VALUE x, VALUE y);
|
56
55
|
VALUE rb_float_plus(VALUE x, VALUE y);
|
57
56
|
VALUE rb_int_minus(VALUE x, VALUE y);
|
57
|
+
VALUE rb_float_minus(VALUE x, VALUE y);
|
58
58
|
VALUE rb_int_mul(VALUE x, VALUE y);
|
59
59
|
VALUE rb_float_mul(VALUE x, VALUE y);
|
60
60
|
VALUE rb_float_div(VALUE x, VALUE y);
|
@@ -79,6 +79,7 @@ int rb_int_positive_p(VALUE num);
|
|
79
79
|
int rb_int_negative_p(VALUE num);
|
80
80
|
VALUE rb_num_pow(VALUE x, VALUE y);
|
81
81
|
VALUE rb_float_ceil(VALUE num, int ndigits);
|
82
|
+
VALUE rb_float_floor(VALUE x, int ndigits);
|
82
83
|
VALUE rb_float_abs(VALUE flt);
|
83
84
|
static inline VALUE rb_num_compare_with_zero(VALUE num, ID mid);
|
84
85
|
static inline int rb_num_positive_int_p(VALUE num);
|
@@ -110,6 +111,8 @@ VALUE rb_int_even_p(VALUE num);
|
|
110
111
|
VALUE rb_int_odd_p(VALUE num);
|
111
112
|
VALUE rb_int_abs(VALUE num);
|
112
113
|
VALUE rb_int_bit_length(VALUE num);
|
114
|
+
VALUE rb_int_uminus(VALUE num);
|
115
|
+
VALUE rb_int_comp(VALUE num);
|
113
116
|
MJIT_SYMBOL_EXPORT_END
|
114
117
|
|
115
118
|
static inline bool
|
File without changes
|
File without changes
|
@@ -21,6 +21,7 @@ int rb_block_pair_yield_optimizable(void);
|
|
21
21
|
int rb_block_arity(void);
|
22
22
|
int rb_block_min_max_arity(int *max);
|
23
23
|
VALUE rb_block_to_s(VALUE self, const struct rb_block *block, const char *additional_info);
|
24
|
+
VALUE rb_callable_receiver(VALUE);
|
24
25
|
|
25
26
|
MJIT_SYMBOL_EXPORT_BEGIN
|
26
27
|
VALUE rb_func_proc_new(rb_block_call_func_t func, VALUE val);
|
File without changes
|
File without changes
|
@@ -29,12 +29,14 @@ VALUE rb_rational_uminus(VALUE self);
|
|
29
29
|
VALUE rb_rational_plus(VALUE self, VALUE other);
|
30
30
|
VALUE rb_rational_minus(VALUE self, VALUE other);
|
31
31
|
VALUE rb_rational_mul(VALUE self, VALUE other);
|
32
|
+
VALUE rb_rational_div(VALUE self, VALUE other);
|
32
33
|
VALUE rb_lcm(VALUE x, VALUE y);
|
33
34
|
VALUE rb_rational_reciprocal(VALUE x);
|
34
35
|
VALUE rb_cstr_to_rat(const char *, int);
|
35
36
|
VALUE rb_rational_abs(VALUE self);
|
36
37
|
VALUE rb_rational_cmp(VALUE self, VALUE other);
|
37
38
|
VALUE rb_rational_pow(VALUE self, VALUE other);
|
39
|
+
VALUE rb_rational_floor(VALUE self, int ndigits);
|
38
40
|
VALUE rb_numeric_quo(VALUE x, VALUE y);
|
39
41
|
VALUE rb_float_numerator(VALUE x);
|
40
42
|
VALUE rb_float_denominator(VALUE x);
|
File without changes
|
data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/sanitizers.h
RENAMED
File without changes
|
@@ -12,6 +12,12 @@
|
|
12
12
|
#include "ruby/ruby.h"
|
13
13
|
#include "ruby/intern.h"
|
14
14
|
|
15
|
+
VALUE rb_scheduler_get();
|
16
|
+
VALUE rb_scheduler_set(VALUE scheduler);
|
17
|
+
|
18
|
+
VALUE rb_scheduler_current();
|
19
|
+
VALUE rb_thread_scheduler_current(VALUE thread);
|
20
|
+
|
15
21
|
VALUE rb_scheduler_timeout(struct timeval *timeout);
|
16
22
|
|
17
23
|
VALUE rb_scheduler_close(VALUE scheduler);
|
@@ -19,6 +25,9 @@ VALUE rb_scheduler_close(VALUE scheduler);
|
|
19
25
|
VALUE rb_scheduler_kernel_sleep(VALUE scheduler, VALUE duration);
|
20
26
|
VALUE rb_scheduler_kernel_sleepv(VALUE scheduler, int argc, VALUE * argv);
|
21
27
|
|
28
|
+
int rb_scheduler_supports_process_wait(VALUE scheduler);
|
29
|
+
VALUE rb_scheduler_process_wait(VALUE scheduler, rb_pid_t pid, int flags);
|
30
|
+
|
22
31
|
VALUE rb_scheduler_block(VALUE scheduler, VALUE blocker, VALUE timeout);
|
23
32
|
VALUE rb_scheduler_unblock(VALUE scheduler, VALUE blocker, VALUE fiber);
|
24
33
|
|
File without changes
|
File without changes
|
data/lib/debase/ruby_core_source/{ruby-3.0.0-preview1 → ruby-3.0.0-p0}/internal/static_assert.h
RENAMED
File without changes
|
@@ -42,6 +42,8 @@ VALUE rb_str_initialize(VALUE str, const char *ptr, long len, rb_encoding *enc);
|
|
42
42
|
size_t rb_str_memsize(VALUE);
|
43
43
|
char *rb_str_to_cstr(VALUE str);
|
44
44
|
const char *ruby_escaped_char(int c);
|
45
|
+
void rb_str_make_independent(VALUE str);
|
46
|
+
|
45
47
|
static inline bool STR_EMBED_P(VALUE str);
|
46
48
|
static inline bool STR_SHARED_P(VALUE str);
|
47
49
|
static inline VALUE QUOTE(VALUE v);
|
@@ -67,6 +69,9 @@ VALUE rb_str_concat_literals(size_t num, const VALUE *strary);
|
|
67
69
|
VALUE rb_str_eql(VALUE str1, VALUE str2);
|
68
70
|
VALUE rb_id_quote_unprintable(ID);
|
69
71
|
VALUE rb_sym_proc_call(ID mid, int argc, const VALUE *argv, int kw_splat, VALUE passed_proc);
|
72
|
+
|
73
|
+
struct rb_execution_context_struct;
|
74
|
+
VALUE rb_ec_str_resurrect(struct rb_execution_context_struct *ec, VALUE str);
|
70
75
|
MJIT_SYMBOL_EXPORT_END
|
71
76
|
|
72
77
|
#define rb_fstring_lit(str) rb_fstring_new((str), rb_strlen_lit(str))
|
File without changes
|
File without changes
|
@@ -39,12 +39,6 @@ VALUE rb_mutex_owned_p(VALUE self);
|
|
39
39
|
|
40
40
|
int rb_thread_wait_for_single_fd(int fd, int events, struct timeval * timeout);
|
41
41
|
|
42
|
-
VALUE rb_thread_scheduler_get(VALUE thread);
|
43
|
-
VALUE rb_thread_scheduler_set(VALUE thread, VALUE scheduler);
|
44
|
-
|
45
|
-
VALUE rb_thread_scheduler_if_nonblocking(VALUE thread);
|
46
|
-
VALUE rb_thread_current_scheduler();
|
47
|
-
|
48
42
|
RUBY_SYMBOL_EXPORT_BEGIN
|
49
43
|
/* Temporary. This API will be removed (renamed). */
|
50
44
|
VALUE rb_thread_io_blocking_region(rb_blocking_function_t *func, void *data1, int fd);
|
File without changes
|
File without changes
|
File without changes
|
@@ -27,8 +27,7 @@ struct rb_callable_method_entry_struct; /* in method.h */
|
|
27
27
|
struct rb_method_definition_struct; /* in method.h */
|
28
28
|
struct rb_execution_context_struct; /* in vm_core.h */
|
29
29
|
struct rb_control_frame_struct; /* in vm_core.h */
|
30
|
-
struct
|
31
|
-
struct rb_call_data;
|
30
|
+
struct rb_callinfo; /* in vm_core.h */
|
32
31
|
|
33
32
|
enum method_missing_reason {
|
34
33
|
MISSING_NOENTRY = 0x00,
|
@@ -47,13 +46,14 @@ rb_serial_t rb_next_class_serial(void);
|
|
47
46
|
/* vm.c */
|
48
47
|
VALUE rb_obj_is_thread(VALUE obj);
|
49
48
|
void rb_vm_mark(void *ptr);
|
49
|
+
void rb_vm_each_stack_value(void *ptr, void (*cb)(VALUE, void*), void *ctx);
|
50
50
|
PUREFUNC(VALUE rb_vm_top_self(void));
|
51
51
|
void rb_vm_inc_const_missing_count(void);
|
52
52
|
const void **rb_vm_get_insns_address_table(void);
|
53
53
|
VALUE rb_source_location(int *pline);
|
54
54
|
const char *rb_source_location_cstr(int *pline);
|
55
55
|
MJIT_STATIC void rb_vm_pop_cfunc_frame(void);
|
56
|
-
int rb_vm_add_root_module(
|
56
|
+
int rb_vm_add_root_module(VALUE module);
|
57
57
|
void rb_vm_check_redefinition_by_prepend(VALUE klass);
|
58
58
|
int rb_vm_check_optimizable_mid(VALUE mid);
|
59
59
|
VALUE rb_yield_refine_block(VALUE refinement, VALUE refinements);
|
@@ -61,7 +61,7 @@ MJIT_STATIC VALUE ruby_vm_special_exception_copy(VALUE);
|
|
61
61
|
PUREFUNC(st_table *rb_vm_fstring_table(void));
|
62
62
|
|
63
63
|
MJIT_SYMBOL_EXPORT_BEGIN
|
64
|
-
VALUE vm_exec(struct rb_execution_context_struct *,
|
64
|
+
VALUE vm_exec(struct rb_execution_context_struct *, bool); /* used in JIT-ed code */
|
65
65
|
MJIT_SYMBOL_EXPORT_END
|
66
66
|
|
67
67
|
/* vm_eval.c */
|
@@ -74,6 +74,7 @@ VALUE rb_check_funcall_with_hook_kw(VALUE recv, ID mid, int argc, const VALUE *a
|
|
74
74
|
rb_check_funcall_hook *hook, VALUE arg, int kw_splat);
|
75
75
|
const char *rb_type_str(enum ruby_value_type type);
|
76
76
|
VALUE rb_check_funcall_default(VALUE, ID, int, const VALUE *, VALUE);
|
77
|
+
VALUE rb_check_funcall_basic_kw(VALUE, ID, VALUE, int, const VALUE*, int);
|
77
78
|
VALUE rb_yield_1(VALUE val);
|
78
79
|
VALUE rb_yield_force_blockarg(VALUE values);
|
79
80
|
VALUE rb_lambda_call(VALUE obj, ID mid, int argc, const VALUE *argv,
|
@@ -92,13 +93,13 @@ VALUE rb_eql_opt(VALUE obj1, VALUE obj2);
|
|
92
93
|
|
93
94
|
struct rb_iseq_struct;
|
94
95
|
MJIT_SYMBOL_EXPORT_BEGIN
|
95
|
-
|
96
|
+
const struct rb_callcache *rb_vm_search_method_slowpath(const struct rb_callinfo *ci, VALUE klass);
|
96
97
|
MJIT_SYMBOL_EXPORT_END
|
97
98
|
|
98
99
|
/* vm_method.c */
|
99
100
|
struct rb_execution_context_struct;
|
100
101
|
MJIT_SYMBOL_EXPORT_BEGIN
|
101
|
-
int rb_ec_obj_respond_to(struct rb_execution_context_struct *ec, VALUE obj, ID id, int priv);
|
102
|
+
int rb_ec_obj_respond_to(struct rb_execution_context_struct *ec, VALUE klass, VALUE obj, ID id, int priv);
|
102
103
|
MJIT_SYMBOL_EXPORT_END
|
103
104
|
|
104
105
|
/* vm_dump.c */
|
File without changes
|
File without changes
|
File without changes
|
@@ -8,13 +8,14 @@
|
|
8
8
|
|
9
9
|
**********************************************************************/
|
10
10
|
|
11
|
-
#include "ruby/internal/config.h"
|
11
|
+
#include "ruby/internal/config.h" // defines USE_MJIT
|
12
|
+
#include "ruby/internal/stdbool.h"
|
13
|
+
#include "vm_core.h"
|
12
14
|
|
13
|
-
#if USE_MJIT
|
15
|
+
# if USE_MJIT
|
14
16
|
|
15
17
|
#include "debug_counter.h"
|
16
18
|
#include "ruby.h"
|
17
|
-
#include "vm_core.h"
|
18
19
|
|
19
20
|
// Special address values of a function generated from the
|
20
21
|
// corresponding iseq by MJIT:
|
@@ -69,6 +70,8 @@ struct rb_mjit_compile_info {
|
|
69
70
|
bool disable_send_cache;
|
70
71
|
// Disable method inlining
|
71
72
|
bool disable_inlining;
|
73
|
+
// Disable opt_getinlinecache inlining
|
74
|
+
bool disable_const_cache;
|
72
75
|
};
|
73
76
|
|
74
77
|
typedef VALUE (*mjit_func_t)(rb_execution_context_t *, rb_control_frame_t *);
|
@@ -80,10 +83,13 @@ RUBY_EXTERN bool mjit_call_p;
|
|
80
83
|
extern void rb_mjit_add_iseq_to_process(const rb_iseq_t *iseq);
|
81
84
|
extern VALUE rb_mjit_wait_call(rb_execution_context_t *ec, struct rb_iseq_constant_body *body);
|
82
85
|
extern struct rb_mjit_compile_info* rb_mjit_iseq_compile_info(const struct rb_iseq_constant_body *body);
|
86
|
+
extern void rb_mjit_before_vm_ic_update(void);
|
87
|
+
extern void rb_mjit_after_vm_ic_update(void);
|
83
88
|
extern void rb_mjit_recompile_send(const rb_iseq_t *iseq);
|
84
89
|
extern void rb_mjit_recompile_ivar(const rb_iseq_t *iseq);
|
85
90
|
extern void rb_mjit_recompile_exivar(const rb_iseq_t *iseq);
|
86
91
|
extern void rb_mjit_recompile_inlining(const rb_iseq_t *iseq);
|
92
|
+
extern void rb_mjit_recompile_const(const rb_iseq_t *iseq);
|
87
93
|
RUBY_SYMBOL_EXPORT_END
|
88
94
|
|
89
95
|
extern bool mjit_compile(FILE *f, const rb_iseq_t *iseq, const char *funcname, int id);
|
@@ -112,11 +118,11 @@ mjit_target_iseq_p(struct rb_iseq_constant_body *body)
|
|
112
118
|
&& body->iseq_size < JIT_ISEQ_SIZE_THRESHOLD;
|
113
119
|
}
|
114
120
|
|
115
|
-
#ifdef MJIT_HEADER
|
121
|
+
# ifdef MJIT_HEADER
|
116
122
|
NOINLINE(static COLDFUNC VALUE mjit_exec_slowpath(rb_execution_context_t *ec, const rb_iseq_t *iseq, struct rb_iseq_constant_body *body));
|
117
|
-
#else
|
123
|
+
# else
|
118
124
|
static inline VALUE mjit_exec_slowpath(rb_execution_context_t *ec, const rb_iseq_t *iseq, struct rb_iseq_constant_body *body);
|
119
|
-
#endif
|
125
|
+
# endif
|
120
126
|
static VALUE
|
121
127
|
mjit_exec_slowpath(rb_execution_context_t *ec, const rb_iseq_t *iseq, struct rb_iseq_constant_body *body)
|
122
128
|
{
|
@@ -162,26 +168,38 @@ mjit_exec(rb_execution_context_t *ec)
|
|
162
168
|
|
163
169
|
mjit_func_t func = body->jit_func;
|
164
170
|
if (UNLIKELY((uintptr_t)func <= LAST_JIT_ISEQ_FUNC)) {
|
165
|
-
#
|
171
|
+
# ifdef MJIT_HEADER
|
166
172
|
RB_DEBUG_COUNTER_INC(mjit_frame_JT2VM);
|
167
|
-
#
|
173
|
+
# else
|
168
174
|
RB_DEBUG_COUNTER_INC(mjit_frame_VM2VM);
|
169
|
-
#
|
175
|
+
# endif
|
170
176
|
return mjit_exec_slowpath(ec, iseq, body);
|
171
177
|
}
|
172
178
|
|
173
|
-
#
|
179
|
+
# ifdef MJIT_HEADER
|
174
180
|
RB_DEBUG_COUNTER_INC(mjit_frame_JT2JT);
|
175
|
-
#
|
181
|
+
# else
|
176
182
|
RB_DEBUG_COUNTER_INC(mjit_frame_VM2JT);
|
177
|
-
#
|
183
|
+
# endif
|
178
184
|
RB_DEBUG_COUNTER_INC(mjit_exec_call_func);
|
179
185
|
return func(ec, ec->cfp);
|
180
186
|
}
|
181
187
|
|
182
188
|
void mjit_child_after_fork(void);
|
183
189
|
|
184
|
-
#
|
190
|
+
# ifdef MJIT_HEADER
|
191
|
+
#define mjit_enabled true
|
192
|
+
# else // MJIT_HEADER
|
193
|
+
extern bool mjit_enabled;
|
194
|
+
# endif // MJIT_HEADER
|
195
|
+
VALUE mjit_pause(bool wait_p);
|
196
|
+
VALUE mjit_resume(void);
|
197
|
+
void mjit_finish(bool close_handle_p);
|
198
|
+
|
199
|
+
# else // USE_MJIT
|
200
|
+
|
201
|
+
static inline void rb_mjit_before_vm_ic_update(void){}
|
202
|
+
static inline void rb_mjit_after_vm_ic_update(void){}
|
185
203
|
static inline struct mjit_cont *mjit_cont_new(rb_execution_context_t *ec){return NULL;}
|
186
204
|
static inline void mjit_cont_free(struct mjit_cont *cont){}
|
187
205
|
static inline void mjit_gc_start_hook(void){}
|
@@ -193,5 +211,10 @@ static inline void mjit_remove_class_serial(rb_serial_t class_serial){}
|
|
193
211
|
static inline VALUE mjit_exec(rb_execution_context_t *ec) { return Qundef; /* unreachable */ }
|
194
212
|
static inline void mjit_child_after_fork(void){}
|
195
213
|
|
196
|
-
#
|
214
|
+
#define mjit_enabled false
|
215
|
+
static inline VALUE mjit_pause(bool wait_p){ return Qnil; } // unreachable
|
216
|
+
static inline VALUE mjit_resume(void){ return Qnil; } // unreachable
|
217
|
+
static inline void mjit_finish(bool close_handle_p){}
|
218
|
+
|
219
|
+
# endif // USE_MJIT
|
197
220
|
#endif // RUBY_MJIT_H
|