debase-ruby_core_source 3.3.6 → 3.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -0
- data/CHANGELOG.md +6 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/builtin.h +7 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/darray.h +1 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/id.h +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/insns.inc +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/insns_info.inc +310 -175
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/basic_operators.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/bits.h +82 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/encoding.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/error.h +26 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/fixnum.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/gc.h +14 -6
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/imemo.h +6 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/io.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/parse.h +2 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/proc.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/ractor.h +4 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/sanitizers.h +31 -39
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/string.h +22 -10
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/thread.h +23 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/vm.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/method.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/optunifs.inc +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/parse.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/ast.h +427 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/defines.h +8 -7
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/diagnostic.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/extension.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/prism.h +47 -11
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/version.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism_compile.h +5 -5
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/ractor_core.h +6 -6
- data/lib/debase/ruby_core_source/ruby-3.4.0/revision.h +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/rubyparser.h +3 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/thread_pthread.h +0 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/version.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm.inc +151 -88
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_core.h +40 -12
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_sync.h +3 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vmtc.inc +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/yjit.h +1 -0
- data/lib/debase/ruby_core_source/version.rb +1 -1
- metadata +147 -293
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/darray.h +0 -191
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/debug_counter.h +0 -423
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/dln.h +0 -34
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/id.h +0 -343
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/insns.inc +0 -259
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/insns_info.inc +0 -9530
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/array.h +0 -151
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/basic_operators.h +0 -63
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/bits.h +0 -568
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/class.h +0 -283
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/error.h +0 -216
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/fixnum.h +0 -184
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/gc.h +0 -334
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/hash.h +0 -191
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/imemo.h +0 -260
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/io.h +0 -140
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/parse.h +0 -117
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/ractor.h +0 -6
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/sanitizers.h +0 -297
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/string.h +0 -182
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/thread.h +0 -79
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/internal/vm.h +0 -137
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/known_errors.inc +0 -1419
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/method.h +0 -255
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/optunifs.inc +0 -43
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/parse.h +0 -243
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/ast.h +0 -6245
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/defines.h +0 -206
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/diagnostic.h +0 -433
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/extension.h +0 -19
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/node.h +0 -150
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/options.h +0 -305
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/parser.h +0 -891
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/regexp.h +0 -33
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/static_literals.h +0 -120
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_char.h +0 -205
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_constant_pool.h +0 -226
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_integer.h +0 -119
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_newline_list.h +0 -102
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string.h +0 -174
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string_list.h +0 -44
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism/version.h +0 -29
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/prism_compile.h +0 -88
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/ractor_core.h +0 -393
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/regint.h +0 -1010
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/revision.h +0 -5
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/rubyparser.h +0 -1430
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/shape.h +0 -233
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/symbol.h +0 -118
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/thread_pthread.h +0 -166
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/version.h +0 -69
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm.inc +0 -5643
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_callinfo.h +0 -605
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_core.h +0 -2236
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_insnhelper.h +0 -272
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vm_sync.h +0 -137
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview1/vmtc.inc +0 -253
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/addr2line.h +0 -22
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/builtin.h +0 -119
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/build_assert/build_assert.h +0 -40
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/check_type/check_type.h +0 -63
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/container_of/container_of.h +0 -142
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/list/list.h +0 -791
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ccan/str/str.h +0 -17
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/constant.h +0 -53
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/encindex.h +0 -70
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/eval_intern.h +0 -324
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/hrtime.h +0 -237
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/id_table.h +0 -39
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/bignum.h +0 -244
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/cmdlineopt.h +0 -65
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compar.h +0 -29
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compile.h +0 -34
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/compilers.h +0 -107
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/complex.h +0 -29
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/cont.h +0 -35
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/dir.h +0 -16
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enc.h +0 -19
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/encoding.h +0 -36
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enum.h +0 -18
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/enumerator.h +0 -21
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/eval.h +0 -33
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/file.h +0 -38
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/inits.h +0 -47
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/load.h +0 -18
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/loadpath.h +0 -16
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/math.h +0 -23
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/missing.h +0 -19
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/numeric.h +0 -274
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/object.h +0 -63
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/proc.h +0 -30
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/process.h +0 -124
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/random.h +0 -17
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/range.h +0 -40
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/rational.h +0 -71
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/re.h +0 -28
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/ruby_parser.h +0 -102
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/serial.h +0 -23
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/signal.h +0 -24
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/st.h +0 -11
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/static_assert.h +0 -16
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/struct.h +0 -127
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/symbol.h +0 -45
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/time.h +0 -34
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/transcode.h +0 -23
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/util.h +0 -27
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/variable.h +0 -72
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal/warnings.h +0 -16
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/internal.h +0 -108
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/iseq.h +0 -340
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/node.h +0 -111
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/node_name.inc +0 -224
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/optinsn.inc +0 -128
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_bits.h +0 -564
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_node.h +0 -32
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_st.h +0 -162
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/parser_value.h +0 -106
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/encoding.h +0 -283
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/pack.h +0 -163
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/prettyprint.h +0 -34
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/prism.h +0 -336
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_buffer.h +0 -218
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_list.h +0 -97
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_memchr.h +0 -29
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_strncasecmp.h +0 -32
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/prism/util/pm_strpbrk.h +0 -46
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/probes_helper.h +0 -42
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/regenc.h +0 -254
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/regparse.h +0 -371
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/revision.h +0 -5
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit.h +0 -101
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/rjit_c.h +0 -165
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ruby_assert.h +0 -14
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/ruby_atomic.h +0 -23
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/siphash.h +0 -48
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/thread_none.h +0 -21
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/thread_win32.h +0 -58
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/timev.h +0 -58
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/transcode_data.h +0 -138
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/variable.h +0 -39
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_call_iseq_optimized.inc +0 -244
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_debug.h +0 -124
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_exec.h +0 -199
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/vm_opts.h +0 -67
- data/lib/debase/ruby_core_source/ruby-3.4.0-preview2/yjit.h +0 -79
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/addr2line.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/build_assert/build_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/check_type/check_type.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/container_of/container_of.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/list/list.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ccan/str/str.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/constant.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/debug_counter.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/dln.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/encindex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/eval_intern.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/hrtime.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/id_table.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/array.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/bignum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/class.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/cmdlineopt.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/compar.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/compile.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/compilers.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/complex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/cont.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/dir.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/enc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/enum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/enumerator.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/eval.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/file.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/internal/hash.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/inits.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/load.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/loadpath.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/math.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/missing.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/numeric.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/object.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/process.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/random.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/range.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/rational.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/re.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/ruby_parser.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/serial.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/signal.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/st.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/static_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/struct.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/symbol.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/time.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/transcode.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/util.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/variable.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal/warnings.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/internal.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/iseq.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/known_errors.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/node.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/node_name.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/optinsn.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_bits.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_node.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_st.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/parser_value.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/encoding.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/node.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/options.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/pack.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/parser.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/prettyprint.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/regexp.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/static_literals.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_buffer.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_char.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_constant_pool.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_integer.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_list.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_memchr.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_newline_list.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/prism/util/pm_string.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_strncasecmp.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/prism/util/pm_strpbrk.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/probes_helper.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/regenc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/regint.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/regparse.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/rjit.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/rjit_c.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ruby_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/ruby_atomic.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/shape.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/siphash.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/symbol.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/thread_none.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/thread_win32.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/timev.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/transcode_data.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/variable.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_call_iseq_optimized.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_callinfo.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_debug.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_exec.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0}/vm_insnhelper.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0}/vm_opts.h +0 -0
@@ -90,6 +90,7 @@
|
|
90
90
|
|
91
91
|
#define UNSIGNED_INTEGER_MAX(T) ((T)~(T)0)
|
92
92
|
|
93
|
+
#ifndef MUL_OVERFLOW_SIGNED_INTEGER_P
|
93
94
|
#if __has_builtin(__builtin_mul_overflow_p)
|
94
95
|
# define MUL_OVERFLOW_P(a, b) \
|
95
96
|
__builtin_mul_overflow_p((a), (b), (__typeof__(a * b))0)
|
@@ -131,6 +132,87 @@
|
|
131
132
|
# define MUL_OVERFLOW_LONG_P(a, b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, LONG_MIN, LONG_MAX)
|
132
133
|
# define MUL_OVERFLOW_INT_P(a, b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, INT_MIN, INT_MAX)
|
133
134
|
#endif
|
135
|
+
#endif
|
136
|
+
|
137
|
+
#ifndef ADD_OVERFLOW_SIGNED_INTEGER_P
|
138
|
+
#if __has_builtin(__builtin_add_overflow_p)
|
139
|
+
# define ADD_OVERFLOW_P(a, b) \
|
140
|
+
__builtin_add_overflow_p((a), (b), (__typeof__(a * b))0)
|
141
|
+
#elif __has_builtin(__builtin_add_overflow)
|
142
|
+
# define ADD_OVERFLOW_P(a, b) \
|
143
|
+
__extension__ ({ __typeof__(a) c; __builtin_add_overflow((a), (b), &c); })
|
144
|
+
#endif
|
145
|
+
|
146
|
+
#define ADD_OVERFLOW_SIGNED_INTEGER_P(a, b, min, max) ( \
|
147
|
+
(a) > 0 ? (b) > (max) - (a) : (b) < (min) - (a))
|
148
|
+
|
149
|
+
#if __has_builtin(__builtin_add_overflow_p)
|
150
|
+
/* __builtin_add_overflow_p can take bitfield */
|
151
|
+
/* and GCC permits bitfields for integers other than int */
|
152
|
+
# define ADD_OVERFLOW_FIXNUM_P(a, b) \
|
153
|
+
__extension__ ({ \
|
154
|
+
struct { long fixnum : sizeof(long) * CHAR_BIT - 1; } c = { 0 }; \
|
155
|
+
__builtin_add_overflow_p((a), (b), c.fixnum); \
|
156
|
+
})
|
157
|
+
#else
|
158
|
+
# define ADD_OVERFLOW_FIXNUM_P(a, b) \
|
159
|
+
ADD_OVERFLOW_SIGNED_INTEGER_P(a, b, FIXNUM_MIN, FIXNUM_MAX)
|
160
|
+
#endif
|
161
|
+
|
162
|
+
#if defined(ADD_OVERFLOW_P) && defined(USE___BUILTIN_ADD_OVERFLOW_LONG_LONG)
|
163
|
+
# define ADD_OVERFLOW_LONG_LONG_P(a, b) ADD_OVERFLOW_P(a, b)
|
164
|
+
#else
|
165
|
+
# define ADD_OVERFLOW_LONG_LONG_P(a, b) ADD_OVERFLOW_SIGNED_INTEGER_P(a, b, LLONG_MIN, LLONG_MAX)
|
166
|
+
#endif
|
167
|
+
|
168
|
+
#ifdef ADD_OVERFLOW_P
|
169
|
+
# define ADD_OVERFLOW_LONG_P(a, b) ADD_OVERFLOW_P(a, b)
|
170
|
+
# define ADD_OVERFLOW_INT_P(a, b) ADD_OVERFLOW_P(a, b)
|
171
|
+
#else
|
172
|
+
# define ADD_OVERFLOW_LONG_P(a, b) ADD_OVERFLOW_SIGNED_INTEGER_P(a, b, LONG_MIN, LONG_MAX)
|
173
|
+
# define ADD_OVERFLOW_INT_P(a, b) ADD_OVERFLOW_SIGNED_INTEGER_P(a, b, INT_MIN, INT_MAX)
|
174
|
+
#endif
|
175
|
+
#endif
|
176
|
+
|
177
|
+
#ifndef SUB_OVERFLOW_SIGNED_INTEGER_P
|
178
|
+
#if __has_builtin(__builtin_sub_overflow_p)
|
179
|
+
# define SUB_OVERFLOW_P(a, b) \
|
180
|
+
__builtin_sub_overflow_p((a), (b), (__typeof__(a * b))0)
|
181
|
+
#elif __has_builtin(__builtin_sub_overflow)
|
182
|
+
# define SUB_OVERFLOW_P(a, b) \
|
183
|
+
__extension__ ({ __typeof__(a) c; __builtin_sub_overflow((a), (b), &c); })
|
184
|
+
#endif
|
185
|
+
|
186
|
+
#define SUB_OVERFLOW_SIGNED_INTEGER_P(a, b, min, max) ( \
|
187
|
+
(b) > 0 ? (a) < (min) + (b) : (a) > (max) + (b))
|
188
|
+
|
189
|
+
#if __has_builtin(__builtin_sub_overflow_p)
|
190
|
+
/* __builtin_sub_overflow_p can take bitfield */
|
191
|
+
/* and GCC permits bitfields for integers other than int */
|
192
|
+
# define SUB_OVERFLOW_FIXNUM_P(a, b) \
|
193
|
+
__extension__ ({ \
|
194
|
+
struct { long fixnum : sizeof(long) * CHAR_BIT - 1; } c = { 0 }; \
|
195
|
+
__builtin_sub_overflow_p((a), (b), c.fixnum); \
|
196
|
+
})
|
197
|
+
#else
|
198
|
+
# define SUB_OVERFLOW_FIXNUM_P(a, b) \
|
199
|
+
SUB_OVERFLOW_SIGNED_INTEGER_P(a, b, FIXNUM_MIN, FIXNUM_MAX)
|
200
|
+
#endif
|
201
|
+
|
202
|
+
#if defined(SUB_OVERFLOW_P) && defined(USE___BUILTIN_SUB_OVERFLOW_LONG_LONG)
|
203
|
+
# define SUB_OVERFLOW_LONG_LONG_P(a, b) SUB_OVERFLOW_P(a, b)
|
204
|
+
#else
|
205
|
+
# define SUB_OVERFLOW_LONG_LONG_P(a, b) SUB_OVERFLOW_SIGNED_INTEGER_P(a, b, LLONG_MIN, LLONG_MAX)
|
206
|
+
#endif
|
207
|
+
|
208
|
+
#ifdef SUB_OVERFLOW_P
|
209
|
+
# define SUB_OVERFLOW_LONG_P(a, b) SUB_OVERFLOW_P(a, b)
|
210
|
+
# define SUB_OVERFLOW_INT_P(a, b) SUB_OVERFLOW_P(a, b)
|
211
|
+
#else
|
212
|
+
# define SUB_OVERFLOW_LONG_P(a, b) SUB_OVERFLOW_SIGNED_INTEGER_P(a, b, LONG_MIN, LONG_MAX)
|
213
|
+
# define SUB_OVERFLOW_INT_P(a, b) SUB_OVERFLOW_SIGNED_INTEGER_P(a, b, INT_MIN, INT_MAX)
|
214
|
+
#endif
|
215
|
+
#endif
|
134
216
|
|
135
217
|
#ifdef HAVE_UINT128_T
|
136
218
|
# define bit_length(x) \
|
@@ -28,6 +28,8 @@ int rb_encdb_dummy(const char *name);
|
|
28
28
|
void rb_encdb_declare(const char *name);
|
29
29
|
void rb_enc_set_base(const char *name, const char *orig);
|
30
30
|
int rb_enc_set_dummy(int index);
|
31
|
+
void rb_enc_raw_set(VALUE obj, rb_encoding *enc);
|
32
|
+
|
31
33
|
PUREFUNC(int rb_data_is_encoding(VALUE obj));
|
32
34
|
|
33
35
|
/* vm.c */
|
@@ -72,6 +72,7 @@ const char *rb_builtin_type_name(int t);
|
|
72
72
|
const char *rb_builtin_class_name(VALUE x);
|
73
73
|
PRINTF_ARGS(void rb_warn_deprecated(const char *fmt, const char *suggest, ...), 1, 3);
|
74
74
|
PRINTF_ARGS(void rb_warn_deprecated_to_remove(const char *removal, const char *fmt, const char *suggest, ...), 2, 4);
|
75
|
+
PRINTF_ARGS(void rb_warn_reserved_name(const char *removal, const char *fmt, ...), 2, 3);
|
75
76
|
#if RUBY_DEBUG
|
76
77
|
# include "ruby/version.h"
|
77
78
|
# define RUBY_VERSION_SINCE(major, minor) (RUBY_API_VERSION_CODE >= (major * 10000) + (minor) * 100)
|
@@ -110,6 +111,14 @@ rb_deprecated_method_to_be_removed(const char *removal)
|
|
110
111
|
RBIMPL_ATTR_DIAGNOSE_IF(RUBY_VERSION_STRING_SINCE(removal), "deprecated method to be removed", "error")
|
111
112
|
{
|
112
113
|
}
|
114
|
+
|
115
|
+
RBIMPL_ATTR_FORCEINLINE()
|
116
|
+
static void
|
117
|
+
rb_diagnose_reserved_name_at(const char *coming)
|
118
|
+
RBIMPL_ATTR_DIAGNOSE_IF(!RUBY_VERSION_isdigit(coming[0]), "malformed version number", "error")
|
119
|
+
RBIMPL_ATTR_DIAGNOSE_IF(RUBY_VERSION_STRING_SINCE(coming), "reserved name already in use", "error")
|
120
|
+
{
|
121
|
+
}
|
113
122
|
# else
|
114
123
|
RBIMPL_ATTR_ERROR(("deprecated"))
|
115
124
|
void rb_deprecated_method_to_be_removed(const char *);
|
@@ -117,16 +126,32 @@ void rb_deprecated_method_to_be_removed(const char *);
|
|
117
126
|
(sizeof(char[1-2*(!RUBY_VERSION_isdigit(removal[0]) || RUBY_VERSION_STRING_SINCE(removal))])!=1 ? \
|
118
127
|
rb_deprecated_method_to_be_removed(removal) : \
|
119
128
|
RBIMPL_ASSERT_NOTHING)
|
129
|
+
|
130
|
+
RBIMPL_ATTR_ERROR(("deprecated"))
|
131
|
+
void rb_diagnose_reserved_name_at(const char *);
|
132
|
+
# define rb_diagnose_reserved_name_at(coming) \
|
133
|
+
(sizeof(char[1-2*(!RUBY_VERSION_isdigit(coming[0]) || RUBY_VERSION_STRING_SINCE(coming))])!=1 ? \
|
134
|
+
rb_diagnose_reserved_name_at(coming) : \
|
135
|
+
RBIMPL_ASSERT_NOTHING)
|
136
|
+
|
120
137
|
# endif
|
121
138
|
# define rb_warn_deprecated_to_remove_at(removal, ...) \
|
122
139
|
(rb_deprecated_method_to_be_removed(#removal), \
|
123
140
|
rb_warn_deprecated_to_remove(#removal, __VA_ARGS__))
|
141
|
+
|
142
|
+
# define rb_warn_reserved_name_at(coming, ...) \
|
143
|
+
(rb_diagnose_reserved_name_at(#coming), \
|
144
|
+
rb_warn_reserved_name(#coming, __VA_ARGS__))
|
124
145
|
# endif
|
125
146
|
#endif
|
126
147
|
#ifndef rb_warn_deprecated_to_remove_at
|
127
148
|
# define rb_warn_deprecated_to_remove_at(removal, ...) \
|
128
149
|
rb_warn_deprecated_to_remove(#removal, __VA_ARGS__)
|
129
150
|
#endif
|
151
|
+
#ifndef rb_warn_reserved_name_at
|
152
|
+
# define rb_warn_reserved_name_at(removal, ...) \
|
153
|
+
rb_warn_reserved_name(#removal, __VA_ARGS__)
|
154
|
+
#endif
|
130
155
|
#ifndef RUBY_VERSION_SINCE
|
131
156
|
# define RUBY_VERSION_SINCE(major, minor) 0
|
132
157
|
#endif
|
@@ -160,6 +185,7 @@ NORETURN(static inline void rb_key_err_raise(VALUE mesg, VALUE recv, VALUE name)
|
|
160
185
|
static inline void Check_Type(VALUE v, enum ruby_value_type t);
|
161
186
|
static inline bool rb_typeddata_is_instance_of_inline(VALUE obj, const rb_data_type_t *data_type);
|
162
187
|
#define rb_typeddata_is_instance_of rb_typeddata_is_instance_of_inline
|
188
|
+
void rb_bug_without_die(const char *fmt, ...);
|
163
189
|
|
164
190
|
RUBY_SYMBOL_EXPORT_BEGIN
|
165
191
|
/* error.c (export) */
|
@@ -10,6 +10,7 @@
|
|
10
10
|
*/
|
11
11
|
#include "ruby/internal/config.h" /* for HAVE_LONG_LONG */
|
12
12
|
#include <limits.h> /* for CHAR_BIT */
|
13
|
+
#include "internal/bits.h" /* for MUL_OVERFLOW_FIXNUM_P */
|
13
14
|
#include "internal/compilers.h" /* for __has_builtin */
|
14
15
|
#include "ruby/internal/stdbool.h" /* for bool */
|
15
16
|
#include "ruby/intern.h" /* for rb_big_mul */
|
@@ -16,8 +16,8 @@
|
|
16
16
|
#include "ruby/ruby.h" /* for rb_event_flag_t */
|
17
17
|
#include "vm_core.h" /* for GET_EC() */
|
18
18
|
|
19
|
-
#ifndef
|
20
|
-
# define
|
19
|
+
#ifndef USE_MODULAR_GC
|
20
|
+
# define USE_MODULAR_GC 0
|
21
21
|
#endif
|
22
22
|
|
23
23
|
#if defined(__x86_64__) && !defined(_ILP32) && defined(__GNUC__)
|
@@ -175,7 +175,6 @@ struct rb_objspace; /* in vm_core.h */
|
|
175
175
|
if (_already_disabled == Qfalse) rb_gc_enable()
|
176
176
|
|
177
177
|
/* gc.c */
|
178
|
-
extern int ruby_disable_gc;
|
179
178
|
RUBY_ATTR_MALLOC void *ruby_mimmalloc(size_t size);
|
180
179
|
RUBY_ATTR_MALLOC void *ruby_mimcalloc(size_t num, size_t size);
|
181
180
|
void ruby_mimfree(void *ptr);
|
@@ -197,7 +196,7 @@ static inline void *ruby_sized_xrealloc_inlined(void *ptr, size_t new_size, size
|
|
197
196
|
static inline void *ruby_sized_xrealloc2_inlined(void *ptr, size_t new_count, size_t elemsiz, size_t old_count) RUBY_ATTR_RETURNS_NONNULL RUBY_ATTR_ALLOC_SIZE((2, 3));
|
198
197
|
static inline void ruby_sized_xfree_inlined(void *ptr, size_t size);
|
199
198
|
|
200
|
-
void *rb_gc_ractor_cache_alloc(
|
199
|
+
void *rb_gc_ractor_cache_alloc(rb_ractor_t *ractor);
|
201
200
|
void rb_gc_ractor_cache_free(void *cache);
|
202
201
|
|
203
202
|
bool rb_gc_size_allocatable_p(size_t size);
|
@@ -213,6 +212,9 @@ void rb_gc_ref_update_table_values_only(st_table *tbl);
|
|
213
212
|
|
214
213
|
void rb_gc_initial_stress_set(VALUE flag);
|
215
214
|
|
215
|
+
void rb_gc_before_fork(void);
|
216
|
+
void rb_gc_after_fork(rb_pid_t pid);
|
217
|
+
|
216
218
|
#define rb_gc_mark_and_move_ptr(ptr) do { \
|
217
219
|
VALUE _obj = (VALUE)*(ptr); \
|
218
220
|
rb_gc_mark_and_move(&_obj); \
|
@@ -225,6 +227,7 @@ void rb_objspace_reachable_objects_from(VALUE obj, void (func)(VALUE, void *), v
|
|
225
227
|
void rb_objspace_reachable_objects_from_root(void (func)(const char *category, VALUE, void *), void *data);
|
226
228
|
int rb_objspace_internal_object_p(VALUE obj);
|
227
229
|
int rb_objspace_garbage_object_p(VALUE obj);
|
230
|
+
bool rb_gc_pointer_to_heap_p(VALUE obj);
|
228
231
|
|
229
232
|
void rb_objspace_each_objects(
|
230
233
|
int (*callback)(void *start, void *end, size_t stride, void *data),
|
@@ -234,6 +237,7 @@ size_t rb_gc_obj_slot_size(VALUE obj);
|
|
234
237
|
|
235
238
|
VALUE rb_gc_disable_no_rest(void);
|
236
239
|
|
240
|
+
#define RB_GC_MAX_NAME_LEN 20
|
237
241
|
|
238
242
|
/* gc.c (export) */
|
239
243
|
const char *rb_objspace_data_type_name(VALUE obj);
|
@@ -248,14 +252,18 @@ void *ruby_sized_xrealloc(void *ptr, size_t new_size, size_t old_size) RUBY_ATTR
|
|
248
252
|
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));
|
249
253
|
void ruby_sized_xfree(void *x, size_t size);
|
250
254
|
|
251
|
-
|
252
|
-
|
255
|
+
const char *rb_gc_active_gc_name(void);
|
256
|
+
int rb_gc_modular_gc_loaded_p(void);
|
257
|
+
|
258
|
+
#if USE_MODULAR_GC
|
259
|
+
void ruby_load_modular_gc_from_argv(int argc, char **argv);
|
253
260
|
#endif
|
254
261
|
RUBY_SYMBOL_EXPORT_END
|
255
262
|
|
256
263
|
int rb_ec_stack_check(struct rb_execution_context_struct *ec);
|
257
264
|
void rb_gc_writebarrier_remember(VALUE obj);
|
258
265
|
const char *rb_obj_info(VALUE obj);
|
266
|
+
void ruby_annotate_mmap(const void *addr, unsigned long size, const char *name);
|
259
267
|
|
260
268
|
#if defined(HAVE_MALLOC_USABLE_SIZE) || defined(HAVE_MALLOC_SIZE) || defined(_WIN32)
|
261
269
|
|
@@ -79,7 +79,12 @@ struct vm_ifunc_argc {
|
|
79
79
|
#endif
|
80
80
|
};
|
81
81
|
|
82
|
-
/*! IFUNC (Internal FUNCtion)
|
82
|
+
/*! IFUNC (Internal FUNCtion)
|
83
|
+
*
|
84
|
+
* Bookkeeping for converting a C function and some closed-over data into a
|
85
|
+
* block passable to methods. Like Ruby Proc, but not directly accessible at
|
86
|
+
* Ruby level since this is an imemo. See rb_block_call() and friends.
|
87
|
+
*/
|
83
88
|
struct vm_ifunc {
|
84
89
|
VALUE flags;
|
85
90
|
VALUE *svar_lep;
|
@@ -15,7 +15,7 @@ struct rb_io;
|
|
15
15
|
|
16
16
|
#include "ruby/io.h" /* for rb_io_t */
|
17
17
|
|
18
|
-
#define IO_WITHOUT_GVL(func, arg)
|
18
|
+
#define IO_WITHOUT_GVL(func, arg) rb_nogvl(func, arg, RUBY_UBF_IO, 0, RB_NOGVL_OFFLOAD_SAFE)
|
19
19
|
#define IO_WITHOUT_GVL_INT(func, arg) (int)(VALUE)IO_WITHOUT_GVL(func, arg)
|
20
20
|
|
21
21
|
/** Ruby's IO, metadata and buffers. */
|
@@ -79,8 +79,9 @@ void rb_parser_string_free(rb_parser_t *p, rb_parser_string_t *str);
|
|
79
79
|
int rb_parser_dvar_defined_ref(struct parser_params*, ID, ID**);
|
80
80
|
ID rb_parser_internal_id(struct parser_params*);
|
81
81
|
int rb_parser_reg_fragment_check(struct parser_params*, rb_parser_string_t*, int);
|
82
|
-
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);
|
82
|
+
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, rb_parser_assignable_func assignable);
|
83
83
|
int rb_parser_local_defined(struct parser_params *p, ID id, const struct rb_iseq_struct *iseq);
|
84
|
+
NODE *rb_parser_assignable(struct parser_params *p, ID id, NODE *val, const YYLTYPE *loc);
|
84
85
|
|
85
86
|
RUBY_SYMBOL_EXPORT_END
|
86
87
|
|
@@ -23,6 +23,7 @@ VALUE rb_block_to_s(VALUE self, const struct rb_block *block, const char *additi
|
|
23
23
|
VALUE rb_callable_receiver(VALUE);
|
24
24
|
|
25
25
|
VALUE rb_func_proc_new(rb_block_call_func_t func, VALUE val);
|
26
|
+
VALUE rb_func_proc_dup(VALUE src_obj);
|
26
27
|
VALUE rb_func_lambda_new(rb_block_call_func_t func, VALUE val, int min_argc, int max_argc);
|
27
28
|
VALUE rb_iseq_location(const struct rb_iseq_struct *iseq);
|
28
29
|
VALUE rb_sym_to_proc(VALUE sym);
|
@@ -16,7 +16,7 @@
|
|
16
16
|
#endif
|
17
17
|
|
18
18
|
#ifdef HAVE_SANITIZER_ASAN_INTERFACE_H
|
19
|
-
# if __has_feature(address_sanitizer)
|
19
|
+
# if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
|
20
20
|
# define RUBY_ASAN_ENABLED
|
21
21
|
# include <sanitizer/asan_interface.h>
|
22
22
|
# endif
|
@@ -39,6 +39,9 @@
|
|
39
39
|
#elif defined(RUBY_ASAN_ENABLED)
|
40
40
|
# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \
|
41
41
|
__attribute__((__no_sanitize__("address"), __noinline__)) x
|
42
|
+
#elif defined(RUBY_MSAN_ENABLED)
|
43
|
+
# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \
|
44
|
+
__attribute__((__no_sanitize__("memory"), __noinline__)) x
|
42
45
|
#elif defined(NO_SANITIZE_ADDRESS)
|
43
46
|
# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \
|
44
47
|
NO_SANITIZE_ADDRESS(NOINLINE(x))
|
@@ -54,10 +57,11 @@
|
|
54
57
|
# include "internal/warnings.h"
|
55
58
|
# undef NO_SANITIZE
|
56
59
|
# define NO_SANITIZE(x, y) \
|
57
|
-
COMPILER_WARNING_PUSH
|
58
|
-
COMPILER_WARNING_IGNORED(-Wattributes)
|
60
|
+
COMPILER_WARNING_PUSH \
|
61
|
+
COMPILER_WARNING_IGNORED(-Wattributes) \
|
59
62
|
__attribute__((__no_sanitize__(x))) y; \
|
60
|
-
COMPILER_WARNING_POP
|
63
|
+
COMPILER_WARNING_POP \
|
64
|
+
y
|
61
65
|
#endif
|
62
66
|
|
63
67
|
#ifndef NO_SANITIZE
|
@@ -115,26 +119,22 @@ asan_poison_memory_region(const volatile void *ptr, size_t size)
|
|
115
119
|
__asan_poison_memory_region(ptr, size);
|
116
120
|
}
|
117
121
|
|
118
|
-
/**
|
119
|
-
* This is a variant of asan_poison_memory_region that takes a VALUE.
|
120
|
-
*
|
121
|
-
* @param[in] obj target object.
|
122
|
-
*/
|
123
|
-
static inline void
|
124
|
-
asan_poison_object(VALUE obj)
|
125
|
-
{
|
126
|
-
MAYBE_UNUSED(struct RVALUE *) ptr = (void *)obj;
|
127
|
-
asan_poison_memory_region(ptr, SIZEOF_VALUE);
|
128
|
-
}
|
129
|
-
|
130
122
|
#ifdef RUBY_ASAN_ENABLED
|
131
123
|
#define asan_poison_object_if(ptr, obj) do { \
|
132
|
-
if (ptr)
|
124
|
+
if (ptr) rb_asan_poison_object(obj); \
|
133
125
|
} while (0)
|
134
126
|
#else
|
135
127
|
#define asan_poison_object_if(ptr, obj) ((void)(ptr), (void)(obj))
|
136
128
|
#endif
|
137
129
|
|
130
|
+
RUBY_SYMBOL_EXPORT_BEGIN
|
131
|
+
/**
|
132
|
+
* This is a variant of asan_poison_memory_region that takes a VALUE.
|
133
|
+
*
|
134
|
+
* @param[in] obj target object.
|
135
|
+
*/
|
136
|
+
void rb_asan_poison_object(VALUE obj);
|
137
|
+
|
138
138
|
/**
|
139
139
|
* This function predicates if the given object is fully addressable or not.
|
140
140
|
*
|
@@ -142,12 +142,17 @@ asan_poison_object(VALUE obj)
|
|
142
142
|
* @retval 0 the given object is fully addressable.
|
143
143
|
* @retval otherwise pointer to first such byte who is poisoned.
|
144
144
|
*/
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
145
|
+
void *rb_asan_poisoned_object_p(VALUE obj);
|
146
|
+
|
147
|
+
/**
|
148
|
+
* This is a variant of asan_unpoison_memory_region that takes a VALUE.
|
149
|
+
*
|
150
|
+
* @param[in] obj target object.
|
151
|
+
* @param[in] malloc_p if the memory region is like a malloc's return value or not.
|
152
|
+
*/
|
153
|
+
void rb_asan_unpoison_object(VALUE obj, bool newobj_p);
|
154
|
+
|
155
|
+
RUBY_SYMBOL_EXPORT_END
|
151
156
|
|
152
157
|
/**
|
153
158
|
* This function asserts that a (formally poisoned) memory region from ptr to
|
@@ -176,24 +181,11 @@ asan_unpoison_memory_region(const volatile void *ptr, size_t size, bool malloc_p
|
|
176
181
|
}
|
177
182
|
}
|
178
183
|
|
179
|
-
/**
|
180
|
-
* This is a variant of asan_unpoison_memory_region that takes a VALUE.
|
181
|
-
*
|
182
|
-
* @param[in] obj target object.
|
183
|
-
* @param[in] malloc_p if the memory region is like a malloc's return value or not.
|
184
|
-
*/
|
185
|
-
static inline void
|
186
|
-
asan_unpoison_object(VALUE obj, bool newobj_p)
|
187
|
-
{
|
188
|
-
MAYBE_UNUSED(struct RVALUE *) ptr = (void *)obj;
|
189
|
-
asan_unpoison_memory_region(ptr, SIZEOF_VALUE, newobj_p);
|
190
|
-
}
|
191
|
-
|
192
184
|
static inline void *
|
193
185
|
asan_unpoison_object_temporary(VALUE obj)
|
194
186
|
{
|
195
|
-
void *ptr =
|
196
|
-
|
187
|
+
void *ptr = rb_asan_poisoned_object_p(obj);
|
188
|
+
rb_asan_unpoison_object(obj, false);
|
197
189
|
return ptr;
|
198
190
|
}
|
199
191
|
|
@@ -201,7 +193,7 @@ static inline void *
|
|
201
193
|
asan_poison_object_restore(VALUE obj, void *ptr)
|
202
194
|
{
|
203
195
|
if (ptr) {
|
204
|
-
|
196
|
+
rb_asan_poison_object(obj);
|
205
197
|
}
|
206
198
|
return NULL;
|
207
199
|
}
|
@@ -15,9 +15,11 @@
|
|
15
15
|
#include "ruby/encoding.h" /* for rb_encoding */
|
16
16
|
#include "ruby/ruby.h" /* for VALUE */
|
17
17
|
|
18
|
-
#define
|
19
|
-
#define
|
20
|
-
#define STR_CHILLED
|
18
|
+
#define STR_SHARED FL_USER0 /* = ELTS_SHARED */
|
19
|
+
#define STR_NOEMBED FL_USER1
|
20
|
+
#define STR_CHILLED (FL_USER2 | FL_USER3)
|
21
|
+
#define STR_CHILLED_LITERAL FL_USER2
|
22
|
+
#define STR_CHILLED_SYMBOL_TO_S FL_USER3
|
21
23
|
|
22
24
|
enum ruby_rstring_private_flags {
|
23
25
|
RSTRING_CHILLED = STR_CHILLED,
|
@@ -51,12 +53,18 @@ int rb_enc_str_coderange_scan(VALUE str, rb_encoding *enc);
|
|
51
53
|
int rb_ascii8bit_appendable_encoding_index(rb_encoding *enc, unsigned int code);
|
52
54
|
VALUE rb_str_include(VALUE str, VALUE arg);
|
53
55
|
VALUE rb_str_byte_substr(VALUE str, VALUE beg, VALUE len);
|
56
|
+
VALUE rb_str_substr_two_fixnums(VALUE str, VALUE beg, VALUE len, int empty);
|
54
57
|
VALUE rb_str_tmp_frozen_no_embed_acquire(VALUE str);
|
55
58
|
void rb_str_make_embedded(VALUE);
|
56
59
|
VALUE rb_str_upto_each(VALUE, VALUE, int, int (*each)(VALUE, VALUE), VALUE);
|
57
60
|
size_t rb_str_size_as_embedded(VALUE);
|
58
61
|
bool rb_str_reembeddable_p(VALUE);
|
59
62
|
VALUE rb_str_upto_endless_each(VALUE, int (*each)(VALUE, VALUE), VALUE);
|
63
|
+
VALUE rb_str_with_debug_created_info(VALUE, VALUE, int);
|
64
|
+
|
65
|
+
/* error.c */
|
66
|
+
void rb_warn_unchilled_literal(VALUE str);
|
67
|
+
void rb_warn_unchilled_symbol_to_s(VALUE str);
|
60
68
|
|
61
69
|
static inline bool STR_EMBED_P(VALUE str);
|
62
70
|
static inline bool STR_SHARED_P(VALUE str);
|
@@ -123,14 +131,18 @@ CHILLED_STRING_P(VALUE obj)
|
|
123
131
|
static inline void
|
124
132
|
CHILLED_STRING_MUTATED(VALUE str)
|
125
133
|
{
|
134
|
+
VALUE chilled_reason = RB_FL_TEST_RAW(str, STR_CHILLED);
|
126
135
|
FL_UNSET_RAW(str, STR_CHILLED);
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
136
|
+
switch (chilled_reason) {
|
137
|
+
case STR_CHILLED_SYMBOL_TO_S:
|
138
|
+
rb_warn_unchilled_symbol_to_s(str);
|
139
|
+
break;
|
140
|
+
case STR_CHILLED_LITERAL:
|
141
|
+
rb_warn_unchilled_literal(str);
|
142
|
+
break;
|
143
|
+
default:
|
144
|
+
rb_bug("RString was chilled for multiple reasons");
|
145
|
+
}
|
134
146
|
}
|
135
147
|
|
136
148
|
static inline bool
|
@@ -66,6 +66,8 @@ struct rb_io_close_wait_list {
|
|
66
66
|
int rb_notify_fd_close(int fd, struct rb_io_close_wait_list *busy);
|
67
67
|
void rb_notify_fd_close_wait(struct rb_io_close_wait_list *busy);
|
68
68
|
|
69
|
+
void rb_ec_check_ints(struct rb_execution_context_struct *ec);
|
70
|
+
|
69
71
|
RUBY_SYMBOL_EXPORT_BEGIN
|
70
72
|
|
71
73
|
void *rb_thread_prevent_fork(void *(*func)(void *), void *data); /* for ext/socket/raddrinfo.c */
|
@@ -82,4 +84,25 @@ RUBY_SYMBOL_EXPORT_END
|
|
82
84
|
int rb_threadptr_execute_interrupts(struct rb_thread_struct *th, int blocking_timing);
|
83
85
|
bool rb_thread_mn_schedulable(VALUE thread);
|
84
86
|
|
87
|
+
// interrupt exec
|
88
|
+
|
89
|
+
typedef VALUE (rb_interrupt_exec_func_t)(void *data);
|
90
|
+
|
91
|
+
enum rb_interrupt_exec_flag {
|
92
|
+
rb_interrupt_exec_flag_none = 0x00,
|
93
|
+
rb_interrupt_exec_flag_value_data = 0x01,
|
94
|
+
};
|
95
|
+
|
96
|
+
// interrupt the target_th and run func.
|
97
|
+
struct rb_ractor_struct;
|
98
|
+
|
99
|
+
void rb_threadptr_interrupt_exec(struct rb_thread_struct *target_th,
|
100
|
+
rb_interrupt_exec_func_t *func, void *data, enum rb_interrupt_exec_flag flags);
|
101
|
+
|
102
|
+
// create a thread in the target_r and run func on the created thread.
|
103
|
+
void rb_ractor_interrupt_exec(struct rb_ractor_struct *target_r,
|
104
|
+
rb_interrupt_exec_func_t *func, void *data, enum rb_interrupt_exec_flag flags);
|
105
|
+
|
106
|
+
void rb_threadptr_interrupt_exec_task_mark(struct rb_thread_struct *th);
|
107
|
+
|
85
108
|
#endif /* INTERNAL_THREAD_H */
|
@@ -77,6 +77,7 @@ VALUE rb_lambda_call(VALUE obj, ID mid, int argc, const VALUE *argv,
|
|
77
77
|
void rb_check_stack_overflow(void);
|
78
78
|
#define RB_BLOCK_NO_USE_PACKED_ARGS 2
|
79
79
|
VALUE rb_block_call2(VALUE obj, ID mid, int argc, const VALUE *argv, rb_block_call_func_t bl_proc, VALUE data2, long flags);
|
80
|
+
struct vm_ifunc *rb_current_ifunc(void);
|
80
81
|
|
81
82
|
#if USE_YJIT
|
82
83
|
/* vm_exec.c */
|
@@ -96,7 +97,6 @@ struct rb_iseq_struct;
|
|
96
97
|
const struct rb_callcache *rb_vm_search_method_slowpath(const struct rb_callinfo *ci, VALUE klass);
|
97
98
|
|
98
99
|
/* vm_method.c */
|
99
|
-
struct rb_execution_context_struct;
|
100
100
|
int rb_ec_obj_respond_to(struct rb_execution_context_struct *ec, VALUE obj, ID id, int priv);
|
101
101
|
|
102
102
|
void rb_clear_constant_cache(void);
|
@@ -237,6 +237,7 @@ st_index_t rb_hash_method_entry(st_index_t hash, const rb_method_entry_t *me);
|
|
237
237
|
|
238
238
|
VALUE rb_method_entry_location(const rb_method_entry_t *me);
|
239
239
|
|
240
|
+
void rb_free_method_entry_vm_weak_references(const rb_method_entry_t *me);
|
240
241
|
void rb_free_method_entry(const rb_method_entry_t *me);
|
241
242
|
|
242
243
|
const rb_method_entry_t *rb_method_entry_clone(const rb_method_entry_t *me);
|
@@ -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[220];
|
42
42
|
|
43
43
|
ASSERT_VM_INSTRUCTION_SIZE(unified_insns_data);
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/* A Bison parser, made by Lrama 0.6.
|
1
|
+
/* A Bison parser, made by Lrama 0.6.11. */
|
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 2664 "parse.y"
|
194
194
|
|
195
195
|
NODE *node;
|
196
196
|
rb_node_fcall_t *node_fcall;
|