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
data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/parse.h
RENAMED
|
@@ -22,47 +22,22 @@ struct rb_iseq_struct; /* in vm_core.h */
|
|
|
22
22
|
|
|
23
23
|
/* structs for managing terminator of string literal and heredocment */
|
|
24
24
|
typedef struct rb_strterm_literal_struct {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
union {
|
|
30
|
-
VALUE dummy;
|
|
31
|
-
long func; /* STR_FUNC_* (e.g., STR_FUNC_ESCAPE and STR_FUNC_EXPAND) */
|
|
32
|
-
} u1;
|
|
33
|
-
union {
|
|
34
|
-
VALUE dummy;
|
|
35
|
-
long paren; /* '(' of `%q(...)` */
|
|
36
|
-
} u2;
|
|
37
|
-
union {
|
|
38
|
-
VALUE dummy;
|
|
39
|
-
long term; /* ')' of `%q(...)` */
|
|
40
|
-
} u3;
|
|
25
|
+
long nest;
|
|
26
|
+
int func; /* STR_FUNC_* (e.g., STR_FUNC_ESCAPE and STR_FUNC_EXPAND) */
|
|
27
|
+
int paren; /* '(' of `%q(...)` */
|
|
28
|
+
int term; /* ')' of `%q(...)` */
|
|
41
29
|
} rb_strterm_literal_t;
|
|
42
30
|
|
|
43
|
-
#define HERETERM_LENGTH_BITS ((SIZEOF_VALUE - 1) * CHAR_BIT - 1)
|
|
44
|
-
|
|
45
31
|
typedef struct rb_strterm_heredoc_struct {
|
|
46
32
|
VALUE lastline; /* the string of line that contains `<<"END"` */
|
|
47
33
|
long offset; /* the column of END in `<<"END"` */
|
|
48
34
|
int sourceline; /* lineno of the line that contains `<<"END"` */
|
|
49
|
-
unsigned length /* the length of END in `<<"END"` */
|
|
50
|
-
#if HERETERM_LENGTH_BITS < SIZEOF_INT * CHAR_BIT
|
|
51
|
-
: HERETERM_LENGTH_BITS
|
|
52
|
-
# define HERETERM_LENGTH_MAX ((1U << HERETERM_LENGTH_BITS) - 1)
|
|
53
|
-
#else
|
|
54
|
-
# define HERETERM_LENGTH_MAX UINT_MAX
|
|
55
|
-
#endif
|
|
56
|
-
;
|
|
57
|
-
#if HERETERM_LENGTH_BITS < SIZEOF_INT * CHAR_BIT
|
|
58
|
-
unsigned quote: 1;
|
|
59
|
-
unsigned func: 8;
|
|
60
|
-
#else
|
|
35
|
+
unsigned length; /* the length of END in `<<"END"` */
|
|
61
36
|
uint8_t quote;
|
|
62
37
|
uint8_t func;
|
|
63
|
-
#endif
|
|
64
38
|
} rb_strterm_heredoc_t;
|
|
65
|
-
|
|
39
|
+
|
|
40
|
+
#define HERETERM_LENGTH_MAX UINT_MAX
|
|
66
41
|
|
|
67
42
|
typedef struct rb_strterm_struct {
|
|
68
43
|
VALUE flags;
|
data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/thread.h
RENAMED
|
@@ -50,6 +50,7 @@ void rb_mutex_allow_trap(VALUE self, int val);
|
|
|
50
50
|
VALUE rb_uninterruptible(VALUE (*b_proc)(VALUE), VALUE data);
|
|
51
51
|
VALUE rb_mutex_owned_p(VALUE self);
|
|
52
52
|
VALUE rb_exec_recursive_outer_mid(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE h, ID mid);
|
|
53
|
+
void ruby_mn_threads_params(void);
|
|
53
54
|
|
|
54
55
|
int rb_thread_wait_for_single_fd(int fd, int events, struct timeval * timeout);
|
|
55
56
|
|
data/lib/debase/ruby_core_source/{ruby-3.3.0-preview2 → ruby-3.3.0-preview3}/internal/variable.h
RENAMED
|
@@ -48,6 +48,7 @@ VALUE rb_mod_set_temporary_name(VALUE, VALUE);
|
|
|
48
48
|
struct gen_ivtbl;
|
|
49
49
|
int rb_gen_ivtbl_get(VALUE obj, ID id, struct gen_ivtbl **ivtbl);
|
|
50
50
|
int rb_obj_evacuate_ivs_to_hash_table(ID key, VALUE val, st_data_t arg);
|
|
51
|
+
void rb_evict_ivars_to_hash(VALUE obj, rb_shape_t * shape);
|
|
51
52
|
|
|
52
53
|
RUBY_SYMBOL_EXPORT_BEGIN
|
|
53
54
|
/* variable.c (export) */
|
|
@@ -63,9 +64,7 @@ VALUE rb_gvar_get(ID);
|
|
|
63
64
|
VALUE rb_gvar_set(ID, VALUE);
|
|
64
65
|
VALUE rb_gvar_defined(ID);
|
|
65
66
|
void rb_const_warn_if_deprecated(const rb_const_entry_t *, VALUE, ID);
|
|
66
|
-
rb_shape_t * rb_grow_iv_list(VALUE obj);
|
|
67
67
|
void rb_ensure_iv_list_size(VALUE obj, uint32_t len, uint32_t newsize);
|
|
68
|
-
struct gen_ivtbl *rb_ensure_generic_iv_list_size(VALUE obj, rb_shape_t *shape, uint32_t newsize);
|
|
69
68
|
attr_index_t rb_obj_ivar_set(VALUE obj, ID id, VALUE val);
|
|
70
69
|
|
|
71
70
|
#endif /* INTERNAL_VARIABLE_H */
|
|
@@ -58,6 +58,8 @@ VALUE rb_yield_refine_block(VALUE refinement, VALUE refinements);
|
|
|
58
58
|
VALUE ruby_vm_special_exception_copy(VALUE);
|
|
59
59
|
PUREFUNC(st_table *rb_vm_fstring_table(void));
|
|
60
60
|
|
|
61
|
+
void rb_lastline_set_up(VALUE val, unsigned int up);
|
|
62
|
+
|
|
61
63
|
/* vm_eval.c */
|
|
62
64
|
VALUE rb_current_realfilepath(void);
|
|
63
65
|
VALUE rb_check_block_call(VALUE, ID, int, const VALUE *, rb_block_call_func_t, VALUE);
|
|
@@ -95,7 +97,7 @@ int rb_ec_obj_respond_to(struct rb_execution_context_struct *ec, VALUE obj, ID i
|
|
|
95
97
|
void rb_clear_constant_cache(void);
|
|
96
98
|
|
|
97
99
|
/* vm_dump.c */
|
|
98
|
-
void rb_print_backtrace(
|
|
100
|
+
void rb_print_backtrace(FILE *);
|
|
99
101
|
|
|
100
102
|
/* vm_backtrace.c */
|
|
101
103
|
VALUE rb_vm_thread_backtrace(int argc, const VALUE *argv, VALUE thval);
|
|
@@ -103,7 +105,7 @@ VALUE rb_vm_thread_backtrace_locations(int argc, const VALUE *argv, VALUE thval)
|
|
|
103
105
|
VALUE rb_vm_backtrace(int argc, const VALUE * argv, struct rb_execution_context_struct * ec);
|
|
104
106
|
VALUE rb_vm_backtrace_locations(int argc, const VALUE * argv, struct rb_execution_context_struct * ec);
|
|
105
107
|
VALUE rb_make_backtrace(void);
|
|
106
|
-
void rb_backtrace_print_as_bugreport(
|
|
108
|
+
void rb_backtrace_print_as_bugreport(FILE*);
|
|
107
109
|
int rb_backtrace_p(VALUE obj);
|
|
108
110
|
VALUE rb_backtrace_to_str_ary(VALUE obj);
|
|
109
111
|
VALUE rb_backtrace_to_location_ary(VALUE obj);
|
|
@@ -101,8 +101,9 @@ static inline void
|
|
|
101
101
|
METHOD_ENTRY_FLAGS_COPY(rb_method_entry_t *dst, const rb_method_entry_t *src)
|
|
102
102
|
{
|
|
103
103
|
dst->flags =
|
|
104
|
-
(dst->flags & ~(IMEMO_FL_USER0|IMEMO_FL_USER1|IMEMO_FL_USER2
|
|
105
|
-
|
|
104
|
+
(dst->flags & ~(IMEMO_FL_USER0|IMEMO_FL_USER1|IMEMO_FL_USER2
|
|
105
|
+
|IMEMO_FL_USER3)) |
|
|
106
|
+
(src->flags & (IMEMO_FL_USER0|IMEMO_FL_USER1|IMEMO_FL_USER2|IMEMO_FL_USER3));
|
|
106
107
|
}
|
|
107
108
|
|
|
108
109
|
typedef enum {
|
|
@@ -178,9 +179,9 @@ typedef struct rb_method_optimized {
|
|
|
178
179
|
struct rb_method_definition_struct {
|
|
179
180
|
BITFIELD(rb_method_type_t, type, VM_METHOD_TYPE_MINIMUM_BITS);
|
|
180
181
|
unsigned int iseq_overload: 1;
|
|
181
|
-
int alias_count : 27;
|
|
182
|
-
int complemented_count : 28;
|
|
183
182
|
unsigned int no_redef_warning: 1;
|
|
183
|
+
unsigned int aliased : 1;
|
|
184
|
+
int reference_count : 28;
|
|
184
185
|
|
|
185
186
|
union {
|
|
186
187
|
rb_method_iseq_t iseq;
|
|
@@ -199,7 +200,7 @@ struct rb_method_definition_struct {
|
|
|
199
200
|
struct rb_id_table;
|
|
200
201
|
|
|
201
202
|
typedef struct rb_method_definition_struct rb_method_definition_t;
|
|
202
|
-
STATIC_ASSERT(sizeof_method_def, offsetof(rb_method_definition_t, body)
|
|
203
|
+
STATIC_ASSERT(sizeof_method_def, offsetof(rb_method_definition_t, body) <= 8);
|
|
203
204
|
|
|
204
205
|
#define UNDEFINED_METHOD_ENTRY_P(me) (!(me) || !(me)->def || (me)->def->type == VM_METHOD_TYPE_UNDEF)
|
|
205
206
|
#define UNDEFINED_REFINED_METHOD_P(def) \
|
|
@@ -213,7 +214,7 @@ void rb_add_method_optimized(VALUE klass, ID mid, enum method_optimized_type, un
|
|
|
213
214
|
void rb_add_refined_method_entry(VALUE refined_class, ID mid);
|
|
214
215
|
|
|
215
216
|
rb_method_entry_t *rb_method_entry_set(VALUE klass, ID mid, const rb_method_entry_t *, rb_method_visibility_t noex);
|
|
216
|
-
rb_method_entry_t *rb_method_entry_create(ID called_id, VALUE klass, rb_method_visibility_t visi,
|
|
217
|
+
rb_method_entry_t *rb_method_entry_create(ID called_id, VALUE klass, rb_method_visibility_t visi, rb_method_definition_t *def);
|
|
217
218
|
|
|
218
219
|
const rb_method_entry_t *rb_method_entry_at(VALUE obj, ID id);
|
|
219
220
|
|
|
@@ -19,12 +19,14 @@ typedef void (*bug_report_func)(const char *fmt, ...);
|
|
|
19
19
|
|
|
20
20
|
typedef struct node_buffer_elem_struct {
|
|
21
21
|
struct node_buffer_elem_struct *next;
|
|
22
|
-
long len;
|
|
23
|
-
|
|
22
|
+
long len; /* Length of nodes */
|
|
23
|
+
size_t allocated; /* Total memory size of allocated buf */
|
|
24
|
+
size_t used; /* Current usage of buf */
|
|
25
|
+
NODE **nodes; /* Array of node pointers */
|
|
26
|
+
NODE *buf[FLEX_ARY_LEN];
|
|
24
27
|
} node_buffer_elem_t;
|
|
25
28
|
|
|
26
29
|
typedef struct {
|
|
27
|
-
long idx, len;
|
|
28
30
|
node_buffer_elem_t *head;
|
|
29
31
|
node_buffer_elem_t *last;
|
|
30
32
|
} node_buffer_list_t;
|
|
@@ -50,7 +52,7 @@ RUBY_SYMBOL_EXPORT_BEGIN
|
|
|
50
52
|
#ifdef UNIVERSAL_PARSER
|
|
51
53
|
rb_ast_t *rb_ast_new(rb_parser_config_t *config);
|
|
52
54
|
#else
|
|
53
|
-
rb_ast_t *rb_ast_new();
|
|
55
|
+
rb_ast_t *rb_ast_new(void);
|
|
54
56
|
#endif
|
|
55
57
|
size_t rb_ast_memsize(const rb_ast_t*);
|
|
56
58
|
void rb_ast_dispose(rb_ast_t*);
|
|
@@ -59,14 +61,15 @@ VALUE rb_ast_tokens(rb_ast_t *ast);
|
|
|
59
61
|
void rb_ast_node_type_change(NODE *n, enum node_type type);
|
|
60
62
|
#endif
|
|
61
63
|
const char *ruby_node_name(int node);
|
|
62
|
-
void rb_node_init(NODE *n, enum node_type type
|
|
64
|
+
void rb_node_init(NODE *n, enum node_type type);
|
|
63
65
|
|
|
64
66
|
void rb_ast_mark(rb_ast_t*);
|
|
65
67
|
void rb_ast_update_references(rb_ast_t*);
|
|
66
68
|
void rb_ast_free(rb_ast_t*);
|
|
67
69
|
void rb_ast_add_mark_object(rb_ast_t*, VALUE);
|
|
70
|
+
void rb_ast_delete_mark_object(rb_ast_t*, VALUE);
|
|
68
71
|
void rb_ast_set_tokens(rb_ast_t*, VALUE);
|
|
69
|
-
NODE *rb_ast_newnode(rb_ast_t*, enum node_type type);
|
|
72
|
+
NODE *rb_ast_newnode(rb_ast_t*, enum node_type type, size_t size, size_t alignment);
|
|
70
73
|
void rb_ast_delete_node(rb_ast_t*, NODE *n);
|
|
71
74
|
rb_ast_id_table_t *rb_ast_new_local_table(rb_ast_t*, int);
|
|
72
75
|
rb_ast_id_table_t *rb_ast_resize_latest_local_table(rb_ast_t*, int);
|
|
@@ -94,27 +97,27 @@ RUBY_SYMBOL_EXPORT_END
|
|
|
94
97
|
|
|
95
98
|
|
|
96
99
|
#define NODE_SPECIAL_REQUIRED_KEYWORD ((NODE *)-1)
|
|
97
|
-
#define NODE_REQUIRED_KEYWORD_P(node) ((node)
|
|
100
|
+
#define NODE_REQUIRED_KEYWORD_P(node) ((node) == NODE_SPECIAL_REQUIRED_KEYWORD)
|
|
98
101
|
#define NODE_SPECIAL_NO_NAME_REST ((NODE *)-1)
|
|
99
102
|
#define NODE_NAMED_REST_P(node) ((node) != NODE_SPECIAL_NO_NAME_REST)
|
|
100
103
|
#define NODE_SPECIAL_EXCESSIVE_COMMA ((ID)1)
|
|
101
104
|
#define NODE_SPECIAL_NO_REST_KEYWORD ((NODE *)-1)
|
|
102
105
|
|
|
103
|
-
#define nd_first_column(n) ((int)((n)->nd_loc.beg_pos.column))
|
|
104
|
-
#define nd_set_first_column(n, v) ((n)->nd_loc.beg_pos.column = (v))
|
|
105
|
-
#define nd_first_lineno(n) ((int)((n)->nd_loc.beg_pos.lineno))
|
|
106
|
-
#define nd_set_first_lineno(n, v) ((n)->nd_loc.beg_pos.lineno = (v))
|
|
107
|
-
#define nd_first_loc(n) ((n)->nd_loc.beg_pos)
|
|
106
|
+
#define nd_first_column(n) ((int)(RNODE(n)->nd_loc.beg_pos.column))
|
|
107
|
+
#define nd_set_first_column(n, v) (RNODE(n)->nd_loc.beg_pos.column = (v))
|
|
108
|
+
#define nd_first_lineno(n) ((int)(RNODE(n)->nd_loc.beg_pos.lineno))
|
|
109
|
+
#define nd_set_first_lineno(n, v) (RNODE(n)->nd_loc.beg_pos.lineno = (v))
|
|
110
|
+
#define nd_first_loc(n) (RNODE(n)->nd_loc.beg_pos)
|
|
108
111
|
#define nd_set_first_loc(n, v) (nd_first_loc(n) = (v))
|
|
109
112
|
|
|
110
|
-
#define nd_last_column(n) ((int)((n)->nd_loc.end_pos.column))
|
|
111
|
-
#define nd_set_last_column(n, v) ((n)->nd_loc.end_pos.column = (v))
|
|
112
|
-
#define nd_last_lineno(n) ((int)((n)->nd_loc.end_pos.lineno))
|
|
113
|
-
#define nd_set_last_lineno(n, v) ((n)->nd_loc.end_pos.lineno = (v))
|
|
114
|
-
#define nd_last_loc(n) ((n)->nd_loc.end_pos)
|
|
113
|
+
#define nd_last_column(n) ((int)(RNODE(n)->nd_loc.end_pos.column))
|
|
114
|
+
#define nd_set_last_column(n, v) (RNODE(n)->nd_loc.end_pos.column = (v))
|
|
115
|
+
#define nd_last_lineno(n) ((int)(RNODE(n)->nd_loc.end_pos.lineno))
|
|
116
|
+
#define nd_set_last_lineno(n, v) (RNODE(n)->nd_loc.end_pos.lineno = (v))
|
|
117
|
+
#define nd_last_loc(n) (RNODE(n)->nd_loc.end_pos)
|
|
115
118
|
#define nd_set_last_loc(n, v) (nd_last_loc(n) = (v))
|
|
116
|
-
#define nd_node_id(n) ((n)->node_id)
|
|
117
|
-
#define nd_set_node_id(n,id) ((n)->node_id = (id))
|
|
119
|
+
#define nd_node_id(n) (RNODE(n)->node_id)
|
|
120
|
+
#define nd_set_node_id(n,id) (RNODE(n)->node_id = (id))
|
|
118
121
|
|
|
119
122
|
static inline bool
|
|
120
123
|
nd_type_p(const NODE *n, enum node_type t)
|
|
@@ -88,8 +88,6 @@
|
|
|
88
88
|
return "NODE_LIST";
|
|
89
89
|
case NODE_ZLIST:
|
|
90
90
|
return "NODE_ZLIST";
|
|
91
|
-
case NODE_VALUES:
|
|
92
|
-
return "NODE_VALUES";
|
|
93
91
|
case NODE_HASH:
|
|
94
92
|
return "NODE_HASH";
|
|
95
93
|
case NODE_RETURN:
|
|
@@ -208,3 +206,7 @@
|
|
|
208
206
|
return "NODE_FNDPTN";
|
|
209
207
|
case NODE_ERROR:
|
|
210
208
|
return "NODE_ERROR";
|
|
209
|
+
case NODE_RIPPER:
|
|
210
|
+
return "NODE_RIPPER";
|
|
211
|
+
case NODE_RIPPER_VALUES:
|
|
212
|
+
return "NODE_RIPPER_VALUES";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* A Bison parser, made by Lrama 0.5.
|
|
1
|
+
/* A Bison parser, made by Lrama 0.5.9. */
|
|
2
2
|
|
|
3
3
|
/* Bison interface for Yacc-like parsers in C
|
|
4
4
|
|
|
@@ -34,17 +34,17 @@
|
|
|
34
34
|
/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
|
|
35
35
|
especially those whose name start with YY_ or yy_. They are
|
|
36
36
|
private implementation details that can be changed or removed. */
|
|
37
|
-
|
|
38
37
|
#ifndef YY_YY_PARSE_H_INCLUDED
|
|
39
38
|
# define YY_YY_PARSE_H_INCLUDED
|
|
40
39
|
/* Debug traces. */
|
|
41
40
|
#ifndef YYDEBUG
|
|
42
41
|
# define YYDEBUG 0
|
|
43
42
|
#endif
|
|
44
|
-
#if YYDEBUG
|
|
43
|
+
#if YYDEBUG && !defined(yydebug)
|
|
45
44
|
extern int yydebug;
|
|
46
45
|
#endif
|
|
47
46
|
|
|
47
|
+
|
|
48
48
|
/* Token kinds. */
|
|
49
49
|
#ifndef YYTOKENTYPE
|
|
50
50
|
# define YYTOKENTYPE
|
|
@@ -190,10 +190,19 @@ extern int yydebug;
|
|
|
190
190
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
|
191
191
|
union YYSTYPE
|
|
192
192
|
{
|
|
193
|
-
#line
|
|
193
|
+
#line 1947 "parse.y"
|
|
194
194
|
|
|
195
195
|
VALUE val;
|
|
196
196
|
NODE *node;
|
|
197
|
+
rb_node_fcall_t *node_fcall;
|
|
198
|
+
rb_node_args_t *node_args;
|
|
199
|
+
rb_node_args_aux_t *node_args_aux;
|
|
200
|
+
rb_node_opt_arg_t *node_opt_arg;
|
|
201
|
+
rb_node_kw_arg_t *node_kw_arg;
|
|
202
|
+
rb_node_block_pass_t *node_block_pass;
|
|
203
|
+
rb_node_masgn_t *node_masgn;
|
|
204
|
+
rb_node_def_temp_t *node_def_temp;
|
|
205
|
+
rb_node_exits_t *node_exits;
|
|
197
206
|
ID id;
|
|
198
207
|
int num;
|
|
199
208
|
st_table *tbl;
|
|
@@ -201,7 +210,7 @@ union YYSTYPE
|
|
|
201
210
|
struct rb_strterm_struct *strterm;
|
|
202
211
|
struct lex_context ctxt;
|
|
203
212
|
|
|
204
|
-
#line
|
|
213
|
+
#line 214 "parse.h"
|
|
205
214
|
|
|
206
215
|
};
|
|
207
216
|
typedef union YYSTYPE YYSTYPE;
|
|
@@ -229,4 +238,6 @@ struct YYLTYPE
|
|
|
229
238
|
int yyparse (struct parser_params *p);
|
|
230
239
|
|
|
231
240
|
|
|
241
|
+
|
|
232
242
|
#endif /* !YY_YY_PARSE_H_INCLUDED */
|
|
243
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
#if defined(__cplusplus)
|
|
26
|
+
#if 0
|
|
27
|
+
{ /* satisfy cc-mode */
|
|
28
|
+
#endif
|
|
29
|
+
} /* extern "C" { */
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
#endif /* RUBY_PARSER_NODE_H */
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#include "prism/prism.h"
|
|
2
|
+
|
|
3
|
+
// ScopeNodes are helper nodes, and will never be part of the AST. We manually
|
|
4
|
+
// declare them here to avoid generating them.
|
|
5
|
+
typedef struct pm_scope_node {
|
|
6
|
+
pm_node_t base;
|
|
7
|
+
struct pm_scope_node *previous;
|
|
8
|
+
pm_node_t *ast_node;
|
|
9
|
+
struct pm_parameters_node *parameters;
|
|
10
|
+
pm_node_t *body;
|
|
11
|
+
pm_constant_id_list_t locals;
|
|
12
|
+
pm_parser_t *parser;
|
|
13
|
+
|
|
14
|
+
ID *constants;
|
|
15
|
+
st_table *index_lookup_table;
|
|
16
|
+
} pm_scope_node_t;
|
|
17
|
+
|
|
18
|
+
void pm_scope_node_init(const pm_node_t *node, pm_scope_node_t *scope, pm_scope_node_t *previous, pm_parser_t *parser);
|
|
@@ -103,7 +103,6 @@ struct rb_ractor_sync {
|
|
|
103
103
|
#if RACTOR_CHECK_MODE > 0
|
|
104
104
|
VALUE locked_by;
|
|
105
105
|
#endif
|
|
106
|
-
rb_nativethread_cond_t cond;
|
|
107
106
|
|
|
108
107
|
bool incoming_port_closed;
|
|
109
108
|
bool outgoing_port_closed;
|
|
@@ -120,7 +119,12 @@ struct rb_ractor_sync {
|
|
|
120
119
|
struct ractor_wait {
|
|
121
120
|
enum rb_ractor_wait_status status;
|
|
122
121
|
enum rb_ractor_wakeup_status wakeup_status;
|
|
122
|
+
rb_thread_t *waiting_thread;
|
|
123
123
|
} wait;
|
|
124
|
+
|
|
125
|
+
#ifndef RUBY_THREAD_PTHREAD_H
|
|
126
|
+
rb_nativethread_cond_t cond;
|
|
127
|
+
#endif
|
|
124
128
|
};
|
|
125
129
|
|
|
126
130
|
// created
|
|
@@ -310,11 +314,13 @@ static inline void
|
|
|
310
314
|
rb_ractor_set_current_ec_(rb_ractor_t *cr, rb_execution_context_t *ec, const char *file, int line)
|
|
311
315
|
{
|
|
312
316
|
#ifdef RB_THREAD_LOCAL_SPECIFIER
|
|
317
|
+
|
|
313
318
|
# ifdef __APPLE__
|
|
314
319
|
rb_current_ec_set(ec);
|
|
315
320
|
# else
|
|
316
321
|
ruby_current_ec = ec;
|
|
317
322
|
# endif
|
|
323
|
+
|
|
318
324
|
#else
|
|
319
325
|
native_tls_set(ruby_current_ec_key, ec);
|
|
320
326
|
#endif
|
|
@@ -873,6 +873,12 @@ typedef struct _OnigStackType {
|
|
|
873
873
|
UChar *abs_pstr; /* absent start position */
|
|
874
874
|
const UChar *end_pstr; /* end position */
|
|
875
875
|
} absent_pos;
|
|
876
|
+
#ifdef USE_MATCH_CACHE
|
|
877
|
+
struct {
|
|
878
|
+
long index; /* index of the match cache buffer */
|
|
879
|
+
uint8_t mask; /* bit-mask for the match cache buffer */
|
|
880
|
+
} match_cache_point;
|
|
881
|
+
#endif
|
|
876
882
|
} u;
|
|
877
883
|
} OnigStackType;
|
|
878
884
|
|
|
@@ -883,6 +889,8 @@ typedef struct {
|
|
|
883
889
|
int outer_repeat_mem;
|
|
884
890
|
long num_cache_points_at_outer_repeat;
|
|
885
891
|
long num_cache_points_in_outer_repeat;
|
|
892
|
+
int lookaround_nesting;
|
|
893
|
+
UChar *match_addr;
|
|
886
894
|
} OnigCacheOpcode;
|
|
887
895
|
#endif
|
|
888
896
|
|
|
@@ -339,7 +339,7 @@ typedef struct {
|
|
|
339
339
|
extern int onig_renumber_name_table(regex_t* reg, GroupNumRemap* map);
|
|
340
340
|
#endif
|
|
341
341
|
|
|
342
|
-
extern int onig_strncmp(const UChar* s1, const UChar* s2,
|
|
342
|
+
extern int onig_strncmp(const UChar* s1, const UChar* s2, size_t n);
|
|
343
343
|
extern void onig_strcpy(UChar* dest, const UChar* src, const UChar* end);
|
|
344
344
|
extern void onig_scan_env_set_error_string(ScanEnv* env, int ecode, UChar* arg, UChar* arg_end);
|
|
345
345
|
extern int onig_scan_unsigned_number(UChar** src, const UChar* end, OnigEncoding enc);
|
|
@@ -356,6 +356,7 @@ extern Node* onig_node_list_add(Node* list, Node* x);
|
|
|
356
356
|
extern Node* onig_node_new_alt(Node* left, Node* right);
|
|
357
357
|
extern void onig_node_str_clear(Node* node);
|
|
358
358
|
extern int onig_names_free(regex_t* reg);
|
|
359
|
+
extern int onig_names_copy(regex_t* reg, regex_t* oreg);
|
|
359
360
|
extern int onig_parse_make_tree(Node** root, const UChar* pattern, const UChar* end, regex_t* reg, ScanEnv* env);
|
|
360
361
|
extern int onig_free_shared_cclass_table(void);
|
|
361
362
|
|