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
|
@@ -70,7 +70,30 @@
|
|
|
70
70
|
#define RUBY_ASSERT_MUTEX_OWNED(mutex) VM_ASSERT(rb_mutex_owned_p(mutex))
|
|
71
71
|
|
|
72
72
|
#if defined(RUBY_ASSERT_CRITICAL_SECTION)
|
|
73
|
-
|
|
73
|
+
/*
|
|
74
|
+
# Critical Section Assertions
|
|
75
|
+
|
|
76
|
+
These assertions are used to ensure that context switching does not occur between two points in the code. In theory,
|
|
77
|
+
such code should already be protected by a mutex, but these assertions are used to ensure that the mutex is held.
|
|
78
|
+
|
|
79
|
+
The specific case where it can be useful is where a mutex is held further up the call stack, and the code in question
|
|
80
|
+
may not directly hold the mutex. In this case, the critical section assertions can be used to ensure that the mutex is
|
|
81
|
+
held by someone else.
|
|
82
|
+
|
|
83
|
+
These assertions are only enabled when RUBY_ASSERT_CRITICAL_SECTION is defined, which is only defined if VM_CHECK_MODE
|
|
84
|
+
is set.
|
|
85
|
+
|
|
86
|
+
## Example Usage
|
|
87
|
+
|
|
88
|
+
```c
|
|
89
|
+
RUBY_ASSERT_CRITICAL_SECTION_ENTER();
|
|
90
|
+
// ... some code which does not invoke rb_vm_check_ints() ...
|
|
91
|
+
RUBY_ASSERT_CRITICAL_SECTION_LEAVE();
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
If `rb_vm_check_ints()` is called between the `RUBY_ASSERT_CRITICAL_SECTION_ENTER()` and
|
|
95
|
+
`RUBY_ASSERT_CRITICAL_SECTION_LEAVE()`, a failed assertion will result.
|
|
96
|
+
*/
|
|
74
97
|
extern int ruby_assert_critical_section_entered;
|
|
75
98
|
#define RUBY_ASSERT_CRITICAL_SECTION_ENTER() do{ruby_assert_critical_section_entered += 1;}while(false)
|
|
76
99
|
#define RUBY_ASSERT_CRITICAL_SECTION_LEAVE() do{VM_ASSERT(ruby_assert_critical_section_entered > 0);ruby_assert_critical_section_entered -= 1;}while(false)
|
|
@@ -230,6 +253,8 @@ union ic_serial_entry {
|
|
|
230
253
|
VALUE data[2];
|
|
231
254
|
};
|
|
232
255
|
|
|
256
|
+
#define IMEMO_CONST_CACHE_SHAREABLE IMEMO_FL_USER0
|
|
257
|
+
|
|
233
258
|
// imemo_constcache
|
|
234
259
|
struct iseq_inline_constant_cache_entry {
|
|
235
260
|
VALUE flags;
|
|
@@ -370,6 +395,8 @@ enum rb_builtin_attr {
|
|
|
370
395
|
BUILTIN_ATTR_SINGLE_NOARG_LEAF = 0x02,
|
|
371
396
|
// This attribute signals JIT to duplicate the iseq for each block iseq so that its `yield` will be monomorphic.
|
|
372
397
|
BUILTIN_ATTR_INLINE_BLOCK = 0x04,
|
|
398
|
+
// The iseq acts like a C method in backtraces.
|
|
399
|
+
BUILTIN_ATTR_C_TRACE = 0x08,
|
|
373
400
|
};
|
|
374
401
|
|
|
375
402
|
typedef VALUE (*rb_jit_func_t)(struct rb_execution_context_struct *, struct rb_control_frame_struct *);
|
|
@@ -579,6 +606,12 @@ rb_iseq_check(const rb_iseq_t *iseq)
|
|
|
579
606
|
return iseq;
|
|
580
607
|
}
|
|
581
608
|
|
|
609
|
+
static inline bool
|
|
610
|
+
rb_iseq_attr_p(const rb_iseq_t *iseq, enum rb_builtin_attr attr)
|
|
611
|
+
{
|
|
612
|
+
return (ISEQ_BODY(iseq)->builtin_attrs & attr) == attr;
|
|
613
|
+
}
|
|
614
|
+
|
|
582
615
|
static inline const rb_iseq_t *
|
|
583
616
|
def_iseq_ptr(rb_method_definition_t *def)
|
|
584
617
|
{
|
|
@@ -766,13 +799,13 @@ typedef struct rb_vm_struct {
|
|
|
766
799
|
struct rb_id_table *negative_cme_table;
|
|
767
800
|
st_table *overloaded_cme_table; // cme -> overloaded_cme
|
|
768
801
|
st_table *unused_block_warning_table;
|
|
769
|
-
bool unused_block_warning_strict;
|
|
770
802
|
|
|
771
803
|
// This id table contains a mapping from ID to ICs. It does this with ID
|
|
772
804
|
// keys and nested st_tables as values. The nested tables have ICs as keys
|
|
773
805
|
// and Qtrue as values. It is used when inline constant caches need to be
|
|
774
806
|
// invalidated or ISEQs are being freed.
|
|
775
807
|
struct rb_id_table *constant_cache;
|
|
808
|
+
ID inserting_constant_cache_id;
|
|
776
809
|
|
|
777
810
|
#ifndef VM_GLOBAL_CC_CACHE_TABLE_SIZE
|
|
778
811
|
#define VM_GLOBAL_CC_CACHE_TABLE_SIZE 1023
|
|
@@ -1124,6 +1157,7 @@ typedef struct rb_thread_struct {
|
|
|
1124
1157
|
struct rb_unblock_callback unblock;
|
|
1125
1158
|
VALUE locking_mutex;
|
|
1126
1159
|
struct rb_mutex_struct *keeping_mutexes;
|
|
1160
|
+
struct ccan_list_head interrupt_exec_tasks;
|
|
1127
1161
|
|
|
1128
1162
|
struct rb_waiting_list *join_list;
|
|
1129
1163
|
|
|
@@ -1280,6 +1314,7 @@ enum vm_opt_newarray_send_type {
|
|
|
1280
1314
|
VM_OPT_NEWARRAY_SEND_HASH = 3,
|
|
1281
1315
|
VM_OPT_NEWARRAY_SEND_PACK = 4,
|
|
1282
1316
|
VM_OPT_NEWARRAY_SEND_PACK_BUFFER = 5,
|
|
1317
|
+
VM_OPT_NEWARRAY_SEND_INCLUDE_P = 6,
|
|
1283
1318
|
};
|
|
1284
1319
|
|
|
1285
1320
|
enum vm_special_object_type {
|
|
@@ -1487,22 +1522,13 @@ VM_ENV_ESCAPED_P(const VALUE *ep)
|
|
|
1487
1522
|
return VM_ENV_FLAGS(ep, VM_ENV_FLAG_ESCAPED) ? 1 : 0;
|
|
1488
1523
|
}
|
|
1489
1524
|
|
|
1490
|
-
#if VM_CHECK_MODE > 0
|
|
1491
|
-
static inline int
|
|
1492
|
-
vm_assert_env(VALUE obj)
|
|
1493
|
-
{
|
|
1494
|
-
VM_ASSERT(imemo_type_p(obj, imemo_env));
|
|
1495
|
-
return 1;
|
|
1496
|
-
}
|
|
1497
|
-
#endif
|
|
1498
|
-
|
|
1499
1525
|
RBIMPL_ATTR_NONNULL((1))
|
|
1500
1526
|
static inline VALUE
|
|
1501
1527
|
VM_ENV_ENVVAL(const VALUE *ep)
|
|
1502
1528
|
{
|
|
1503
1529
|
VALUE envval = ep[VM_ENV_DATA_INDEX_ENV];
|
|
1504
1530
|
VM_ASSERT(VM_ENV_ESCAPED_P(ep));
|
|
1505
|
-
VM_ASSERT(
|
|
1531
|
+
VM_ASSERT(envval == Qundef || imemo_type_p(envval, imemo_env));
|
|
1506
1532
|
return envval;
|
|
1507
1533
|
}
|
|
1508
1534
|
|
|
@@ -1945,6 +1971,8 @@ rb_ec_vm_ptr(const rb_execution_context_t *ec)
|
|
|
1945
1971
|
}
|
|
1946
1972
|
}
|
|
1947
1973
|
|
|
1974
|
+
NOINLINE(struct rb_execution_context_struct *rb_current_ec_noinline(void));
|
|
1975
|
+
|
|
1948
1976
|
static inline rb_execution_context_t *
|
|
1949
1977
|
rb_current_execution_context(bool expect_ec)
|
|
1950
1978
|
{
|
|
@@ -21,9 +21,9 @@ 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
27
|
void rb_vm_lock_leave_body(unsigned int *lev APPEND_LOCATION_ARGS);
|
|
28
28
|
void rb_vm_barrier(void);
|
|
29
29
|
|
|
@@ -100,6 +100,7 @@ static const void *const insns_address_table[] = {
|
|
|
100
100
|
LABEL_PTR(opt_str_freeze),
|
|
101
101
|
LABEL_PTR(opt_nil_p),
|
|
102
102
|
LABEL_PTR(opt_str_uminus),
|
|
103
|
+
LABEL_PTR(opt_duparray_send),
|
|
103
104
|
LABEL_PTR(opt_newarray_send),
|
|
104
105
|
LABEL_PTR(invokesuper),
|
|
105
106
|
LABEL_PTR(invokesuperforward),
|
|
@@ -209,6 +210,7 @@ static const void *const insns_address_table[] = {
|
|
|
209
210
|
LABEL_PTR(trace_opt_str_freeze),
|
|
210
211
|
LABEL_PTR(trace_opt_nil_p),
|
|
211
212
|
LABEL_PTR(trace_opt_str_uminus),
|
|
213
|
+
LABEL_PTR(trace_opt_duparray_send),
|
|
212
214
|
LABEL_PTR(trace_opt_newarray_send),
|
|
213
215
|
LABEL_PTR(trace_invokesuper),
|
|
214
216
|
LABEL_PTR(trace_invokesuperforward),
|
|
@@ -37,6 +37,7 @@ void rb_yjit_collect_binding_alloc(void);
|
|
|
37
37
|
void rb_yjit_collect_binding_set(void);
|
|
38
38
|
void rb_yjit_compile_iseq(const rb_iseq_t *iseq, rb_execution_context_t *ec, bool jit_exception);
|
|
39
39
|
void rb_yjit_init(bool yjit_enabled);
|
|
40
|
+
void rb_yjit_free_at_exit();
|
|
40
41
|
void rb_yjit_bop_redefined(int redefined_flag, enum ruby_basic_operators bop);
|
|
41
42
|
void rb_yjit_constant_state_changed(ID id);
|
|
42
43
|
void rb_yjit_iseq_mark(void *payload);
|
|
@@ -15,7 +15,7 @@ struct rb_builtin_function {
|
|
|
15
15
|
|
|
16
16
|
#define RB_BUILTIN_FUNCTION(_i, _name, _fname, _arity) {\
|
|
17
17
|
.name = _i < 0 ? NULL : #_name, \
|
|
18
|
-
.func_ptr = (void *)_fname, \
|
|
18
|
+
.func_ptr = (void *)(uintptr_t)_fname, \
|
|
19
19
|
.argc = _arity, \
|
|
20
20
|
.index = _i, \
|
|
21
21
|
}
|
|
@@ -106,6 +106,12 @@ rb_vm_lvar(rb_execution_context_t *ec, int index)
|
|
|
106
106
|
#endif
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
+
static inline VALUE
|
|
110
|
+
rb_builtin_basic_definition_p(rb_execution_context_t *ec, VALUE klass, VALUE id_sym)
|
|
111
|
+
{
|
|
112
|
+
return rb_method_basic_definition_p(klass, rb_sym2id(id_sym)) ? Qtrue : Qfalse;
|
|
113
|
+
}
|
|
114
|
+
|
|
109
115
|
#define LOCAL_PTR(local) local ## __ptr
|
|
110
116
|
|
|
111
117
|
// dump/load
|
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
#include <stddef.h>
|
|
6
6
|
#include <stdlib.h>
|
|
7
7
|
|
|
8
|
-
#include "internal/bits.h"
|
|
9
|
-
|
|
10
8
|
// Type for a dynamic array. Use to declare a dynamic array.
|
|
11
9
|
// It is a pointer so it fits in st_table nicely. Designed
|
|
12
10
|
// to be fairly type-safe.
|
|
@@ -44,18 +42,36 @@
|
|
|
44
42
|
* void rb_darray_append(rb_darray(T) *ptr_to_ary, T element);
|
|
45
43
|
*/
|
|
46
44
|
#define rb_darray_append(ptr_to_ary, element) \
|
|
47
|
-
rb_darray_append_impl(ptr_to_ary, element)
|
|
45
|
+
rb_darray_append_impl(ptr_to_ary, element, rb_darray_realloc_mul_add)
|
|
46
|
+
|
|
47
|
+
#define rb_darray_append_without_gc(ptr_to_ary, element) \
|
|
48
|
+
rb_darray_append_impl(ptr_to_ary, element, rb_darray_realloc_mul_add_without_gc)
|
|
48
49
|
|
|
49
|
-
#define rb_darray_append_impl(ptr_to_ary, element) do { \
|
|
50
|
+
#define rb_darray_append_impl(ptr_to_ary, element, realloc_func) do { \
|
|
50
51
|
rb_darray_ensure_space((ptr_to_ary), \
|
|
51
52
|
sizeof(**(ptr_to_ary)), \
|
|
52
|
-
sizeof((*(ptr_to_ary))->data[0])
|
|
53
|
+
sizeof((*(ptr_to_ary))->data[0]), \
|
|
54
|
+
realloc_func); \
|
|
53
55
|
rb_darray_set(*(ptr_to_ary), \
|
|
54
56
|
(*(ptr_to_ary))->meta.size, \
|
|
55
57
|
(element)); \
|
|
56
58
|
(*(ptr_to_ary))->meta.size++; \
|
|
57
59
|
} while (0)
|
|
58
60
|
|
|
61
|
+
#define rb_darray_insert_without_gc(ptr_to_ary, idx, element) do { \
|
|
62
|
+
rb_darray_ensure_space((ptr_to_ary), \
|
|
63
|
+
sizeof(**(ptr_to_ary)), \
|
|
64
|
+
sizeof((*(ptr_to_ary))->data[0]), \
|
|
65
|
+
rb_darray_realloc_mul_add_without_gc); \
|
|
66
|
+
MEMMOVE( \
|
|
67
|
+
rb_darray_ref(*(ptr_to_ary), idx + 1), \
|
|
68
|
+
rb_darray_ref(*(ptr_to_ary), idx), \
|
|
69
|
+
(*(ptr_to_ary))->data[0], \
|
|
70
|
+
rb_darray_size(*(ptr_to_ary)) - idx); \
|
|
71
|
+
rb_darray_set(*(ptr_to_ary), idx, element); \
|
|
72
|
+
(*(ptr_to_ary))->meta.size++; \
|
|
73
|
+
} while (0)
|
|
74
|
+
|
|
59
75
|
// Iterate over items of the array in a for loop
|
|
60
76
|
//
|
|
61
77
|
#define rb_darray_foreach(ary, idx_name, elem_ptr_var) \
|
|
@@ -74,15 +90,21 @@
|
|
|
74
90
|
* void rb_darray_make(rb_darray(T) *ptr_to_ary, size_t size);
|
|
75
91
|
*/
|
|
76
92
|
#define rb_darray_make(ptr_to_ary, size) \
|
|
77
|
-
rb_darray_make_impl((ptr_to_ary), size, sizeof(**(ptr_to_ary)),
|
|
93
|
+
rb_darray_make_impl((ptr_to_ary), size, sizeof(**(ptr_to_ary)), \
|
|
94
|
+
sizeof((*(ptr_to_ary))->data[0]), rb_darray_calloc_mul_add)
|
|
95
|
+
|
|
96
|
+
#define rb_darray_make_without_gc(ptr_to_ary, size) \
|
|
97
|
+
rb_darray_make_impl((ptr_to_ary), size, sizeof(**(ptr_to_ary)), \
|
|
98
|
+
sizeof((*(ptr_to_ary))->data[0]), rb_darray_calloc_mul_add_without_gc)
|
|
78
99
|
|
|
79
100
|
/* Resize the darray to a new capacity. The new capacity must be greater than
|
|
80
101
|
* or equal to the size of the darray.
|
|
81
102
|
*
|
|
82
103
|
* void rb_darray_resize_capa(rb_darray(T) *ptr_to_ary, size_t capa);
|
|
83
104
|
*/
|
|
84
|
-
#define
|
|
85
|
-
rb_darray_resize_capa_impl((ptr_to_ary), capa, sizeof(**(ptr_to_ary)),
|
|
105
|
+
#define rb_darray_resize_capa_without_gc(ptr_to_ary, capa) \
|
|
106
|
+
rb_darray_resize_capa_impl((ptr_to_ary), capa, sizeof(**(ptr_to_ary)), \
|
|
107
|
+
sizeof((*(ptr_to_ary))->data[0]), rb_darray_realloc_mul_add_without_gc)
|
|
86
108
|
|
|
87
109
|
#define rb_darray_data_ptr(ary) ((ary)->data)
|
|
88
110
|
|
|
@@ -111,6 +133,14 @@ rb_darray_size(const void *ary)
|
|
|
111
133
|
return meta ? meta->size : 0;
|
|
112
134
|
}
|
|
113
135
|
|
|
136
|
+
|
|
137
|
+
static inline void
|
|
138
|
+
rb_darray_pop(void *ary, size_t count)
|
|
139
|
+
{
|
|
140
|
+
rb_darray_meta_t *meta = ary;
|
|
141
|
+
meta->size -= count;
|
|
142
|
+
}
|
|
143
|
+
|
|
114
144
|
// Get the capacity of the dynamic array.
|
|
115
145
|
//
|
|
116
146
|
static inline size_t
|
|
@@ -127,15 +157,70 @@ rb_darray_free(void *ary)
|
|
|
127
157
|
xfree(ary);
|
|
128
158
|
}
|
|
129
159
|
|
|
160
|
+
static inline void
|
|
161
|
+
rb_darray_free_without_gc(void *ary)
|
|
162
|
+
{
|
|
163
|
+
free(ary);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/* Internal function. Like rb_xcalloc_mul_add. */
|
|
167
|
+
static inline void *
|
|
168
|
+
rb_darray_calloc_mul_add(size_t x, size_t y, size_t z)
|
|
169
|
+
{
|
|
170
|
+
size_t size = rbimpl_size_add_or_raise(rbimpl_size_mul_or_raise(x, y), z);
|
|
171
|
+
|
|
172
|
+
void *ptr = xcalloc(1, size);
|
|
173
|
+
RUBY_ASSERT(ptr != NULL);
|
|
174
|
+
|
|
175
|
+
return ptr;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* Internal function. Like rb_xcalloc_mul_add but does not trigger GC. */
|
|
179
|
+
static inline void *
|
|
180
|
+
rb_darray_calloc_mul_add_without_gc(size_t x, size_t y, size_t z)
|
|
181
|
+
{
|
|
182
|
+
size_t size = rbimpl_size_add_or_raise(rbimpl_size_mul_or_raise(x, y), z);
|
|
183
|
+
|
|
184
|
+
void *ptr = calloc(1, size);
|
|
185
|
+
if (ptr == NULL) rb_bug("rb_darray_calloc_mul_add_without_gc: failed");
|
|
186
|
+
|
|
187
|
+
return ptr;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/* Internal function. Like rb_xrealloc_mul_add. */
|
|
191
|
+
static inline void *
|
|
192
|
+
rb_darray_realloc_mul_add(void *orig_ptr, size_t x, size_t y, size_t z)
|
|
193
|
+
{
|
|
194
|
+
size_t size = rbimpl_size_add_or_raise(rbimpl_size_mul_or_raise(x, y), z);
|
|
195
|
+
|
|
196
|
+
void *ptr = xrealloc(orig_ptr, size);
|
|
197
|
+
RUBY_ASSERT(ptr != NULL);
|
|
198
|
+
|
|
199
|
+
return ptr;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/* Internal function. Like rb_xrealloc_mul_add but does not trigger GC. */
|
|
203
|
+
static inline void *
|
|
204
|
+
rb_darray_realloc_mul_add_without_gc(void *orig_ptr, size_t x, size_t y, size_t z)
|
|
205
|
+
{
|
|
206
|
+
size_t size = rbimpl_size_add_or_raise(rbimpl_size_mul_or_raise(x, y), z);
|
|
207
|
+
|
|
208
|
+
void *ptr = realloc(orig_ptr, size);
|
|
209
|
+
if (ptr == NULL) rb_bug("rb_darray_realloc_mul_add_without_gc: failed");
|
|
210
|
+
|
|
211
|
+
return ptr;
|
|
212
|
+
}
|
|
213
|
+
|
|
130
214
|
/* Internal function. Resizes the capacity of a darray. The new capacity must
|
|
131
215
|
* be greater than or equal to the size of the darray. */
|
|
132
216
|
static inline void
|
|
133
|
-
rb_darray_resize_capa_impl(void *ptr_to_ary, size_t new_capa, size_t header_size, size_t element_size
|
|
217
|
+
rb_darray_resize_capa_impl(void *ptr_to_ary, size_t new_capa, size_t header_size, size_t element_size,
|
|
218
|
+
void *(*realloc_mul_add_impl)(void *, size_t, size_t, size_t))
|
|
134
219
|
{
|
|
135
220
|
rb_darray_meta_t **ptr_to_ptr_to_meta = ptr_to_ary;
|
|
136
221
|
rb_darray_meta_t *meta = *ptr_to_ptr_to_meta;
|
|
137
222
|
|
|
138
|
-
rb_darray_meta_t *new_ary =
|
|
223
|
+
rb_darray_meta_t *new_ary = realloc_mul_add_impl(meta, new_capa, element_size, header_size);
|
|
139
224
|
|
|
140
225
|
if (meta == NULL) {
|
|
141
226
|
/* First allocation. Initialize size. On subsequence allocations
|
|
@@ -156,7 +241,8 @@ rb_darray_resize_capa_impl(void *ptr_to_ary, size_t new_capa, size_t header_size
|
|
|
156
241
|
// Ensure there is space for one more element.
|
|
157
242
|
// Note: header_size can be bigger than sizeof(rb_darray_meta_t) when T is __int128_t, for example.
|
|
158
243
|
static inline void
|
|
159
|
-
rb_darray_ensure_space(void *ptr_to_ary, size_t header_size, size_t element_size
|
|
244
|
+
rb_darray_ensure_space(void *ptr_to_ary, size_t header_size, size_t element_size,
|
|
245
|
+
void *(*realloc_mul_add_impl)(void *, size_t, size_t, size_t))
|
|
160
246
|
{
|
|
161
247
|
rb_darray_meta_t **ptr_to_ptr_to_meta = ptr_to_ary;
|
|
162
248
|
rb_darray_meta_t *meta = *ptr_to_ptr_to_meta;
|
|
@@ -166,11 +252,12 @@ rb_darray_ensure_space(void *ptr_to_ary, size_t header_size, size_t element_size
|
|
|
166
252
|
// Double the capacity
|
|
167
253
|
size_t new_capa = current_capa == 0 ? 1 : current_capa * 2;
|
|
168
254
|
|
|
169
|
-
rb_darray_resize_capa_impl(ptr_to_ary, new_capa, header_size, element_size);
|
|
255
|
+
rb_darray_resize_capa_impl(ptr_to_ary, new_capa, header_size, element_size, realloc_mul_add_impl);
|
|
170
256
|
}
|
|
171
257
|
|
|
172
258
|
static inline void
|
|
173
|
-
rb_darray_make_impl(void *ptr_to_ary, size_t array_size, size_t header_size, size_t element_size
|
|
259
|
+
rb_darray_make_impl(void *ptr_to_ary, size_t array_size, size_t header_size, size_t element_size,
|
|
260
|
+
void *(*calloc_mul_add_impl)(size_t, size_t, size_t))
|
|
174
261
|
{
|
|
175
262
|
rb_darray_meta_t **ptr_to_ptr_to_meta = ptr_to_ary;
|
|
176
263
|
if (array_size == 0) {
|
|
@@ -178,7 +265,7 @@ rb_darray_make_impl(void *ptr_to_ary, size_t array_size, size_t header_size, siz
|
|
|
178
265
|
return;
|
|
179
266
|
}
|
|
180
267
|
|
|
181
|
-
rb_darray_meta_t *meta =
|
|
268
|
+
rb_darray_meta_t *meta = calloc_mul_add_impl(array_size, element_size, header_size);
|
|
182
269
|
|
|
183
270
|
meta->size = array_size;
|
|
184
271
|
meta->capa = array_size;
|
data/lib/debase/ruby_core_source/{ruby-3.4.0-preview1 → ruby-4.0.0-preview2}/debug_counter.h
RENAMED
|
@@ -49,7 +49,7 @@ RB_DEBUG_COUNTER(cc_temp) // dummy CC (stack-allocated)
|
|
|
49
49
|
RB_DEBUG_COUNTER(cc_found_in_ccs) // count for CC lookup success in CCS
|
|
50
50
|
RB_DEBUG_COUNTER(cc_not_found_in_ccs) // count for CC lookup success in CCS
|
|
51
51
|
|
|
52
|
-
RB_DEBUG_COUNTER(cc_ent_invalidate) // count for invalidating cc (cc->klass =
|
|
52
|
+
RB_DEBUG_COUNTER(cc_ent_invalidate) // count for invalidating cc (cc->klass = Qundef)
|
|
53
53
|
RB_DEBUG_COUNTER(cc_cme_invalidate) // count for invalidating CME
|
|
54
54
|
|
|
55
55
|
RB_DEBUG_COUNTER(cc_invalidate_leaf) // count for invalidating klass if klass has no-subclasses
|
|
@@ -305,16 +305,18 @@ RB_DEBUG_COUNTER(obj_imemo_ment)
|
|
|
305
305
|
RB_DEBUG_COUNTER(obj_imemo_iseq)
|
|
306
306
|
RB_DEBUG_COUNTER(obj_imemo_env)
|
|
307
307
|
RB_DEBUG_COUNTER(obj_imemo_tmpbuf)
|
|
308
|
-
RB_DEBUG_COUNTER(obj_imemo_ast)
|
|
309
308
|
RB_DEBUG_COUNTER(obj_imemo_cref)
|
|
310
309
|
RB_DEBUG_COUNTER(obj_imemo_svar)
|
|
311
310
|
RB_DEBUG_COUNTER(obj_imemo_throw_data)
|
|
312
311
|
RB_DEBUG_COUNTER(obj_imemo_ifunc)
|
|
313
312
|
RB_DEBUG_COUNTER(obj_imemo_memo)
|
|
314
|
-
RB_DEBUG_COUNTER(obj_imemo_parser_strterm)
|
|
315
313
|
RB_DEBUG_COUNTER(obj_imemo_callinfo)
|
|
316
314
|
RB_DEBUG_COUNTER(obj_imemo_callcache)
|
|
317
315
|
RB_DEBUG_COUNTER(obj_imemo_constcache)
|
|
316
|
+
RB_DEBUG_COUNTER(obj_imemo_fields)
|
|
317
|
+
|
|
318
|
+
RB_DEBUG_COUNTER(opt_new_hit)
|
|
319
|
+
RB_DEBUG_COUNTER(opt_new_miss)
|
|
318
320
|
|
|
319
321
|
/* ar_table */
|
|
320
322
|
RB_DEBUG_COUNTER(artable_hint_hit)
|
|
@@ -356,7 +358,7 @@ RB_DEBUG_COUNTER(load_path_is_not_realpath)
|
|
|
356
358
|
|
|
357
359
|
enum rb_debug_counter_type {
|
|
358
360
|
#define RB_DEBUG_COUNTER(name) RB_DEBUG_COUNTER_##name,
|
|
359
|
-
#include
|
|
361
|
+
#include "debug_counter.h"
|
|
360
362
|
RB_DEBUG_COUNTER_MAX
|
|
361
363
|
#undef RB_DEBUG_COUNTER
|
|
362
364
|
};
|
|
@@ -22,11 +22,10 @@ RUBY_SYMBOL_EXPORT_BEGIN
|
|
|
22
22
|
#define DLN_FIND_EXTRA_ARG_DECL
|
|
23
23
|
#endif
|
|
24
24
|
|
|
25
|
-
bool dln_supported_p(void);
|
|
26
25
|
char *dln_find_exe_r(const char*,const char*,char*,size_t DLN_FIND_EXTRA_ARG_DECL);
|
|
27
26
|
char *dln_find_file_r(const char*,const char*,char*,size_t DLN_FIND_EXTRA_ARG_DECL);
|
|
28
27
|
void *dln_load(const char*);
|
|
29
|
-
void *
|
|
28
|
+
void *dln_load_feature(const char*, const char*);
|
|
30
29
|
void *dln_symbol(void*,const char*);
|
|
31
30
|
|
|
32
31
|
RUBY_SYMBOL_EXPORT_END
|
|
@@ -296,10 +296,17 @@ VALUE rb_vm_make_jump_tag_but_local_jump(enum ruby_tag_type state, VALUE val);
|
|
|
296
296
|
rb_cref_t *rb_vm_cref(void);
|
|
297
297
|
rb_cref_t *rb_vm_cref_replace_with_duplicated_cref(void);
|
|
298
298
|
VALUE rb_vm_call_cfunc(VALUE recv, VALUE (*func)(VALUE), VALUE arg, VALUE block_handler, VALUE filename);
|
|
299
|
+
VALUE rb_vm_call_cfunc_in_box(VALUE recv, VALUE (*func)(VALUE, VALUE), VALUE arg1, VALUE arg2, VALUE filename, const rb_box_t *box);
|
|
300
|
+
void rb_vm_frame_flag_set_box_require(const rb_execution_context_t *ec);
|
|
301
|
+
const rb_box_t *rb_vm_current_box(const rb_execution_context_t *ec);
|
|
302
|
+
const rb_box_t *rb_vm_caller_box(const rb_execution_context_t *ec);
|
|
303
|
+
const rb_box_t *rb_vm_loading_box(const rb_execution_context_t *ec);
|
|
299
304
|
void rb_vm_set_progname(VALUE filename);
|
|
300
305
|
VALUE rb_vm_cbase(void);
|
|
301
306
|
|
|
302
307
|
/* vm_backtrace.c */
|
|
308
|
+
#define RUBY_BACKTRACE_START 0
|
|
309
|
+
#define RUBY_ALL_BACKTRACE_LINES -1
|
|
303
310
|
VALUE rb_ec_backtrace_object(const rb_execution_context_t *ec);
|
|
304
311
|
VALUE rb_ec_backtrace_str_ary(const rb_execution_context_t *ec, long lev, long n);
|
|
305
312
|
VALUE rb_ec_backtrace_location_ary(const rb_execution_context_t *ec, long lev, long n, bool skip_internal);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* DO NOT EDIT THIS FILE DIRECTLY */
|
|
1
|
+
/* DO NOT EDIT THIS FILE DIRECTLY: source is at template/id.h.tmpl */
|
|
2
2
|
/**********************************************************************
|
|
3
3
|
|
|
4
4
|
id.h -
|
|
@@ -14,15 +14,14 @@
|
|
|
14
14
|
#define RUBY_ID_H
|
|
15
15
|
|
|
16
16
|
enum ruby_id_types {
|
|
17
|
-
RUBY_ID_STATIC_SYM = 0x01,
|
|
18
17
|
RUBY_ID_LOCAL = 0x00,
|
|
18
|
+
RUBY_ID_STATIC_SYM = 0x01,
|
|
19
19
|
RUBY_ID_INSTANCE = (0x01<<1),
|
|
20
20
|
RUBY_ID_GLOBAL = (0x03<<1),
|
|
21
21
|
RUBY_ID_ATTRSET = (0x04<<1),
|
|
22
22
|
RUBY_ID_CONST = (0x05<<1),
|
|
23
23
|
RUBY_ID_CLASS = (0x06<<1),
|
|
24
|
-
|
|
25
|
-
RUBY_ID_INTERNAL = RUBY_ID_JUNK,
|
|
24
|
+
RUBY_ID_INTERNAL = (0x07<<1),
|
|
26
25
|
RUBY_ID_SCOPE_SHIFT = 4,
|
|
27
26
|
RUBY_ID_SCOPE_MASK = (~(~0U<<(RUBY_ID_SCOPE_SHIFT-1))<<1)
|
|
28
27
|
};
|
|
@@ -36,7 +35,6 @@ enum ruby_id_types {
|
|
|
36
35
|
#define ID_ATTRSET RUBY_ID_ATTRSET
|
|
37
36
|
#define ID_CONST RUBY_ID_CONST
|
|
38
37
|
#define ID_CLASS RUBY_ID_CLASS
|
|
39
|
-
#define ID_JUNK RUBY_ID_JUNK
|
|
40
38
|
#define ID_INTERNAL RUBY_ID_INTERNAL
|
|
41
39
|
|
|
42
40
|
#define symIFUNC ID2SYM(idIFUNC)
|
|
@@ -110,6 +108,7 @@ enum ruby_method_ids {
|
|
|
110
108
|
idANDDOT = RUBY_TOKEN(ANDDOT),
|
|
111
109
|
tPRESERVED_ID_BEGIN = 150,
|
|
112
110
|
idNilP,
|
|
111
|
+
idIncludeP,
|
|
113
112
|
idNULL,
|
|
114
113
|
idEmptyP,
|
|
115
114
|
idEqlP,
|
|
@@ -139,6 +138,7 @@ enum ruby_method_ids {
|
|
|
139
138
|
tInspect,
|
|
140
139
|
tIntern,
|
|
141
140
|
tObject_id,
|
|
141
|
+
t__id__,
|
|
142
142
|
tConst_added,
|
|
143
143
|
tConst_missing,
|
|
144
144
|
tMethodMissing,
|
|
@@ -190,6 +190,10 @@ enum ruby_method_ids {
|
|
|
190
190
|
tName,
|
|
191
191
|
tNil,
|
|
192
192
|
tPath,
|
|
193
|
+
tPack,
|
|
194
|
+
tBuffer,
|
|
195
|
+
tAborted,
|
|
196
|
+
tExited,
|
|
193
197
|
tUScore,
|
|
194
198
|
tNUMPARAM_1,
|
|
195
199
|
tNUMPARAM_2,
|
|
@@ -219,6 +223,7 @@ enum ruby_method_ids {
|
|
|
219
223
|
|
|
220
224
|
/* CONST tokens {{{ */
|
|
221
225
|
tTOKEN_CONST_BEGIN = tTOKEN_GLOBAL_END-1,
|
|
226
|
+
tRuby,
|
|
222
227
|
tTOKEN_CONST_END,
|
|
223
228
|
/* CONST tokens }}} */
|
|
224
229
|
|
|
@@ -243,6 +248,7 @@ enum ruby_method_ids {
|
|
|
243
248
|
DEFINE_LOCALID_FROM_TOKEN(Inspect),
|
|
244
249
|
DEFINE_LOCALID_FROM_TOKEN(Intern),
|
|
245
250
|
DEFINE_LOCALID_FROM_TOKEN(Object_id),
|
|
251
|
+
DEFINE_LOCALID_FROM_TOKEN(__id__),
|
|
246
252
|
DEFINE_LOCALID_FROM_TOKEN(Const_added),
|
|
247
253
|
DEFINE_LOCALID_FROM_TOKEN(Const_missing),
|
|
248
254
|
DEFINE_LOCALID_FROM_TOKEN(MethodMissing),
|
|
@@ -294,6 +300,10 @@ enum ruby_method_ids {
|
|
|
294
300
|
DEFINE_LOCALID_FROM_TOKEN(Name),
|
|
295
301
|
DEFINE_LOCALID_FROM_TOKEN(Nil),
|
|
296
302
|
DEFINE_LOCALID_FROM_TOKEN(Path),
|
|
303
|
+
DEFINE_LOCALID_FROM_TOKEN(Pack),
|
|
304
|
+
DEFINE_LOCALID_FROM_TOKEN(Buffer),
|
|
305
|
+
DEFINE_LOCALID_FROM_TOKEN(Aborted),
|
|
306
|
+
DEFINE_LOCALID_FROM_TOKEN(Exited),
|
|
297
307
|
DEFINE_LOCALID_FROM_TOKEN(UScore),
|
|
298
308
|
DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_1),
|
|
299
309
|
DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_2),
|
|
@@ -323,6 +333,7 @@ enum ruby_method_ids {
|
|
|
323
333
|
|
|
324
334
|
/* CONST IDs {{{ */
|
|
325
335
|
#define DEFINE_CONSTID_FROM_TOKEN(n) id##n = TOKEN2CONSTID(t##n)
|
|
336
|
+
DEFINE_CONSTID_FROM_TOKEN(Ruby),
|
|
326
337
|
#undef DEFINE_CONSTID_FROM_TOKEN
|
|
327
338
|
/* CONST IDs }}} */
|
|
328
339
|
|
|
@@ -16,7 +16,10 @@ enum rb_id_table_iterator_result {
|
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
struct rb_id_table *rb_id_table_create(size_t size);
|
|
19
|
+
struct rb_id_table *rb_id_table_init(struct rb_id_table *tbl, size_t capa);
|
|
20
|
+
|
|
19
21
|
void rb_id_table_free(struct rb_id_table *tbl);
|
|
22
|
+
void rb_id_table_free_items(struct rb_id_table *tbl);
|
|
20
23
|
void rb_id_table_clear(struct rb_id_table *tbl);
|
|
21
24
|
|
|
22
25
|
size_t rb_id_table_memsize(const struct rb_id_table *tbl);
|
|
@@ -32,6 +35,18 @@ void rb_id_table_foreach(struct rb_id_table *tbl, rb_id_table_foreach_func_t *fu
|
|
|
32
35
|
void rb_id_table_foreach_values(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, void *data);
|
|
33
36
|
void rb_id_table_foreach_values_with_replace(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, rb_id_table_update_value_callback_func_t *replace, void *data);
|
|
34
37
|
|
|
38
|
+
VALUE rb_managed_id_table_create(const rb_data_type_t *type, size_t capa);
|
|
39
|
+
VALUE rb_managed_id_table_new(size_t capa);
|
|
40
|
+
VALUE rb_managed_id_table_dup(VALUE table);
|
|
41
|
+
int rb_managed_id_table_insert(VALUE table, ID id, VALUE val);
|
|
42
|
+
int rb_managed_id_table_lookup(VALUE table, ID id, VALUE *valp);
|
|
43
|
+
size_t rb_managed_id_table_size(VALUE table);
|
|
44
|
+
void rb_managed_id_table_foreach(VALUE table, rb_id_table_foreach_func_t *func, void *data);
|
|
45
|
+
void rb_managed_id_table_foreach_values(VALUE table, rb_id_table_foreach_values_func_t *func, void *data);
|
|
46
|
+
int rb_managed_id_table_delete(VALUE table, ID id);
|
|
47
|
+
|
|
48
|
+
extern const rb_data_type_t rb_managed_id_table_type;
|
|
49
|
+
|
|
35
50
|
RUBY_SYMBOL_EXPORT_BEGIN
|
|
36
51
|
size_t rb_id_table_size(const struct rb_id_table *tbl);
|
|
37
52
|
RUBY_SYMBOL_EXPORT_END
|