debase-ruby_core_source 3.3.6 → 4.0.0.preview2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ruby-version +1 -0
- data/CHANGELOG.md +10 -0
- data/Rakefile +3 -1
- data/debase-ruby_core_source.gemspec +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/builtin.h +7 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/darray.h +1 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/id.h +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/insns.inc +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/insns_info.inc +310 -175
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/basic_operators.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/bits.h +82 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/encoding.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/error.h +26 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/fixnum.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/gc.h +14 -6
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/imemo.h +6 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/io.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/parse.h +2 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/proc.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/ractor.h +4 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/sanitizers.h +31 -39
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/string.h +22 -10
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/thread.h +23 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/vm.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/method.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/optunifs.inc +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/parse.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/ast.h +427 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/defines.h +8 -7
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/diagnostic.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/extension.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/prism.h +47 -11
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/version.h +2 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism_compile.h +5 -5
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/ractor_core.h +6 -6
- data/lib/debase/ruby_core_source/ruby-3.4.0-p-1/revision.h +5 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/rubyparser.h +3 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/thread_pthread.h +0 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/version.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm.inc +151 -88
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_core.h +40 -12
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_sync.h +3 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vmtc.inc +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/yjit.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/builtin.h +7 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/darray.h +101 -14
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/debug_counter.h +6 -4
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/dln.h +1 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/eval_intern.h +7 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/id.h +16 -5
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/id_table.h +15 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/insns.inc +49 -6
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/insns_info.inc +2432 -721
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/array.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/basic_operators.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/bignum.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/bits.h +82 -0
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/box.h +81 -0
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/class.h +805 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/cmdlineopt.h +3 -4
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/concurrent_set.h +21 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/encoding.h +4 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/error.h +35 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/eval.h +8 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/fixnum.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/gc.h +54 -30
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/hash.h +3 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/imemo.h +94 -32
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/inits.h +4 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/io.h +30 -7
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/load.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/numeric.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/object.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/parse.h +18 -4
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/proc.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/ractor.h +4 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/re.h +7 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/sanitizers.h +88 -39
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/internal/set_table.h +70 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/signal.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/st.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/string.h +39 -18
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/struct.h +38 -5
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/symbol.h +4 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/thread.h +42 -9
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/time.h +4 -1
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/variable.h +13 -11
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/internal/vm.h +6 -7
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal.h +0 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/iseq.h +19 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/known_errors.inc +103 -103
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/method.h +18 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/node.h +14 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/optunifs.inc +1 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/parse.h +37 -36
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/ast.h +2495 -507
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/defines.h +61 -7
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/diagnostic.h +31 -6
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/extension.h +5 -5
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/node.h +0 -21
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/options.h +186 -6
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/parser.h +85 -40
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/prism.h +88 -16
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/prism/regexp.h +43 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/static_literals.h +3 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_buffer.h +18 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_char.h +1 -2
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_constant_pool.h +0 -8
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_integer.h +26 -15
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_list.h +6 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_newline_list.h +11 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/util/pm_string.h +39 -13
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism/version.h +3 -3
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/prism_compile.h +30 -12
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/ractor_core.h +47 -134
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/regenc.h +9 -4
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/regint.h +0 -5
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/regparse.h +2 -2
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/revision.h +5 -0
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/ruby_atomic.h +66 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/rubyparser.h +214 -250
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/shape.h +444 -0
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/symbol.h +8 -10
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/thread_pthread.h +36 -27
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/variable.h +8 -20
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm.inc +884 -344
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_callinfo.h +110 -75
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_core.h +220 -106
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_exec.h +15 -4
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_insnhelper.h +11 -6
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_sync.h +23 -4
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vmtc.inc +42 -6
- data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/yjit.h +5 -3
- data/lib/debase/ruby_core_source/ruby-4.0.0-preview2/zjit.h +47 -0
- data/lib/debase/ruby_core_source/version.rb +1 -1
- data/lib/debase/ruby_core_source.rb +4 -2
- data/test/deduce_source_dir_test.rb +31 -0
- metadata +307 -293
- 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/prism/regexp.h +0 -33
- 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/revision.h +0 -5
- 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-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_atomic.h +0 -23
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/addr2line.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/build_assert/build_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/check_type/check_type.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/container_of/container_of.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/list/list.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ccan/str/str.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/constant.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/debug_counter.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/dln.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/encindex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/eval_intern.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/hrtime.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/id_table.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/array.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/bignum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/class.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/cmdlineopt.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/compar.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/compile.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/compilers.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/complex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/cont.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/dir.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/enc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/enum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/enumerator.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/eval.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/file.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/internal/hash.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/inits.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/load.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/loadpath.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/math.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/missing.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/numeric.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/object.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/process.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/random.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/range.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/rational.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/re.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/ruby_parser.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/serial.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/signal.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/st.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/static_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/struct.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/symbol.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/time.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/transcode.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/util.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/variable.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal/warnings.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/internal.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/iseq.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/known_errors.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/node.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/node_name.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/optinsn.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_bits.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_node.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_st.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/parser_value.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/encoding.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/node.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/options.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/pack.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/parser.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/prettyprint.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/regexp.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/static_literals.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_buffer.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_char.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_constant_pool.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_integer.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_list.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_memchr.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_newline_list.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/prism/util/pm_string.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_strncasecmp.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/prism/util/pm_strpbrk.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/probes_helper.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/regenc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/regint.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/regparse.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/rjit.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/rjit_c.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ruby_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/ruby_atomic.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/shape.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/siphash.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/symbol.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/thread_none.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/thread_win32.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/timev.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/transcode_data.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/variable.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_call_iseq_optimized.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_callinfo.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_debug.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_exec.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p-1}/vm_insnhelper.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-p-1}/vm_opts.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/addr2line.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/build_assert/build_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/check_type/check_type.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/container_of/container_of.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/list/list.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ccan/str/str.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/constant.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/encindex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/hrtime.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/compar.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/compile.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/compilers.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/complex.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/cont.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/dir.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/enc.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/enum.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/enumerator.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/file.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/loadpath.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/math.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/missing.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/process.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/random.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/range.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/rational.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/ruby_parser.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/serial.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/static_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/transcode.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/util.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/internal/warnings.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/node_name.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/optinsn.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_bits.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_node.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_st.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/parser_value.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/encoding.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/pack.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/prettyprint.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_memchr.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_strncasecmp.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/prism/util/pm_strpbrk.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/probes_helper.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/ruby_assert.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/siphash.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/thread_none.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/thread_win32.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/timev.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/transcode_data.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/version.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_call_iseq_optimized.inc +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_debug.h +0 -0
- /data/lib/debase/ruby_core_source/{ruby-3.4.0-preview2 → ruby-4.0.0-preview2}/vm_opts.h +0 -0
|
@@ -175,11 +175,22 @@ default: \
|
|
|
175
175
|
|
|
176
176
|
// Run the JIT from the interpreter
|
|
177
177
|
#define JIT_EXEC(ec, val) do { \
|
|
178
|
-
rb_jit_func_t func; \
|
|
179
178
|
/* don't run tailcalls since that breaks FINISH */ \
|
|
180
|
-
if (UNDEF_P(val) && GET_CFP() != ec->cfp
|
|
181
|
-
|
|
182
|
-
if (
|
|
179
|
+
if (UNDEF_P(val) && GET_CFP() != ec->cfp) { \
|
|
180
|
+
rb_zjit_func_t zjit_entry; \
|
|
181
|
+
if (rb_yjit_enabled_p) { \
|
|
182
|
+
rb_jit_func_t func = yjit_compile(ec); \
|
|
183
|
+
if (func) { \
|
|
184
|
+
val = func(ec, ec->cfp); \
|
|
185
|
+
if (ec->tag->state) THROW_EXCEPTION(val); \
|
|
186
|
+
} \
|
|
187
|
+
} \
|
|
188
|
+
else if ((zjit_entry = rb_zjit_entry)) { \
|
|
189
|
+
rb_jit_func_t func = zjit_compile(ec); \
|
|
190
|
+
if (func) { \
|
|
191
|
+
val = zjit_entry(ec, ec->cfp, func); \
|
|
192
|
+
} \
|
|
193
|
+
} \
|
|
183
194
|
} \
|
|
184
195
|
} while (0)
|
|
185
196
|
|
data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/vm_insnhelper.h
RENAMED
|
@@ -16,11 +16,11 @@ RUBY_EXTERN rb_serial_t ruby_vm_constant_cache_invalidations;
|
|
|
16
16
|
RUBY_EXTERN rb_serial_t ruby_vm_constant_cache_misses;
|
|
17
17
|
RUBY_EXTERN rb_serial_t ruby_vm_global_cvar_state;
|
|
18
18
|
|
|
19
|
-
#if
|
|
20
|
-
// Increment
|
|
19
|
+
#if YJIT_STATS || ZJIT_STATS // We want vm_insn_count only on stats builds.
|
|
20
|
+
// Increment vm_insn_count for --yjit-stats. We increment this even when
|
|
21
21
|
// --yjit or --yjit-stats is not used because branching to skip it is slower.
|
|
22
22
|
// We also don't use ATOMIC_INC for performance, allowing inaccuracy on Ractors.
|
|
23
|
-
#define JIT_COLLECT_USAGE_INSN(insn)
|
|
23
|
+
#define JIT_COLLECT_USAGE_INSN(insn) rb_vm_insn_count++
|
|
24
24
|
#else
|
|
25
25
|
#define JIT_COLLECT_USAGE_INSN(insn) // none
|
|
26
26
|
#endif
|
|
@@ -66,6 +66,11 @@ typedef enum call_type {
|
|
|
66
66
|
CALL_FCALL_KW
|
|
67
67
|
} call_type;
|
|
68
68
|
|
|
69
|
+
struct rb_forwarding_call_data {
|
|
70
|
+
struct rb_call_data cd;
|
|
71
|
+
CALL_INFO caller_ci;
|
|
72
|
+
};
|
|
73
|
+
|
|
69
74
|
#if VM_COLLECT_USAGE_DETAILS
|
|
70
75
|
enum vm_regan_regtype {
|
|
71
76
|
VM_REGAN_PC = 0,
|
|
@@ -139,7 +144,7 @@ CC_SET_FASTPATH(const struct rb_callcache *cc, vm_call_handler func, bool enable
|
|
|
139
144
|
}
|
|
140
145
|
}
|
|
141
146
|
|
|
142
|
-
#define GET_BLOCK_HANDLER() (
|
|
147
|
+
#define GET_BLOCK_HANDLER() VM_CF_BLOCK_HANDLER(GET_CFP())
|
|
143
148
|
|
|
144
149
|
/**********************************************************/
|
|
145
150
|
/* deal with control flow 3: exception */
|
|
@@ -258,8 +263,8 @@ THROW_DATA_CONSUMED_SET(struct vm_throw_data *obj)
|
|
|
258
263
|
static inline bool
|
|
259
264
|
vm_call_cacheable(const struct rb_callinfo *ci, const struct rb_callcache *cc)
|
|
260
265
|
{
|
|
261
|
-
return (vm_ci_flag(ci) & VM_CALL_FCALL) ||
|
|
262
|
-
METHOD_ENTRY_VISI(vm_cc_cme(cc)) != METHOD_VISI_PROTECTED;
|
|
266
|
+
return !(vm_ci_flag(ci) & VM_CALL_FORWARDING) && ((vm_ci_flag(ci) & VM_CALL_FCALL) ||
|
|
267
|
+
METHOD_ENTRY_VISI(vm_cc_cme(cc)) != METHOD_VISI_PROTECTED);
|
|
263
268
|
}
|
|
264
269
|
/* If this returns true, an optimized function returned by `vm_call_iseq_setup_func`
|
|
265
270
|
can be used as a fastpath. */
|
|
@@ -21,9 +21,10 @@ void rb_vm_lock_body(LOCATION_ARGS);
|
|
|
21
21
|
void rb_vm_unlock_body(LOCATION_ARGS);
|
|
22
22
|
|
|
23
23
|
struct rb_ractor_struct;
|
|
24
|
-
void rb_vm_lock_enter_body_cr(struct rb_ractor_struct *cr, unsigned int *lev APPEND_LOCATION_ARGS);
|
|
25
|
-
void rb_vm_lock_enter_body_nb(unsigned int *lev APPEND_LOCATION_ARGS);
|
|
26
|
-
void rb_vm_lock_enter_body(unsigned int *lev APPEND_LOCATION_ARGS);
|
|
24
|
+
NOINLINE(void rb_vm_lock_enter_body_cr(struct rb_ractor_struct *cr, unsigned int *lev APPEND_LOCATION_ARGS));
|
|
25
|
+
NOINLINE(void rb_vm_lock_enter_body_nb(unsigned int *lev APPEND_LOCATION_ARGS));
|
|
26
|
+
NOINLINE(void rb_vm_lock_enter_body(unsigned int *lev APPEND_LOCATION_ARGS));
|
|
27
|
+
void rb_vm_lock_leave_body_nb(unsigned int *lev APPEND_LOCATION_ARGS);
|
|
27
28
|
void rb_vm_lock_leave_body(unsigned int *lev APPEND_LOCATION_ARGS);
|
|
28
29
|
void rb_vm_barrier(void);
|
|
29
30
|
|
|
@@ -86,6 +87,14 @@ rb_vm_lock_enter_nb(unsigned int *lev, const char *file, int line)
|
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
|
|
90
|
+
static inline void
|
|
91
|
+
rb_vm_lock_leave_nb(unsigned int *lev, const char *file, int line)
|
|
92
|
+
{
|
|
93
|
+
if (rb_multi_ractor_p()) {
|
|
94
|
+
rb_vm_lock_leave_body_nb(lev APPEND_LOCATION_PARAMS);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
89
98
|
static inline void
|
|
90
99
|
rb_vm_lock_leave(unsigned int *lev, const char *file, int line)
|
|
91
100
|
{
|
|
@@ -119,18 +128,28 @@ rb_vm_lock_leave_cr(struct rb_ractor_struct *cr, unsigned int *levp, const char
|
|
|
119
128
|
|
|
120
129
|
#define RB_VM_LOCK_ENTER() { unsigned int _lev; RB_VM_LOCK_ENTER_LEV(&_lev);
|
|
121
130
|
#define RB_VM_LOCK_LEAVE() RB_VM_LOCK_LEAVE_LEV(&_lev); }
|
|
131
|
+
#define RB_VM_LOCKING() \
|
|
132
|
+
for (unsigned int vm_locking_level, vm_locking_do = (RB_VM_LOCK_ENTER_LEV(&vm_locking_level), 1); \
|
|
133
|
+
vm_locking_do; RB_VM_LOCK_LEAVE_LEV(&vm_locking_level), vm_locking_do = 0)
|
|
122
134
|
|
|
123
135
|
#define RB_VM_LOCK_ENTER_LEV_NB(levp) rb_vm_lock_enter_nb(levp, __FILE__, __LINE__)
|
|
136
|
+
#define RB_VM_LOCK_LEAVE_LEV_NB(levp) rb_vm_lock_leave_nb(levp, __FILE__, __LINE__)
|
|
124
137
|
#define RB_VM_LOCK_ENTER_NO_BARRIER() { unsigned int _lev; RB_VM_LOCK_ENTER_LEV_NB(&_lev);
|
|
125
|
-
#define RB_VM_LOCK_LEAVE_NO_BARRIER()
|
|
138
|
+
#define RB_VM_LOCK_LEAVE_NO_BARRIER() RB_VM_LOCK_LEAVE_LEV_NB(&_lev); }
|
|
139
|
+
#define RB_VM_LOCKING_NO_BARRIER() \
|
|
140
|
+
for (unsigned int vm_locking_level, vm_locking_do = (RB_VM_LOCK_ENTER_LEV_NB(&vm_locking_level), 1); \
|
|
141
|
+
vm_locking_do; RB_VM_LOCK_LEAVE_LEV_NB(&vm_locking_level), vm_locking_do = 0)
|
|
126
142
|
|
|
127
143
|
#if RUBY_DEBUG > 0
|
|
128
144
|
void RUBY_ASSERT_vm_locking(void);
|
|
145
|
+
void RUBY_ASSERT_vm_locking_with_barrier(void);
|
|
129
146
|
void RUBY_ASSERT_vm_unlocking(void);
|
|
130
147
|
#define ASSERT_vm_locking() RUBY_ASSERT_vm_locking()
|
|
148
|
+
#define ASSERT_vm_locking_with_barrier() RUBY_ASSERT_vm_locking_with_barrier()
|
|
131
149
|
#define ASSERT_vm_unlocking() RUBY_ASSERT_vm_unlocking()
|
|
132
150
|
#else
|
|
133
151
|
#define ASSERT_vm_locking()
|
|
152
|
+
#define ASSERT_vm_locking_with_barrier()
|
|
134
153
|
#define ASSERT_vm_unlocking()
|
|
135
154
|
#endif
|
|
136
155
|
|
|
@@ -64,7 +64,6 @@ static const void *const insns_address_table[] = {
|
|
|
64
64
|
LABEL_PTR(toregexp),
|
|
65
65
|
LABEL_PTR(intern),
|
|
66
66
|
LABEL_PTR(newarray),
|
|
67
|
-
LABEL_PTR(newarraykwsplat),
|
|
68
67
|
LABEL_PTR(pushtoarraykwsplat),
|
|
69
68
|
LABEL_PTR(duparray),
|
|
70
69
|
LABEL_PTR(duphash),
|
|
@@ -93,13 +92,19 @@ static const void *const insns_address_table[] = {
|
|
|
93
92
|
LABEL_PTR(definemethod),
|
|
94
93
|
LABEL_PTR(definesmethod),
|
|
95
94
|
LABEL_PTR(send),
|
|
95
|
+
LABEL_PTR(sendforward),
|
|
96
96
|
LABEL_PTR(opt_send_without_block),
|
|
97
|
+
LABEL_PTR(opt_new),
|
|
97
98
|
LABEL_PTR(objtostring),
|
|
99
|
+
LABEL_PTR(opt_ary_freeze),
|
|
100
|
+
LABEL_PTR(opt_hash_freeze),
|
|
98
101
|
LABEL_PTR(opt_str_freeze),
|
|
99
102
|
LABEL_PTR(opt_nil_p),
|
|
100
103
|
LABEL_PTR(opt_str_uminus),
|
|
104
|
+
LABEL_PTR(opt_duparray_send),
|
|
101
105
|
LABEL_PTR(opt_newarray_send),
|
|
102
106
|
LABEL_PTR(invokesuper),
|
|
107
|
+
LABEL_PTR(invokesuperforward),
|
|
103
108
|
LABEL_PTR(invokeblock),
|
|
104
109
|
LABEL_PTR(leave),
|
|
105
110
|
LABEL_PTR(throw),
|
|
@@ -125,8 +130,6 @@ static const void *const insns_address_table[] = {
|
|
|
125
130
|
LABEL_PTR(opt_or),
|
|
126
131
|
LABEL_PTR(opt_aref),
|
|
127
132
|
LABEL_PTR(opt_aset),
|
|
128
|
-
LABEL_PTR(opt_aset_with),
|
|
129
|
-
LABEL_PTR(opt_aref_with),
|
|
130
133
|
LABEL_PTR(opt_length),
|
|
131
134
|
LABEL_PTR(opt_size),
|
|
132
135
|
LABEL_PTR(opt_empty_p),
|
|
@@ -170,7 +173,6 @@ static const void *const insns_address_table[] = {
|
|
|
170
173
|
LABEL_PTR(trace_toregexp),
|
|
171
174
|
LABEL_PTR(trace_intern),
|
|
172
175
|
LABEL_PTR(trace_newarray),
|
|
173
|
-
LABEL_PTR(trace_newarraykwsplat),
|
|
174
176
|
LABEL_PTR(trace_pushtoarraykwsplat),
|
|
175
177
|
LABEL_PTR(trace_duparray),
|
|
176
178
|
LABEL_PTR(trace_duphash),
|
|
@@ -199,13 +201,19 @@ static const void *const insns_address_table[] = {
|
|
|
199
201
|
LABEL_PTR(trace_definemethod),
|
|
200
202
|
LABEL_PTR(trace_definesmethod),
|
|
201
203
|
LABEL_PTR(trace_send),
|
|
204
|
+
LABEL_PTR(trace_sendforward),
|
|
202
205
|
LABEL_PTR(trace_opt_send_without_block),
|
|
206
|
+
LABEL_PTR(trace_opt_new),
|
|
203
207
|
LABEL_PTR(trace_objtostring),
|
|
208
|
+
LABEL_PTR(trace_opt_ary_freeze),
|
|
209
|
+
LABEL_PTR(trace_opt_hash_freeze),
|
|
204
210
|
LABEL_PTR(trace_opt_str_freeze),
|
|
205
211
|
LABEL_PTR(trace_opt_nil_p),
|
|
206
212
|
LABEL_PTR(trace_opt_str_uminus),
|
|
213
|
+
LABEL_PTR(trace_opt_duparray_send),
|
|
207
214
|
LABEL_PTR(trace_opt_newarray_send),
|
|
208
215
|
LABEL_PTR(trace_invokesuper),
|
|
216
|
+
LABEL_PTR(trace_invokesuperforward),
|
|
209
217
|
LABEL_PTR(trace_invokeblock),
|
|
210
218
|
LABEL_PTR(trace_leave),
|
|
211
219
|
LABEL_PTR(trace_throw),
|
|
@@ -231,8 +239,6 @@ static const void *const insns_address_table[] = {
|
|
|
231
239
|
LABEL_PTR(trace_opt_or),
|
|
232
240
|
LABEL_PTR(trace_opt_aref),
|
|
233
241
|
LABEL_PTR(trace_opt_aset),
|
|
234
|
-
LABEL_PTR(trace_opt_aset_with),
|
|
235
|
-
LABEL_PTR(trace_opt_aref_with),
|
|
236
242
|
LABEL_PTR(trace_opt_length),
|
|
237
243
|
LABEL_PTR(trace_opt_size),
|
|
238
244
|
LABEL_PTR(trace_opt_empty_p),
|
|
@@ -248,6 +254,36 @@ static const void *const insns_address_table[] = {
|
|
|
248
254
|
LABEL_PTR(trace_setlocal_WC_1),
|
|
249
255
|
LABEL_PTR(trace_putobject_INT2FIX_0_),
|
|
250
256
|
LABEL_PTR(trace_putobject_INT2FIX_1_),
|
|
257
|
+
#if USE_ZJIT
|
|
258
|
+
LABEL_PTR(zjit_getinstancevariable),
|
|
259
|
+
LABEL_PTR(zjit_send),
|
|
260
|
+
LABEL_PTR(zjit_opt_send_without_block),
|
|
261
|
+
LABEL_PTR(zjit_objtostring),
|
|
262
|
+
LABEL_PTR(zjit_opt_nil_p),
|
|
263
|
+
LABEL_PTR(zjit_invokeblock),
|
|
264
|
+
LABEL_PTR(zjit_opt_plus),
|
|
265
|
+
LABEL_PTR(zjit_opt_minus),
|
|
266
|
+
LABEL_PTR(zjit_opt_mult),
|
|
267
|
+
LABEL_PTR(zjit_opt_div),
|
|
268
|
+
LABEL_PTR(zjit_opt_mod),
|
|
269
|
+
LABEL_PTR(zjit_opt_eq),
|
|
270
|
+
LABEL_PTR(zjit_opt_neq),
|
|
271
|
+
LABEL_PTR(zjit_opt_lt),
|
|
272
|
+
LABEL_PTR(zjit_opt_le),
|
|
273
|
+
LABEL_PTR(zjit_opt_gt),
|
|
274
|
+
LABEL_PTR(zjit_opt_ge),
|
|
275
|
+
LABEL_PTR(zjit_opt_ltlt),
|
|
276
|
+
LABEL_PTR(zjit_opt_and),
|
|
277
|
+
LABEL_PTR(zjit_opt_or),
|
|
278
|
+
LABEL_PTR(zjit_opt_aref),
|
|
279
|
+
LABEL_PTR(zjit_opt_aset),
|
|
280
|
+
LABEL_PTR(zjit_opt_length),
|
|
281
|
+
LABEL_PTR(zjit_opt_size),
|
|
282
|
+
LABEL_PTR(zjit_opt_empty_p),
|
|
283
|
+
LABEL_PTR(zjit_opt_succ),
|
|
284
|
+
LABEL_PTR(zjit_opt_not),
|
|
285
|
+
LABEL_PTR(zjit_opt_regexpmatch2),
|
|
286
|
+
#endif
|
|
251
287
|
};
|
|
252
288
|
|
|
253
289
|
ASSERT_VM_INSTRUCTION_SIZE(insns_address_table);
|
|
@@ -9,10 +9,9 @@
|
|
|
9
9
|
#include "vm_core.h"
|
|
10
10
|
#include "method.h"
|
|
11
11
|
|
|
12
|
-
// YJIT_STATS controls whether to support runtime counters in
|
|
13
|
-
// and in the interpreter.
|
|
12
|
+
// YJIT_STATS controls whether to support runtime counters in the interpreter
|
|
14
13
|
#ifndef YJIT_STATS
|
|
15
|
-
# define YJIT_STATS RUBY_DEBUG
|
|
14
|
+
# define YJIT_STATS (USE_YJIT && RUBY_DEBUG)
|
|
16
15
|
#endif
|
|
17
16
|
|
|
18
17
|
#if USE_YJIT
|
|
@@ -37,6 +36,7 @@ void rb_yjit_collect_binding_alloc(void);
|
|
|
37
36
|
void rb_yjit_collect_binding_set(void);
|
|
38
37
|
void rb_yjit_compile_iseq(const rb_iseq_t *iseq, rb_execution_context_t *ec, bool jit_exception);
|
|
39
38
|
void rb_yjit_init(bool yjit_enabled);
|
|
39
|
+
void rb_yjit_free_at_exit(void);
|
|
40
40
|
void rb_yjit_bop_redefined(int redefined_flag, enum ruby_basic_operators bop);
|
|
41
41
|
void rb_yjit_constant_state_changed(ID id);
|
|
42
42
|
void rb_yjit_iseq_mark(void *payload);
|
|
@@ -49,6 +49,8 @@ void rb_yjit_show_usage(int help, int highlight, unsigned int width, int columns
|
|
|
49
49
|
void rb_yjit_lazy_push_frame(const VALUE *pc);
|
|
50
50
|
void rb_yjit_invalidate_no_singleton_class(VALUE klass);
|
|
51
51
|
void rb_yjit_invalidate_ep_is_bp(const rb_iseq_t *iseq);
|
|
52
|
+
void rb_yjit_mark_all_writeable(void);
|
|
53
|
+
void rb_yjit_mark_all_executable(void);
|
|
52
54
|
|
|
53
55
|
#else
|
|
54
56
|
// !USE_YJIT
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#ifndef ZJIT_H
|
|
2
|
+
#define ZJIT_H 1
|
|
3
|
+
//
|
|
4
|
+
// This file contains definitions ZJIT exposes to the CRuby codebase
|
|
5
|
+
//
|
|
6
|
+
|
|
7
|
+
// ZJIT_STATS controls whether to support runtime counters in the interpreter
|
|
8
|
+
#ifndef ZJIT_STATS
|
|
9
|
+
# define ZJIT_STATS (USE_ZJIT && RUBY_DEBUG)
|
|
10
|
+
#endif
|
|
11
|
+
|
|
12
|
+
#if USE_ZJIT
|
|
13
|
+
extern void *rb_zjit_entry;
|
|
14
|
+
extern uint64_t rb_zjit_call_threshold;
|
|
15
|
+
extern uint64_t rb_zjit_profile_threshold;
|
|
16
|
+
void rb_zjit_compile_iseq(const rb_iseq_t *iseq, bool jit_exception);
|
|
17
|
+
void rb_zjit_profile_insn(uint32_t insn, rb_execution_context_t *ec);
|
|
18
|
+
void rb_zjit_profile_enable(const rb_iseq_t *iseq);
|
|
19
|
+
void rb_zjit_bop_redefined(int redefined_flag, enum ruby_basic_operators bop);
|
|
20
|
+
void rb_zjit_cme_invalidate(const rb_callable_method_entry_t *cme);
|
|
21
|
+
void rb_zjit_cme_free(const rb_callable_method_entry_t *cme);
|
|
22
|
+
void rb_zjit_klass_free(VALUE klass);
|
|
23
|
+
void rb_zjit_invalidate_no_ep_escape(const rb_iseq_t *iseq);
|
|
24
|
+
void rb_zjit_constant_state_changed(ID id);
|
|
25
|
+
void rb_zjit_iseq_mark(void *payload);
|
|
26
|
+
void rb_zjit_iseq_update_references(void *payload);
|
|
27
|
+
void rb_zjit_iseq_free(const rb_iseq_t *iseq);
|
|
28
|
+
void rb_zjit_before_ractor_spawn(void);
|
|
29
|
+
void rb_zjit_tracing_invalidate_all(void);
|
|
30
|
+
void rb_zjit_invalidate_no_singleton_class(VALUE klass);
|
|
31
|
+
#else
|
|
32
|
+
#define rb_zjit_entry 0
|
|
33
|
+
static inline void rb_zjit_compile_iseq(const rb_iseq_t *iseq, bool jit_exception) {}
|
|
34
|
+
static inline void rb_zjit_profile_insn(uint32_t insn, rb_execution_context_t *ec) {}
|
|
35
|
+
static inline void rb_zjit_profile_enable(const rb_iseq_t *iseq) {}
|
|
36
|
+
static inline void rb_zjit_bop_redefined(int redefined_flag, enum ruby_basic_operators bop) {}
|
|
37
|
+
static inline void rb_zjit_cme_invalidate(const rb_callable_method_entry_t *cme) {}
|
|
38
|
+
static inline void rb_zjit_invalidate_no_ep_escape(const rb_iseq_t *iseq) {}
|
|
39
|
+
static inline void rb_zjit_constant_state_changed(ID id) {}
|
|
40
|
+
static inline void rb_zjit_before_ractor_spawn(void) {}
|
|
41
|
+
static inline void rb_zjit_tracing_invalidate_all(void) {}
|
|
42
|
+
static inline void rb_zjit_invalidate_no_singleton_class(VALUE klass) {}
|
|
43
|
+
#endif // #if USE_ZJIT
|
|
44
|
+
|
|
45
|
+
#define rb_zjit_enabled_p (rb_zjit_entry != 0)
|
|
46
|
+
|
|
47
|
+
#endif // #ifndef ZJIT_H
|
|
@@ -3,6 +3,8 @@ require 'rbconfig'
|
|
|
3
3
|
|
|
4
4
|
module Debase
|
|
5
5
|
module RubyCoreSource
|
|
6
|
+
MOCK_RUBY_VERSION_KEY = "MOCK_RUBY_VERSION"
|
|
7
|
+
|
|
6
8
|
REVISION_MAP = {
|
|
7
9
|
# Add pre-release version here since they do not have patchlevel to refer to.
|
|
8
10
|
# Revision can be found at `revision.h` of ruby sources.
|
|
@@ -54,7 +56,7 @@ module Debase
|
|
|
54
56
|
expected_directory
|
|
55
57
|
else
|
|
56
58
|
# Fallback to an older version.
|
|
57
|
-
ruby_version = Gem::Version.new(RUBY_VERSION)
|
|
59
|
+
ruby_version = Gem::Version.new(ENV[MOCK_RUBY_VERSION_KEY] || RUBY_VERSION)
|
|
58
60
|
path, = Dir.glob(prefix + 'ruby-*').
|
|
59
61
|
select { |d| File.directory?(d) }.
|
|
60
62
|
map { |d| [d, ruby_source_dir_version(d)] }.
|
|
@@ -68,7 +70,7 @@ module Debase
|
|
|
68
70
|
end
|
|
69
71
|
|
|
70
72
|
def self.ruby_source_dir_version(dir)
|
|
71
|
-
match = /ruby-([0-9\.]+)-((p|rc|preview)[0-9]+)\z/.match(dir)
|
|
73
|
+
match = /ruby-([0-9\.]+)-((p|rc|preview)-?[0-9]+)\z/.match(dir)
|
|
72
74
|
Gem::Version.new("#{match[1]}.#{match[2]}")
|
|
73
75
|
end
|
|
74
76
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
DIR_NAME = File.dirname(__FILE__)
|
|
4
|
+
$:.unshift File.join(DIR_NAME, "..", "lib")
|
|
5
|
+
|
|
6
|
+
require 'test/unit'
|
|
7
|
+
require 'debase/ruby_core_source'
|
|
8
|
+
|
|
9
|
+
class DeduceSourceDirTest < Test::Unit::TestCase
|
|
10
|
+
|
|
11
|
+
def test_deduce_source_dir
|
|
12
|
+
version_to_answer = {
|
|
13
|
+
"3.4.1" => "ruby-3.4.0-p-1",
|
|
14
|
+
"3.4.0" => "ruby-3.4.0-p-1",
|
|
15
|
+
"3.3.6" => "ruby-3.3.5-p100",
|
|
16
|
+
"3.3.5" => "ruby-3.3.5-p100",
|
|
17
|
+
"3.3.4" => "ruby-3.3.0-p0",
|
|
18
|
+
"3.3.3" => "ruby-3.3.0-p0",
|
|
19
|
+
"3.2.6" => "ruby-3.2.0-p0",
|
|
20
|
+
"3.1.6" => "ruby-3.1.0-p0",
|
|
21
|
+
"3.0.7" => "ruby-3.0.0-p0",
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
version_to_answer.each do |version, answer|
|
|
25
|
+
ENV[Debase::RubyCoreSource::MOCK_RUBY_VERSION_KEY] = version
|
|
26
|
+
result = Debase::RubyCoreSource.deduce_packaged_source_dir(version)
|
|
27
|
+
deduced_source_dir_name = result.split(File::SEPARATOR).last
|
|
28
|
+
assert_equal(answer, deduced_source_dir_name)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|