debase-ruby_core_source 3.2.3 → 3.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/Rakefile +2 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ccan/list/list.h +4 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/dln.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/eval_intern.h +4 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/insns.inc +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/insns_info.inc +269 -187
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/class.h +46 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/cont.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/encoding.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/error.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/gc.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/object.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/random.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/string.h +0 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/symbol.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/thread.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/transcode.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/variable.h +5 -3
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/vm.h +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/iseq.h +5 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/method.h +0 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/optunifs.inc +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/parse.h +2 -2
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/ast.h +4612 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/defines.h +94 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/diagnostic.h +297 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/encoding.h +248 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/extension.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/node.h +57 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/options.h +204 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/pack.h +152 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/parser.h +716 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/prettyprint.h +26 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/prism.h +272 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/regexp.h +33 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_buffer.h +146 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_char.h +205 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_constant_pool.h +191 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_list.h +97 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_memchr.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_newline_list.h +104 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_state_stack.h +42 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_string.h +150 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_string_list.h +44 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_strncasecmp.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/util/pm_strpbrk.h +43 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/prism/version.h +29 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/prism_compile.h +12 -1
- data/lib/debase/ruby_core_source/ruby-3.3.0-p0/revision.h +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/rjit.h +6 -8
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/rjit_c.h +0 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/rubyparser.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/shape.h +2 -12
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/thread_pthread.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/variable.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/version.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm.inc +189 -136
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_callinfo.h +8 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_core.h +64 -5
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_insnhelper.h +4 -14
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vmtc.inc +2 -0
- data/lib/debase/ruby_core_source/version.rb +1 -1
- metadata +148 -124
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview3/revision.h +0 -5
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/addr2line.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/builtin.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ccan/build_assert/build_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ccan/check_type/check_type.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ccan/container_of/container_of.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ccan/str/str.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/constant.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/darray.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/debug_counter.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/encindex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/hrtime.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/id.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/id_table.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/array.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/basic_operators.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/bignum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/bits.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/cmdlineopt.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/compar.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/compile.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/compilers.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/complex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/dir.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/enc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/enum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/enumerator.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/eval.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/file.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/fixnum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/hash.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/imemo.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/inits.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/io.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/load.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/loadpath.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/math.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/missing.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/numeric.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/parse.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/proc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/process.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/ractor.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/range.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/rational.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/re.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/ruby_parser.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/sanitizers.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/serial.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/signal.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/static_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/struct.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/time.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/util.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal/warnings.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/internal.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/known_errors.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/node.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/node_name.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/optinsn.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/parser_bits.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/parser_node.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/parser_st.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/parser_value.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/probes_helper.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ractor_core.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/regenc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/regint.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/regparse.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ruby_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/ruby_atomic.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/siphash.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/symbol.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/thread_none.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/thread_win32.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/timev.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/transcode_data.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_call_iseq_optimized.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_debug.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_exec.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_opts.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/vm_sync.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview3 → ruby-3.3.0-p0}/yjit.h +0 -0
@@ -19,6 +19,7 @@
|
|
19
19
|
#include "shape.h"
|
20
20
|
#include "ruby_assert.h"
|
21
21
|
#include "vm_core.h"
|
22
|
+
#include "vm_sync.h"
|
22
23
|
#include "method.h" /* for rb_cref_t */
|
23
24
|
|
24
25
|
#ifdef RCLASS_SUPER
|
@@ -111,6 +112,51 @@ struct RClass_and_rb_classext_t {
|
|
111
112
|
#define RCLASS_SUPERCLASSES_INCLUDE_SELF FL_USER2
|
112
113
|
#define RICLASS_ORIGIN_SHARED_MTBL FL_USER3
|
113
114
|
|
115
|
+
static inline st_table *
|
116
|
+
RCLASS_IV_HASH(VALUE obj)
|
117
|
+
{
|
118
|
+
RUBY_ASSERT(RB_TYPE_P(obj, RUBY_T_CLASS) || RB_TYPE_P(obj, RUBY_T_MODULE));
|
119
|
+
RUBY_ASSERT(rb_shape_obj_too_complex(obj));
|
120
|
+
return (st_table *)RCLASS_IVPTR(obj);
|
121
|
+
}
|
122
|
+
|
123
|
+
static inline void
|
124
|
+
RCLASS_SET_IV_HASH(VALUE obj, const st_table *tbl)
|
125
|
+
{
|
126
|
+
RUBY_ASSERT(RB_TYPE_P(obj, RUBY_T_CLASS) || RB_TYPE_P(obj, RUBY_T_MODULE));
|
127
|
+
RUBY_ASSERT(rb_shape_obj_too_complex(obj));
|
128
|
+
RCLASS_IVPTR(obj) = (VALUE *)tbl;
|
129
|
+
}
|
130
|
+
|
131
|
+
static inline uint32_t
|
132
|
+
RCLASS_IV_COUNT(VALUE obj)
|
133
|
+
{
|
134
|
+
RUBY_ASSERT(RB_TYPE_P(obj, RUBY_T_CLASS) || RB_TYPE_P(obj, RUBY_T_MODULE));
|
135
|
+
if (rb_shape_obj_too_complex(obj)) {
|
136
|
+
uint32_t count;
|
137
|
+
|
138
|
+
// "Too complex" classes could have their IV hash mutated in
|
139
|
+
// parallel, so lets lock around getting the hash size.
|
140
|
+
RB_VM_LOCK_ENTER();
|
141
|
+
{
|
142
|
+
count = (uint32_t)rb_st_table_size(RCLASS_IV_HASH(obj));
|
143
|
+
}
|
144
|
+
RB_VM_LOCK_LEAVE();
|
145
|
+
|
146
|
+
return count;
|
147
|
+
}
|
148
|
+
else {
|
149
|
+
return rb_shape_get_shape_by_id(RCLASS_SHAPE_ID(obj))->next_iv_index;
|
150
|
+
}
|
151
|
+
}
|
152
|
+
|
153
|
+
static inline void
|
154
|
+
RCLASS_SET_M_TBL(VALUE klass, struct rb_id_table *table)
|
155
|
+
{
|
156
|
+
RUBY_ASSERT(!RB_OBJ_PROMOTED(klass));
|
157
|
+
RCLASS_M_TBL(klass) = table;
|
158
|
+
}
|
159
|
+
|
114
160
|
/* class.c */
|
115
161
|
void rb_class_subclass_add(VALUE super, VALUE klass);
|
116
162
|
void rb_class_remove_from_super_subclasses(VALUE);
|
@@ -22,6 +22,9 @@ void rb_jit_cont_init(void);
|
|
22
22
|
void rb_jit_cont_each_iseq(rb_iseq_callback callback, void *data);
|
23
23
|
void rb_jit_cont_finish(void);
|
24
24
|
|
25
|
+
/* vm.c */
|
26
|
+
void rb_free_shared_fiber_pool(void);
|
27
|
+
|
25
28
|
// Copy locals from the current execution to the specified fiber.
|
26
29
|
VALUE rb_fiber_inherit_storage(struct rb_execution_context_struct *ec, struct rb_fiber_struct *fiber);
|
27
30
|
|
@@ -250,6 +250,8 @@ void rb_gc_mark_and_move(VALUE *ptr);
|
|
250
250
|
void rb_gc_mark_weak(VALUE *ptr);
|
251
251
|
void rb_gc_remove_weak(VALUE parent_obj, VALUE *ptr);
|
252
252
|
|
253
|
+
void rb_gc_ref_update_table_values_only(st_table *tbl);
|
254
|
+
|
253
255
|
#define rb_gc_mark_and_move_ptr(ptr) do { \
|
254
256
|
VALUE _obj = (VALUE)*(ptr); \
|
255
257
|
rb_gc_mark_and_move(&_obj); \
|
@@ -64,7 +64,6 @@ VALUE rb_str_upto_endless_each(VALUE, int (*each)(VALUE, VALUE), VALUE);
|
|
64
64
|
void rb_str_make_embedded(VALUE);
|
65
65
|
size_t rb_str_size_as_embedded(VALUE);
|
66
66
|
bool rb_str_reembeddable_p(VALUE);
|
67
|
-
void rb_str_update_shared_ary(VALUE str, VALUE old_root, VALUE new_root);
|
68
67
|
RUBY_SYMBOL_EXPORT_END
|
69
68
|
|
70
69
|
VALUE rb_fstring_new(const char *ptr, long len);
|
@@ -32,6 +32,9 @@ ID rb_make_temporary_id(size_t n);
|
|
32
32
|
void rb_gc_free_dsymbol(VALUE);
|
33
33
|
int rb_static_id_valid_p(ID id);
|
34
34
|
|
35
|
+
/* vm.c */
|
36
|
+
void rb_free_static_symid_str(void);
|
37
|
+
|
35
38
|
#if __has_builtin(__builtin_constant_p)
|
36
39
|
#define rb_sym_intern_ascii_cstr(ptr) \
|
37
40
|
(__builtin_constant_p(ptr) ? \
|
@@ -63,11 +63,14 @@ int rb_notify_fd_close(int fd, struct rb_io_close_wait_list *busy);
|
|
63
63
|
void rb_notify_fd_close_wait(struct rb_io_close_wait_list *busy);
|
64
64
|
|
65
65
|
RUBY_SYMBOL_EXPORT_BEGIN
|
66
|
+
|
66
67
|
/* Temporary. This API will be removed (renamed). */
|
67
68
|
VALUE rb_thread_io_blocking_region(rb_blocking_function_t *func, void *data1, int fd);
|
69
|
+
VALUE rb_thread_io_blocking_call(rb_blocking_function_t *func, void *data1, int fd, int events);
|
68
70
|
|
69
71
|
/* thread.c (export) */
|
70
72
|
int ruby_thread_has_gvl_p(void); /* for ext/fiddle/closure.c */
|
73
|
+
|
71
74
|
RUBY_SYMBOL_EXPORT_END
|
72
75
|
|
73
76
|
int rb_threadptr_execute_interrupts(struct rb_thread_struct *th, int blocking_timing);
|
@@ -47,12 +47,14 @@ VALUE rb_mod_set_temporary_name(VALUE, VALUE);
|
|
47
47
|
|
48
48
|
struct gen_ivtbl;
|
49
49
|
int rb_gen_ivtbl_get(VALUE obj, ID id, struct gen_ivtbl **ivtbl);
|
50
|
-
|
51
|
-
void
|
50
|
+
void rb_obj_copy_ivs_to_hash_table(VALUE obj, st_table *table);
|
51
|
+
void rb_obj_convert_to_too_complex(VALUE obj, st_table *table);
|
52
|
+
void rb_evict_ivars_to_hash(VALUE obj);
|
52
53
|
|
53
54
|
RUBY_SYMBOL_EXPORT_BEGIN
|
54
55
|
/* variable.c (export) */
|
55
|
-
void
|
56
|
+
void rb_mark_generic_ivar(VALUE obj);
|
57
|
+
void rb_ref_update_generic_ivar(VALUE);
|
56
58
|
void rb_mv_generic_ivar(VALUE src, VALUE dst);
|
57
59
|
VALUE rb_const_missing(VALUE klass, VALUE name);
|
58
60
|
int rb_class_ivar_set(VALUE klass, ID vid, VALUE value);
|
@@ -83,6 +83,11 @@ void rb_check_stack_overflow(void);
|
|
83
83
|
extern uint64_t rb_vm_insns_count;
|
84
84
|
#endif
|
85
85
|
|
86
|
+
extern bool rb_free_at_exit;
|
87
|
+
|
88
|
+
/* miniinit.c and builtin.c */
|
89
|
+
void rb_free_loaded_builtin_table(void);
|
90
|
+
|
86
91
|
/* vm_insnhelper.c */
|
87
92
|
VALUE rb_equal_opt(VALUE obj1, VALUE obj2);
|
88
93
|
VALUE rb_eql_opt(VALUE obj1, VALUE obj2);
|
@@ -13,6 +13,7 @@
|
|
13
13
|
#include "internal/gc.h"
|
14
14
|
#include "shape.h"
|
15
15
|
#include "vm_core.h"
|
16
|
+
#include "prism_compile.h"
|
16
17
|
|
17
18
|
RUBY_EXTERN const int ruby_api_version[];
|
18
19
|
#define ISEQ_MAJOR_VERSION ((unsigned int)ruby_api_version[0])
|
@@ -173,6 +174,7 @@ void rb_iseq_init_trace(rb_iseq_t *iseq);
|
|
173
174
|
int rb_iseq_add_local_tracepoint_recursively(const rb_iseq_t *iseq, rb_event_flag_t turnon_events, VALUE tpval, unsigned int target_line, bool target_bmethod);
|
174
175
|
int rb_iseq_remove_local_tracepoint_recursively(const rb_iseq_t *iseq, VALUE tpval);
|
175
176
|
const rb_iseq_t *rb_iseq_load_iseq(VALUE fname);
|
177
|
+
rb_iseq_t * rb_iseq_new_main_prism(pm_string_t *input, pm_options_t *options, VALUE path);
|
176
178
|
|
177
179
|
#if VM_INSN_INFO_TABLE_IMPL == 2
|
178
180
|
unsigned int *rb_iseq_insns_info_decode_positions(const struct rb_iseq_constant_body *body);
|
@@ -189,7 +191,7 @@ VALUE *rb_iseq_original_iseq(const rb_iseq_t *iseq);
|
|
189
191
|
void rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE misc,
|
190
192
|
VALUE locals, VALUE args,
|
191
193
|
VALUE exception, VALUE body);
|
192
|
-
void
|
194
|
+
void rb_iseq_mark_and_pin_insn_storage(struct iseq_compile_data_storage *arena);
|
193
195
|
|
194
196
|
VALUE rb_iseq_load(VALUE data, VALUE parent, VALUE opt);
|
195
197
|
VALUE rb_iseq_parameters(const rb_iseq_t *iseq, int is_proc);
|
@@ -329,6 +331,8 @@ VALUE rb_iseq_local_variables(const rb_iseq_t *iseq);
|
|
329
331
|
|
330
332
|
attr_index_t rb_estimate_iv_count(VALUE klass, const rb_iseq_t * initialize_iseq);
|
331
333
|
|
334
|
+
void rb_free_encoded_insn_data(void);
|
335
|
+
|
332
336
|
RUBY_SYMBOL_EXPORT_END
|
333
337
|
|
334
338
|
#endif /* RUBY_ISEQ_H */
|
@@ -38,6 +38,6 @@
|
|
38
38
|
|
39
39
|
/* Let .bss section automatically initialize this variable */
|
40
40
|
/* cf. Section 6.7.8 of ISO/IEC 9899:1999 */
|
41
|
-
static const int *const *const unified_insns_data[
|
41
|
+
static const int *const *const unified_insns_data[204];
|
42
42
|
|
43
43
|
ASSERT_VM_INSTRUCTION_SIZE(unified_insns_data);
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/* A Bison parser, made by Lrama 0.5.
|
1
|
+
/* A Bison parser, made by Lrama 0.5.12. */
|
2
2
|
|
3
3
|
/* Bison interface for Yacc-like parsers in C
|
4
4
|
|
@@ -190,7 +190,7 @@ extern int yydebug;
|
|
190
190
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
191
191
|
union YYSTYPE
|
192
192
|
{
|
193
|
-
#line
|
193
|
+
#line 1963 "parse.y"
|
194
194
|
|
195
195
|
VALUE val;
|
196
196
|
NODE *node;
|