debase-ruby_core_source 3.2.1 → 3.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/darray.h +246 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/debug_counter.h +7 -10
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/eval_intern.h +3 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/id.h +44 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/insns_info.inc +68 -94
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/array.h +2 -20
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/bits.h +6 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/class.h +7 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/cmdlineopt.h +3 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/compile.h +0 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/error.h +24 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/gc.h +28 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/hash.h +18 -44
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/io.h +137 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/parse.h +133 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/process.h +0 -14
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/range.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/re.h +1 -1
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/internal/ruby_parser.h +69 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/signal.h +4 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/string.h +15 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/struct.h +9 -34
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/thread.h +13 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/variable.h +16 -33
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/vm.h +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/iseq.h +4 -4
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/method.h +1 -1
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/node.h +125 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/parse.h +6 -4
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_bits.h +564 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_node.h +133 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_st.h +162 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/parser_value.h +106 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ractor_core.h +3 -3
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/revision.h +5 -0
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview2/rubyparser.h +628 -0
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/symbol.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/thread_pthread.h +11 -13
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/thread_win32.h +0 -5
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/version.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm.inc +303 -404
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_callinfo.h +50 -16
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_core.h +29 -47
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_exec.h +11 -10
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_insnhelper.h +20 -23
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_opts.h +0 -5
- data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/yjit.h +4 -6
- data/lib/debase/ruby_core_source/version.rb +1 -1
- metadata +119 -115
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview1/darray.h +0 -179
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview1/internal/io.h +0 -38
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview1/internal/parse.h +0 -25
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview1/node.h +0 -514
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview1/opt_sc.inc +0 -109
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview1/revision.h +0 -5
- data/lib/debase/ruby_core_source/ruby-3.3.0-preview1/transient_heap.h +0 -65
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/addr2line.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/builtin.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ccan/build_assert/build_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ccan/check_type/check_type.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ccan/container_of/container_of.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ccan/list/list.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ccan/str/str.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/constant.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/dln.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/encindex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/hrtime.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/id_table.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/insns.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/basic_operators.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/bignum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/compar.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/compilers.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/complex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/cont.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/dir.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/enc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/encoding.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/enum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/enumerator.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/eval.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/file.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/fixnum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/imemo.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/inits.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/load.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/loadpath.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/math.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/missing.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/numeric.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/object.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/proc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/ractor.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/random.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/rational.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/sanitizers.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/serial.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/static_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/symbol.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/time.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/transcode.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/util.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/warnings.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/known_errors.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/node_name.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/optinsn.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/optunifs.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/probes_helper.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/regenc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/regint.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/regparse.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/rjit.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/rjit_c.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ruby_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/ruby_atomic.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/shape.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/siphash.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/thread_none.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/timev.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/transcode_data.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/variable.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_call_iseq_optimized.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_debug.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vm_sync.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/vmtc.inc +0 -0
data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/class.h
RENAMED
@@ -17,6 +17,9 @@
|
|
17
17
|
#include "ruby/intern.h" /* for rb_alloc_func_t */
|
18
18
|
#include "ruby/ruby.h" /* for struct RBasic */
|
19
19
|
#include "shape.h"
|
20
|
+
#include "ruby_assert.h"
|
21
|
+
#include "vm_core.h"
|
22
|
+
#include "method.h" /* for rb_cref_t */
|
20
23
|
|
21
24
|
#ifdef RCLASS_SUPER
|
22
25
|
# undef RCLASS_SUPER
|
@@ -32,6 +35,7 @@ typedef struct rb_subclass_entry rb_subclass_entry_t;
|
|
32
35
|
struct rb_cvar_class_tbl_entry {
|
33
36
|
uint32_t index;
|
34
37
|
rb_serial_t global_cvar_state;
|
38
|
+
const rb_cref_t * cref;
|
35
39
|
VALUE class_value;
|
36
40
|
};
|
37
41
|
|
@@ -115,6 +119,7 @@ VALUE rb_module_s_alloc(VALUE klass);
|
|
115
119
|
void rb_module_set_initialized(VALUE module);
|
116
120
|
void rb_module_check_initializable(VALUE module);
|
117
121
|
VALUE rb_make_metaclass(VALUE, VALUE);
|
122
|
+
VALUE rb_iclass_alloc(VALUE klass);
|
118
123
|
VALUE rb_include_class_new(VALUE, VALUE);
|
119
124
|
void rb_class_foreach_subclass(VALUE klass, void (*f)(VALUE, VALUE), VALUE);
|
120
125
|
void rb_class_detach_subclasses(VALUE);
|
@@ -143,7 +148,7 @@ static inline rb_alloc_func_t
|
|
143
148
|
RCLASS_ALLOCATOR(VALUE klass)
|
144
149
|
{
|
145
150
|
if (FL_TEST_RAW(klass, FL_SINGLETON)) {
|
146
|
-
return
|
151
|
+
return 0;
|
147
152
|
}
|
148
153
|
return RCLASS_EXT(klass)->as.class.allocator;
|
149
154
|
}
|
@@ -201,7 +206,7 @@ RCLASS_SET_SUPER(VALUE klass, VALUE super)
|
|
201
206
|
static inline void
|
202
207
|
RCLASS_SET_CLASSPATH(VALUE klass, VALUE classpath, bool permanent)
|
203
208
|
{
|
204
|
-
assert(BUILTIN_TYPE(klass) == T_CLASS || BUILTIN_TYPE(klass) == T_MODULE);
|
209
|
+
assert(BUILTIN_TYPE(klass) == T_CLASS || BUILTIN_TYPE(klass) == T_MODULE || klass == rb_mRubyVMFrozenCore);
|
205
210
|
assert(classpath == 0 || BUILTIN_TYPE(classpath) == T_STRING);
|
206
211
|
|
207
212
|
RB_OBJ_WRITE(klass, &(RCLASS_EXT(klass)->classpath), classpath);
|
data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/cmdlineopt.h
RENAMED
@@ -23,11 +23,13 @@ typedef struct ruby_cmdline_options {
|
|
23
23
|
ruby_features_t features;
|
24
24
|
ruby_features_t warn;
|
25
25
|
unsigned int dump;
|
26
|
+
long backtrace_length_limit;
|
26
27
|
#if USE_RJIT
|
27
28
|
struct rb_rjit_options rjit;
|
28
29
|
#endif
|
29
30
|
|
30
|
-
int sflag
|
31
|
+
signed int sflag: 2;
|
32
|
+
unsigned int xflag: 1;
|
31
33
|
unsigned int warning: 1;
|
32
34
|
unsigned int verbose: 1;
|
33
35
|
unsigned int do_loop: 1;
|
data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/compile.h
RENAMED
@@ -17,7 +17,6 @@ struct rb_iseq_struct; /* in vm_core.h */
|
|
17
17
|
/* compile.c */
|
18
18
|
int rb_dvar_defined(ID, const struct rb_iseq_struct *);
|
19
19
|
int rb_local_defined(ID, const struct rb_iseq_struct *);
|
20
|
-
bool rb_insns_leaf_p(int i);
|
21
20
|
int rb_insn_len(VALUE insn);
|
22
21
|
const char *rb_insns_name(int i);
|
23
22
|
VALUE rb_insns_name_array(void);
|
data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/error.h
RENAMED
@@ -29,15 +29,37 @@
|
|
29
29
|
#define rb_raise_static(e, m) \
|
30
30
|
rb_raise_cstr_i((e), rb_str_new_static((m), rb_strlen_lit(m)))
|
31
31
|
#ifdef RUBY_FUNCTION_NAME_STRING
|
32
|
-
# define rb_sys_fail_path(path) rb_sys_fail_path_in(RUBY_FUNCTION_NAME_STRING, path)
|
33
32
|
# define rb_syserr_fail_path(err, path) rb_syserr_fail_path_in(RUBY_FUNCTION_NAME_STRING, (err), (path))
|
34
33
|
# define rb_syserr_new_path(err, path) rb_syserr_new_path_in(RUBY_FUNCTION_NAME_STRING, (err), (path))
|
35
34
|
#else
|
36
|
-
# define rb_sys_fail_path(path) rb_sys_fail_str(path)
|
37
35
|
# define rb_syserr_fail_path(err, path) rb_syserr_fail_str((err), (path))
|
38
36
|
# define rb_syserr_new_path(err, path) rb_syserr_new_str((err), (path))
|
39
37
|
#endif
|
40
38
|
|
39
|
+
#define rb_sys_fail(mesg) \
|
40
|
+
do { \
|
41
|
+
int errno_to_fail = errno; \
|
42
|
+
rb_syserr_fail(errno_to_fail, (mesg)); \
|
43
|
+
} while (0)
|
44
|
+
|
45
|
+
#define rb_sys_fail_str(mesg) \
|
46
|
+
do { \
|
47
|
+
int errno_to_fail = errno; \
|
48
|
+
rb_syserr_fail_str(errno_to_fail, (mesg)); \
|
49
|
+
} while (0)
|
50
|
+
|
51
|
+
#define rb_sys_fail_path(path) \
|
52
|
+
do { \
|
53
|
+
int errno_to_fail = errno; \
|
54
|
+
rb_syserr_fail_path(errno_to_fail, (path)); \
|
55
|
+
} while (0)
|
56
|
+
|
57
|
+
#define rb_sys_fail_sprintf(...) \
|
58
|
+
do { \
|
59
|
+
int errno_to_fail = errno; \
|
60
|
+
rb_syserr_fail_str(errno_to_fail, rb_sprintf("" __VA_ARGS__)); \
|
61
|
+
} while (0)
|
62
|
+
|
41
63
|
/* error.c */
|
42
64
|
extern long rb_backtrace_length_limit;
|
43
65
|
extern VALUE rb_eEAGAIN;
|
@@ -189,6 +189,17 @@ struct rb_objspace; /* in vm_core.h */
|
|
189
189
|
# define SIZE_POOL_COUNT 5
|
190
190
|
#endif
|
191
191
|
|
192
|
+
/* Used in places that could malloc during, which can cause the GC to run. We
|
193
|
+
* need to temporarily disable the GC to allow the malloc to happen.
|
194
|
+
* Allocating memory during GC is a bad idea, so use this only when absolutely
|
195
|
+
* necessary. */
|
196
|
+
#define DURING_GC_COULD_MALLOC_REGION_START() \
|
197
|
+
assert(rb_during_gc()); \
|
198
|
+
VALUE _already_disabled = rb_gc_disable_no_rest()
|
199
|
+
|
200
|
+
#define DURING_GC_COULD_MALLOC_REGION_END() \
|
201
|
+
if (_already_disabled == Qfalse) rb_gc_enable()
|
202
|
+
|
192
203
|
typedef struct ractor_newobj_size_pool_cache {
|
193
204
|
struct RVALUE *freelist;
|
194
205
|
struct heap_page *using_page;
|
@@ -204,6 +215,7 @@ extern VALUE *ruby_initial_gc_stress_ptr;
|
|
204
215
|
extern int ruby_disable_gc;
|
205
216
|
RUBY_ATTR_MALLOC void *ruby_mimmalloc(size_t size);
|
206
217
|
void ruby_mimfree(void *ptr);
|
218
|
+
void rb_gc_prepare_heap(void);
|
207
219
|
void rb_objspace_set_event_hook(const rb_event_flag_t event);
|
208
220
|
VALUE rb_objspace_gc_enable(struct rb_objspace *);
|
209
221
|
VALUE rb_objspace_gc_disable(struct rb_objspace *);
|
@@ -234,6 +246,9 @@ VALUE rb_define_finalizer_no_check(VALUE obj, VALUE block);
|
|
234
246
|
|
235
247
|
void rb_gc_mark_and_move(VALUE *ptr);
|
236
248
|
|
249
|
+
void rb_gc_mark_weak(VALUE *ptr);
|
250
|
+
void rb_gc_remove_weak(VALUE parent_obj, VALUE *ptr);
|
251
|
+
|
237
252
|
#define rb_gc_mark_and_move_ptr(ptr) do { \
|
238
253
|
VALUE _obj = (VALUE)*(ptr); \
|
239
254
|
rb_gc_mark_and_move(&_obj); \
|
@@ -271,6 +286,7 @@ void rb_gc_verify_internal_consistency(void);
|
|
271
286
|
size_t rb_obj_gc_flags(VALUE, ID[], size_t);
|
272
287
|
void rb_gc_mark_values(long n, const VALUE *values);
|
273
288
|
void rb_gc_mark_vm_stack_values(long n, const VALUE *values);
|
289
|
+
void rb_gc_update_values(long n, VALUE *values);
|
274
290
|
void *ruby_sized_xrealloc(void *ptr, size_t new_size, size_t old_size) RUBY_ATTR_RETURNS_NONNULL RUBY_ATTR_ALLOC_SIZE((2));
|
275
291
|
void *ruby_sized_xrealloc2(void *ptr, size_t new_count, size_t element_size, size_t old_count) RUBY_ATTR_RETURNS_NONNULL RUBY_ATTR_ALLOC_SIZE((2, 3));
|
276
292
|
void ruby_sized_xfree(void *x, size_t size);
|
@@ -302,6 +318,12 @@ ruby_sized_xfree_inlined(void *ptr, size_t size)
|
|
302
318
|
|
303
319
|
# define SIZED_REALLOC_N(x, y, z, w) REALLOC_N(x, y, z)
|
304
320
|
|
321
|
+
static inline void *
|
322
|
+
ruby_sized_realloc_n(void *ptr, size_t new_count, size_t element_size, size_t old_count)
|
323
|
+
{
|
324
|
+
return ruby_xrealloc2(ptr, new_count, element_size);
|
325
|
+
}
|
326
|
+
|
305
327
|
#else
|
306
328
|
|
307
329
|
static inline void *
|
@@ -325,6 +347,12 @@ ruby_sized_xfree_inlined(void *ptr, size_t size)
|
|
325
347
|
# define SIZED_REALLOC_N(v, T, m, n) \
|
326
348
|
((v) = (T *)ruby_sized_xrealloc2((void *)(v), (m), sizeof(T), (n)))
|
327
349
|
|
350
|
+
static inline void *
|
351
|
+
ruby_sized_realloc_n(void *ptr, size_t new_count, size_t element_size, size_t old_count)
|
352
|
+
{
|
353
|
+
return ruby_sized_xrealloc2(ptr, new_count, element_size, old_count);
|
354
|
+
}
|
355
|
+
|
328
356
|
#endif /* HAVE_MALLOC_USABLE_SIZE */
|
329
357
|
|
330
358
|
#define ruby_sized_xrealloc ruby_sized_xrealloc_inlined
|
data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/hash.h
RENAMED
@@ -28,10 +28,6 @@ enum ruby_rhash_flags {
|
|
28
28
|
RHASH_AR_TABLE_BOUND_MASK = (FL_USER8|FL_USER9|FL_USER10|FL_USER11), /* FL 8..11 */
|
29
29
|
RHASH_AR_TABLE_BOUND_SHIFT = (FL_USHIFT+8),
|
30
30
|
|
31
|
-
#if USE_TRANSIENT_HEAP
|
32
|
-
RHASH_TRANSIENT_FLAG = FL_USER12, /* FL 12 */
|
33
|
-
#endif
|
34
|
-
|
35
31
|
// we can not put it in "enum" because it can exceed "int" range.
|
36
32
|
#define RHASH_LEV_MASK (FL_USER13 | FL_USER14 | FL_USER15 | /* FL 13..19 */ \
|
37
33
|
FL_USER16 | FL_USER17 | FL_USER18 | FL_USER19)
|
@@ -40,17 +36,23 @@ enum ruby_rhash_flags {
|
|
40
36
|
RHASH_LEV_MAX = 127, /* 7 bits */
|
41
37
|
};
|
42
38
|
|
43
|
-
struct
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
const VALUE ifnone;
|
39
|
+
typedef struct ar_table_pair_struct {
|
40
|
+
VALUE key;
|
41
|
+
VALUE val;
|
42
|
+
} ar_table_pair;
|
43
|
+
|
44
|
+
typedef struct ar_table_struct {
|
50
45
|
union {
|
51
46
|
ar_hint_t ary[RHASH_AR_TABLE_MAX_SIZE];
|
52
47
|
VALUE word;
|
53
48
|
} ar_hint;
|
49
|
+
/* 64bit CPU: 8B * 2 * 8 = 128B */
|
50
|
+
ar_table_pair pairs[RHASH_AR_TABLE_MAX_SIZE];
|
51
|
+
} ar_table;
|
52
|
+
|
53
|
+
struct RHash {
|
54
|
+
struct RBasic basic;
|
55
|
+
const VALUE ifnone;
|
54
56
|
};
|
55
57
|
|
56
58
|
#define RHASH(obj) ((struct RHash *)(obj))
|
@@ -96,9 +98,6 @@ static inline struct ar_table_struct *RHASH_AR_TABLE(VALUE h);
|
|
96
98
|
static inline st_table *RHASH_ST_TABLE(VALUE h);
|
97
99
|
static inline size_t RHASH_ST_SIZE(VALUE h);
|
98
100
|
static inline void RHASH_ST_CLEAR(VALUE h);
|
99
|
-
static inline bool RHASH_TRANSIENT_P(VALUE h);
|
100
|
-
static inline void RHASH_SET_TRANSIENT_FLAG(VALUE h);
|
101
|
-
static inline void RHASH_UNSET_TRANSIENT_FLAG(VALUE h);
|
102
101
|
|
103
102
|
RUBY_SYMBOL_EXPORT_BEGIN
|
104
103
|
/* hash.c (export) */
|
@@ -125,16 +124,18 @@ RHASH_AR_TABLE_P(VALUE h)
|
|
125
124
|
return ! FL_TEST_RAW(h, RHASH_ST_TABLE_FLAG);
|
126
125
|
}
|
127
126
|
|
127
|
+
RBIMPL_ATTR_RETURNS_NONNULL()
|
128
128
|
static inline struct ar_table_struct *
|
129
129
|
RHASH_AR_TABLE(VALUE h)
|
130
130
|
{
|
131
|
-
return
|
131
|
+
return (struct ar_table_struct *)((uintptr_t)h + sizeof(struct RHash));
|
132
132
|
}
|
133
133
|
|
134
|
+
RBIMPL_ATTR_RETURNS_NONNULL()
|
134
135
|
static inline st_table *
|
135
136
|
RHASH_ST_TABLE(VALUE h)
|
136
137
|
{
|
137
|
-
return
|
138
|
+
return (st_table *)((uintptr_t)h + sizeof(struct RHash));
|
138
139
|
}
|
139
140
|
|
140
141
|
static inline VALUE
|
@@ -175,8 +176,7 @@ RHASH_ST_SIZE(VALUE h)
|
|
175
176
|
static inline void
|
176
177
|
RHASH_ST_CLEAR(VALUE h)
|
177
178
|
{
|
178
|
-
|
179
|
-
FL_UNSET_RAW(h, RHASH_ST_TABLE_FLAG);
|
179
|
+
memset(RHASH_ST_TABLE(h), 0, sizeof(st_table));
|
180
180
|
}
|
181
181
|
|
182
182
|
static inline unsigned
|
@@ -187,30 +187,4 @@ RHASH_AR_TABLE_SIZE_RAW(VALUE h)
|
|
187
187
|
return (unsigned)ret;
|
188
188
|
}
|
189
189
|
|
190
|
-
static inline bool
|
191
|
-
RHASH_TRANSIENT_P(VALUE h)
|
192
|
-
{
|
193
|
-
#if USE_TRANSIENT_HEAP
|
194
|
-
return FL_TEST_RAW(h, RHASH_TRANSIENT_FLAG);
|
195
|
-
#else
|
196
|
-
return false;
|
197
|
-
#endif
|
198
|
-
}
|
199
|
-
|
200
|
-
static inline void
|
201
|
-
RHASH_SET_TRANSIENT_FLAG(VALUE h)
|
202
|
-
{
|
203
|
-
#if USE_TRANSIENT_HEAP
|
204
|
-
FL_SET_RAW(h, RHASH_TRANSIENT_FLAG);
|
205
|
-
#endif
|
206
|
-
}
|
207
|
-
|
208
|
-
static inline void
|
209
|
-
RHASH_UNSET_TRANSIENT_FLAG(VALUE h)
|
210
|
-
{
|
211
|
-
#if USE_TRANSIENT_HEAP
|
212
|
-
FL_UNSET_RAW(h, RHASH_TRANSIENT_FLAG);
|
213
|
-
#endif
|
214
|
-
}
|
215
|
-
|
216
190
|
#endif /* INTERNAL_HASH_H */
|
@@ -0,0 +1,137 @@
|
|
1
|
+
#ifndef INTERNAL_IO_H /*-*-C-*-vi:se ft=c:*/
|
2
|
+
#define INTERNAL_IO_H
|
3
|
+
/**
|
4
|
+
* @author Ruby developers <ruby-core@ruby-lang.org>
|
5
|
+
* @copyright This file is a part of the programming language Ruby.
|
6
|
+
* Permission is hereby granted, to either redistribute and/or
|
7
|
+
* modify this file, provided that the conditions mentioned in the
|
8
|
+
* file COPYING are met. Consult the file for details.
|
9
|
+
* @brief Internal header for IO.
|
10
|
+
*/
|
11
|
+
#include "ruby/ruby.h" /* for VALUE */
|
12
|
+
|
13
|
+
#define HAVE_RB_IO_T
|
14
|
+
struct rb_io;
|
15
|
+
|
16
|
+
#include "ruby/io.h" /* for rb_io_t */
|
17
|
+
|
18
|
+
/** Ruby's IO, metadata and buffers. */
|
19
|
+
struct rb_io {
|
20
|
+
|
21
|
+
/** The IO's Ruby level counterpart. */
|
22
|
+
VALUE self;
|
23
|
+
|
24
|
+
/** stdio ptr for read/write, if available. */
|
25
|
+
FILE *stdio_file;
|
26
|
+
|
27
|
+
/** file descriptor. */
|
28
|
+
int fd;
|
29
|
+
|
30
|
+
/** mode flags: FMODE_XXXs */
|
31
|
+
int mode;
|
32
|
+
|
33
|
+
/** child's pid (for pipes) */
|
34
|
+
rb_pid_t pid;
|
35
|
+
|
36
|
+
/** number of lines read */
|
37
|
+
int lineno;
|
38
|
+
|
39
|
+
/** pathname for file */
|
40
|
+
VALUE pathv;
|
41
|
+
|
42
|
+
/** finalize proc */
|
43
|
+
void (*finalize)(struct rb_io*,int);
|
44
|
+
|
45
|
+
/** Write buffer. */
|
46
|
+
rb_io_buffer_t wbuf;
|
47
|
+
|
48
|
+
/**
|
49
|
+
* (Byte) read buffer. Note also that there is a field called
|
50
|
+
* ::rb_io_t::cbuf, which also concerns read IO.
|
51
|
+
*/
|
52
|
+
rb_io_buffer_t rbuf;
|
53
|
+
|
54
|
+
/**
|
55
|
+
* Duplex IO object, if set.
|
56
|
+
*
|
57
|
+
* @see rb_io_set_write_io()
|
58
|
+
*/
|
59
|
+
VALUE tied_io_for_writing;
|
60
|
+
|
61
|
+
struct rb_io_encoding encs; /**< Decomposed encoding flags. */
|
62
|
+
|
63
|
+
/** Encoding converter used when reading from this IO. */
|
64
|
+
rb_econv_t *readconv;
|
65
|
+
|
66
|
+
/**
|
67
|
+
* rb_io_ungetc() destination. This buffer is read before checking
|
68
|
+
* ::rb_io_t::rbuf
|
69
|
+
*/
|
70
|
+
rb_io_buffer_t cbuf;
|
71
|
+
|
72
|
+
/** Encoding converter used when writing to this IO. */
|
73
|
+
rb_econv_t *writeconv;
|
74
|
+
|
75
|
+
/**
|
76
|
+
* This is, when set, an instance of ::rb_cString which holds the "common"
|
77
|
+
* encoding. Write conversion can convert strings twice... In case
|
78
|
+
* conversion from encoding X to encoding Y does not exist, Ruby finds an
|
79
|
+
* encoding Z that bridges the two, so that X to Z to Y conversion happens.
|
80
|
+
*/
|
81
|
+
VALUE writeconv_asciicompat;
|
82
|
+
|
83
|
+
/** Whether ::rb_io_t::writeconv is already set up. */
|
84
|
+
int writeconv_initialized;
|
85
|
+
|
86
|
+
/**
|
87
|
+
* Value of ::rb_io_t::rb_io_enc_t::ecflags stored right before
|
88
|
+
* initialising ::rb_io_t::writeconv.
|
89
|
+
*/
|
90
|
+
int writeconv_pre_ecflags;
|
91
|
+
|
92
|
+
/**
|
93
|
+
* Value of ::rb_io_t::rb_io_enc_t::ecopts stored right before initialising
|
94
|
+
* ::rb_io_t::writeconv.
|
95
|
+
*/
|
96
|
+
VALUE writeconv_pre_ecopts;
|
97
|
+
|
98
|
+
/**
|
99
|
+
* This is a Ruby level mutex. It avoids multiple threads to write to an
|
100
|
+
* IO at once; helps for instance rb_io_puts() to ensure newlines right
|
101
|
+
* next to its arguments.
|
102
|
+
*
|
103
|
+
* This of course doesn't help inter-process IO interleaves, though.
|
104
|
+
*/
|
105
|
+
VALUE write_lock;
|
106
|
+
|
107
|
+
/**
|
108
|
+
* The timeout associated with this IO when performing blocking operations.
|
109
|
+
*/
|
110
|
+
VALUE timeout;
|
111
|
+
};
|
112
|
+
|
113
|
+
/* io.c */
|
114
|
+
void ruby_set_inplace_mode(const char *);
|
115
|
+
void rb_stdio_set_default_encoding(void);
|
116
|
+
VALUE rb_io_flush_raw(VALUE, int);
|
117
|
+
size_t rb_io_memsize(const rb_io_t *);
|
118
|
+
int rb_stderr_tty_p(void);
|
119
|
+
void rb_io_fptr_finalize_internal(void *ptr);
|
120
|
+
#ifdef rb_io_fptr_finalize
|
121
|
+
# undef rb_io_fptr_finalize
|
122
|
+
#endif
|
123
|
+
#define rb_io_fptr_finalize rb_io_fptr_finalize_internal
|
124
|
+
VALUE rb_io_popen(VALUE pname, VALUE pmode, VALUE env, VALUE opt);
|
125
|
+
|
126
|
+
VALUE rb_io_prep_stdin(void);
|
127
|
+
VALUE rb_io_prep_stdout(void);
|
128
|
+
VALUE rb_io_prep_stderr(void);
|
129
|
+
|
130
|
+
RUBY_SYMBOL_EXPORT_BEGIN
|
131
|
+
/* io.c (export) */
|
132
|
+
void rb_maygvl_fd_fix_cloexec(int fd);
|
133
|
+
int rb_gc_for_fd(int err);
|
134
|
+
void rb_write_error_str(VALUE mesg);
|
135
|
+
RUBY_SYMBOL_EXPORT_END
|
136
|
+
|
137
|
+
#endif /* INTERNAL_IO_H */
|
@@ -0,0 +1,133 @@
|
|
1
|
+
#ifndef INTERNAL_PARSE_H /*-*-C-*-vi:se ft=c:*/
|
2
|
+
#define INTERNAL_PARSE_H
|
3
|
+
/**
|
4
|
+
* @author Ruby developers <ruby-core@ruby-lang.org>
|
5
|
+
* @copyright This file is a part of the programming language Ruby.
|
6
|
+
* Permission is hereby granted, to either redistribute and/or
|
7
|
+
* modify this file, provided that the conditions mentioned in the
|
8
|
+
* file COPYING are met. Consult the file for details.
|
9
|
+
* @brief Internal header for the parser.
|
10
|
+
*/
|
11
|
+
#include <limits.h>
|
12
|
+
#include "rubyparser.h"
|
13
|
+
#include "internal/static_assert.h"
|
14
|
+
|
15
|
+
#ifdef UNIVERSAL_PARSER
|
16
|
+
#define rb_encoding void
|
17
|
+
#endif
|
18
|
+
|
19
|
+
struct rb_iseq_struct; /* in vm_core.h */
|
20
|
+
|
21
|
+
#define STRTERM_HEREDOC IMEMO_FL_USER0
|
22
|
+
|
23
|
+
/* structs for managing terminator of string literal and heredocment */
|
24
|
+
typedef struct rb_strterm_literal_struct {
|
25
|
+
union {
|
26
|
+
VALUE dummy;
|
27
|
+
long nest;
|
28
|
+
} u0;
|
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;
|
41
|
+
} rb_strterm_literal_t;
|
42
|
+
|
43
|
+
#define HERETERM_LENGTH_BITS ((SIZEOF_VALUE - 1) * CHAR_BIT - 1)
|
44
|
+
|
45
|
+
typedef struct rb_strterm_heredoc_struct {
|
46
|
+
VALUE lastline; /* the string of line that contains `<<"END"` */
|
47
|
+
long offset; /* the column of END in `<<"END"` */
|
48
|
+
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
|
61
|
+
uint8_t quote;
|
62
|
+
uint8_t func;
|
63
|
+
#endif
|
64
|
+
} rb_strterm_heredoc_t;
|
65
|
+
STATIC_ASSERT(rb_strterm_heredoc_t, sizeof(rb_strterm_heredoc_t) <= 4 * SIZEOF_VALUE);
|
66
|
+
|
67
|
+
typedef struct rb_strterm_struct {
|
68
|
+
VALUE flags;
|
69
|
+
union {
|
70
|
+
rb_strterm_literal_t literal;
|
71
|
+
rb_strterm_heredoc_t heredoc;
|
72
|
+
} u;
|
73
|
+
} rb_strterm_t;
|
74
|
+
|
75
|
+
/* parse.y */
|
76
|
+
void rb_ruby_parser_mark(void *ptr);
|
77
|
+
size_t rb_ruby_parser_memsize(const void *ptr);
|
78
|
+
|
79
|
+
void rb_ruby_parser_set_options(rb_parser_t *p, int print, int loop, int chomp, int split);
|
80
|
+
rb_parser_t *rb_ruby_parser_set_context(rb_parser_t *p, const struct rb_iseq_struct *base, int main);
|
81
|
+
void rb_ruby_parser_set_script_lines(rb_parser_t *p, VALUE lines_array);
|
82
|
+
void rb_ruby_parser_error_tolerant(rb_parser_t *p);
|
83
|
+
rb_ast_t* rb_ruby_parser_compile_file_path(rb_parser_t *p, VALUE fname, VALUE file, int start);
|
84
|
+
void rb_ruby_parser_keep_tokens(rb_parser_t *p);
|
85
|
+
rb_ast_t* rb_ruby_parser_compile_generic(rb_parser_t *p, VALUE (*lex_gets)(VALUE, int), VALUE fname, VALUE input, int start);
|
86
|
+
rb_ast_t* rb_ruby_parser_compile_string_path(rb_parser_t *p, VALUE f, VALUE s, int line);
|
87
|
+
|
88
|
+
RUBY_SYMBOL_EXPORT_BEGIN
|
89
|
+
|
90
|
+
VALUE rb_ruby_parser_encoding(rb_parser_t *p);
|
91
|
+
int rb_ruby_parser_end_seen_p(rb_parser_t *p);
|
92
|
+
int rb_ruby_parser_set_yydebug(rb_parser_t *p, int flag);
|
93
|
+
|
94
|
+
RUBY_SYMBOL_EXPORT_END
|
95
|
+
|
96
|
+
int rb_reg_named_capture_assign_iter_impl(struct parser_params *p, const char *s, long len, rb_encoding *enc, NODE **succ_block, const rb_code_location_t *loc);
|
97
|
+
|
98
|
+
#ifdef RIPPER
|
99
|
+
void ripper_parser_mark(void *ptr);
|
100
|
+
void ripper_parser_free(void *ptr);
|
101
|
+
size_t ripper_parser_memsize(const void *ptr);
|
102
|
+
void ripper_error(struct parser_params *p);
|
103
|
+
VALUE ripper_value(struct parser_params *p);
|
104
|
+
int rb_ruby_parser_get_yydebug(rb_parser_t *p);
|
105
|
+
void rb_ruby_parser_set_value(rb_parser_t *p, VALUE value);
|
106
|
+
int rb_ruby_parser_error_p(rb_parser_t *p);
|
107
|
+
VALUE rb_ruby_parser_debug_output(rb_parser_t *p);
|
108
|
+
void rb_ruby_parser_set_debug_output(rb_parser_t *p, VALUE output);
|
109
|
+
VALUE rb_ruby_parser_parsing_thread(rb_parser_t *p);
|
110
|
+
void rb_ruby_parser_set_parsing_thread(rb_parser_t *p, VALUE parsing_thread);
|
111
|
+
void rb_ruby_parser_ripper_initialize(rb_parser_t *p, VALUE (*gets)(struct parser_params*,VALUE), VALUE input, VALUE sourcefile_string, const char *sourcefile, int sourceline);
|
112
|
+
VALUE rb_ruby_parser_result(rb_parser_t *p);
|
113
|
+
rb_encoding *rb_ruby_parser_enc(rb_parser_t *p);
|
114
|
+
VALUE rb_ruby_parser_ruby_sourcefile_string(rb_parser_t *p);
|
115
|
+
int rb_ruby_parser_ruby_sourceline(rb_parser_t *p);
|
116
|
+
int rb_ruby_parser_lex_state(rb_parser_t *p);
|
117
|
+
void rb_ruby_ripper_parse0(rb_parser_t *p);
|
118
|
+
int rb_ruby_ripper_dedent_string(rb_parser_t *p, VALUE string, int width);
|
119
|
+
VALUE rb_ruby_ripper_lex_get_str(rb_parser_t *p, VALUE s);
|
120
|
+
int rb_ruby_ripper_initialized_p(rb_parser_t *p);
|
121
|
+
void rb_ruby_ripper_parser_initialize(rb_parser_t *p);
|
122
|
+
long rb_ruby_ripper_column(rb_parser_t *p);
|
123
|
+
long rb_ruby_ripper_token_len(rb_parser_t *p);
|
124
|
+
VALUE rb_ruby_ripper_lex_lastline(rb_parser_t *p);
|
125
|
+
VALUE rb_ruby_ripper_lex_state_name(struct parser_params *p, int state);
|
126
|
+
struct parser_params *rb_ruby_ripper_parser_allocate(void);
|
127
|
+
#endif
|
128
|
+
|
129
|
+
#ifdef UNIVERSAL_PARSER
|
130
|
+
#undef rb_encoding
|
131
|
+
#endif
|
132
|
+
|
133
|
+
#endif /* INTERNAL_PARSE_H */
|
data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/process.h
RENAMED
@@ -22,7 +22,6 @@
|
|
22
22
|
#include "ruby/ruby.h" /* for VALUE */
|
23
23
|
#include "internal/compilers.h" /* for __has_warning */
|
24
24
|
#include "internal/imemo.h" /* for RB_IMEMO_TMPBUF_PTR */
|
25
|
-
#include "internal/warnings.h" /* for COMPILER_WARNING_PUSH */
|
26
25
|
|
27
26
|
#define RB_MAX_GROUPS (65536)
|
28
27
|
|
@@ -122,17 +121,4 @@ ARGVSTR2ARGC(VALUE argv_str)
|
|
122
121
|
return i - 1;
|
123
122
|
}
|
124
123
|
|
125
|
-
#ifdef HAVE_WORKING_FORK
|
126
|
-
COMPILER_WARNING_PUSH
|
127
|
-
#if __has_warning("-Wdeprecated-declarations") || RBIMPL_COMPILER_IS(GCC)
|
128
|
-
COMPILER_WARNING_IGNORED(-Wdeprecated-declarations)
|
129
|
-
#endif
|
130
|
-
static inline rb_pid_t
|
131
|
-
rb_fork(void)
|
132
|
-
{
|
133
|
-
return fork();
|
134
|
-
}
|
135
|
-
COMPILER_WARNING_POP
|
136
|
-
#endif
|
137
|
-
|
138
124
|
#endif /* INTERNAL_PROCESS_H */
|
data/lib/debase/ruby_core_source/{ruby-3.3.0-preview1 → ruby-3.3.0-preview2}/internal/range.h
RENAMED
@@ -24,13 +24,13 @@ RANGE_BEG(VALUE r)
|
|
24
24
|
static inline VALUE
|
25
25
|
RANGE_END(VALUE r)
|
26
26
|
{
|
27
|
-
return
|
27
|
+
return RSTRUCT_GET(r, 1);
|
28
28
|
}
|
29
29
|
|
30
30
|
static inline VALUE
|
31
31
|
RANGE_EXCL(VALUE r)
|
32
32
|
{
|
33
|
-
return
|
33
|
+
return RSTRUCT_GET(r, 2);
|
34
34
|
}
|
35
35
|
|
36
36
|
VALUE
|
@@ -22,7 +22,7 @@ VALUE rb_reg_equal(VALUE re1, VALUE re2);
|
|
22
22
|
void rb_backref_set_string(VALUE string, long pos, long len);
|
23
23
|
void rb_match_unbusy(VALUE);
|
24
24
|
int rb_match_count(VALUE match);
|
25
|
-
int rb_match_nth_defined(int nth, VALUE match);
|
26
25
|
VALUE rb_reg_new_ary(VALUE ary, int options);
|
26
|
+
VALUE rb_reg_last_defined(VALUE match);
|
27
27
|
|
28
28
|
#endif /* INTERNAL_RE_H */
|
@@ -0,0 +1,69 @@
|
|
1
|
+
#ifndef INTERNAL_RUBY_PARSE_H
|
2
|
+
#define INTERNAL_RUBY_PARSE_H
|
3
|
+
|
4
|
+
#include "internal.h"
|
5
|
+
#include "internal/imemo.h"
|
6
|
+
#include "rubyparser.h"
|
7
|
+
#include "vm.h"
|
8
|
+
|
9
|
+
RUBY_SYMBOL_EXPORT_BEGIN
|
10
|
+
#ifdef UNIVERSAL_PARSER
|
11
|
+
void rb_parser_config_initialize(rb_parser_config_t *config);
|
12
|
+
#endif
|
13
|
+
VALUE rb_parser_set_context(VALUE, const struct rb_iseq_struct *, int);
|
14
|
+
RUBY_SYMBOL_EXPORT_END
|
15
|
+
|
16
|
+
VALUE rb_parser_new(void);
|
17
|
+
VALUE rb_parser_end_seen_p(VALUE);
|
18
|
+
VALUE rb_parser_encoding(VALUE);
|
19
|
+
VALUE rb_parser_set_yydebug(VALUE, VALUE);
|
20
|
+
void rb_parser_set_options(VALUE, int, int, int, int);
|
21
|
+
void *rb_parser_load_file(VALUE parser, VALUE name);
|
22
|
+
void rb_parser_set_script_lines(VALUE vparser, VALUE lines_array);
|
23
|
+
void rb_parser_error_tolerant(VALUE vparser);
|
24
|
+
void rb_parser_keep_tokens(VALUE vparser);
|
25
|
+
|
26
|
+
rb_ast_t *rb_parser_compile_string(VALUE, const char*, VALUE, int);
|
27
|
+
rb_ast_t *rb_parser_compile_string_path(VALUE vparser, VALUE fname, VALUE src, int line);
|
28
|
+
rb_ast_t *rb_parser_compile_file_path(VALUE vparser, VALUE fname, VALUE input, int line);
|
29
|
+
rb_ast_t *rb_parser_compile_generic(VALUE vparser, VALUE (*lex_gets)(VALUE, int), VALUE fname, VALUE input, int line);
|
30
|
+
|
31
|
+
enum lex_state_bits {
|
32
|
+
EXPR_BEG_bit, /* ignore newline, +/- is a sign. */
|
33
|
+
EXPR_END_bit, /* newline significant, +/- is an operator. */
|
34
|
+
EXPR_ENDARG_bit, /* ditto, and unbound braces. */
|
35
|
+
EXPR_ENDFN_bit, /* ditto, and unbound braces. */
|
36
|
+
EXPR_ARG_bit, /* newline significant, +/- is an operator. */
|
37
|
+
EXPR_CMDARG_bit, /* newline significant, +/- is an operator. */
|
38
|
+
EXPR_MID_bit, /* newline significant, +/- is an operator. */
|
39
|
+
EXPR_FNAME_bit, /* ignore newline, no reserved words. */
|
40
|
+
EXPR_DOT_bit, /* right after `.', `&.' or `::', no reserved words. */
|
41
|
+
EXPR_CLASS_bit, /* immediate after `class', no here document. */
|
42
|
+
EXPR_LABEL_bit, /* flag bit, label is allowed. */
|
43
|
+
EXPR_LABELED_bit, /* flag bit, just after a label. */
|
44
|
+
EXPR_FITEM_bit, /* symbol literal as FNAME. */
|
45
|
+
EXPR_MAX_STATE
|
46
|
+
};
|
47
|
+
/* examine combinations */
|
48
|
+
enum lex_state_e {
|
49
|
+
#define DEF_EXPR(n) EXPR_##n = (1 << EXPR_##n##_bit)
|
50
|
+
DEF_EXPR(BEG),
|
51
|
+
DEF_EXPR(END),
|
52
|
+
DEF_EXPR(ENDARG),
|
53
|
+
DEF_EXPR(ENDFN),
|
54
|
+
DEF_EXPR(ARG),
|
55
|
+
DEF_EXPR(CMDARG),
|
56
|
+
DEF_EXPR(MID),
|
57
|
+
DEF_EXPR(FNAME),
|
58
|
+
DEF_EXPR(DOT),
|
59
|
+
DEF_EXPR(CLASS),
|
60
|
+
DEF_EXPR(LABEL),
|
61
|
+
DEF_EXPR(LABELED),
|
62
|
+
DEF_EXPR(FITEM),
|
63
|
+
EXPR_VALUE = EXPR_BEG,
|
64
|
+
EXPR_BEG_ANY = (EXPR_BEG | EXPR_MID | EXPR_CLASS),
|
65
|
+
EXPR_ARG_ANY = (EXPR_ARG | EXPR_CMDARG),
|
66
|
+
EXPR_END_ANY = (EXPR_END | EXPR_ENDARG | EXPR_ENDFN),
|
67
|
+
EXPR_NONE = 0
|
68
|
+
};
|
69
|
+
#endif /* INTERNAL_RUBY_PARSE_H */
|