debase-ruby_core_source 0.10.9 → 0.10.13
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/CHANGELOG.md +4 -0
- data/README.md +1 -1
- data/Rakefile +6 -3
- data/debase-ruby_core_source.gemspec +2 -1
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/addr2line.h +2 -3
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/builtin.h +17 -2
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/ccan/build_assert/build_assert.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/ccan/check_type/check_type.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/ccan/container_of/container_of.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/ccan/list/list.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/ccan/str/str.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/constant.h +10 -5
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/debug_counter.h +127 -48
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/dln.h +3 -18
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/encindex.h +3 -2
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/eval_intern.h +16 -7
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/gc.h +13 -2
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/hrtime.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/id.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/id_table.h +2 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/insns.inc +0 -4
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/insns_info.inc +323 -536
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/array.h +119 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/bignum.h +246 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/bits.h +566 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/class.h +174 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/compar.h +50 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/compile.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/compilers.h +108 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/complex.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/cont.h +25 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/dir.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/enc.h +20 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/encoding.h +28 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/enum.h +19 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/enumerator.h +22 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/error.h +124 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/eval.h +33 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/file.h +39 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/fixnum.h +185 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/gc.h +161 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/hash.h +241 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/imemo.h +243 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/inits.h +51 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/io.h +35 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/load.h +19 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/loadpath.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/math.h +24 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/missing.h +19 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/numeric.h +255 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/object.h +83 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/parse.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/proc.h +33 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/process.h +136 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/random.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/range.h +41 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/rational.h +71 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/re.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/sanitizers.h +191 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/scheduler.h +44 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/serial.h +24 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/signal.h +22 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/static_assert.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/string.h +140 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/struct.h +154 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/symbol.h +41 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/thread.h +54 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/time.h +35 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/transcode.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/util.h +31 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/variable.h +84 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/vm.h +136 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal/warnings.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/internal.h +107 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/iseq.h +11 -18
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/known_errors.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/method.h +21 -8
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/mjit.h +89 -48
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/mjit_compile.inc +2746 -2288
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/node.h +32 -24
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/node_name.inc +2 -2
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/opt_sc.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/optinsn.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/optunifs.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/parse.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/probes_helper.h +2 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/ractor_core.h +343 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/regenc.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/regint.h +1 -1
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/regparse.h +0 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/revision.h +2 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/ruby_assert.h +15 -0
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/ruby_atomic.h +23 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/siphash.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/symbol.h +4 -4
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/thread_pthread.h +45 -5
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/thread_win32.h +28 -3
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/timev.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/transcode_data.h +2 -3
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/transient_heap.h +6 -3
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/variable.h +22 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/version.h +23 -11
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/vm.inc +707 -671
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/vm_call_iseq_optimized.inc +93 -86
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/vm_callinfo.h +456 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/vm_core.h +262 -194
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/vm_debug.h +116 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/vm_exec.h +9 -6
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.0.0-p0}/vm_insnhelper.h +28 -26
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/vm_opts.h +6 -5
- data/lib/debase/ruby_core_source/ruby-3.0.0-p0/vm_sync.h +136 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.0.0-p0}/vmtc.inc +0 -4
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/addr2line.h +2 -3
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/builtin.h +83 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/ccan/build_assert/build_assert.h +13 -13
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/ccan/check_type/check_type.h +17 -17
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/ccan/container_of/container_of.h +63 -63
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/ccan/list/list.h +262 -262
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/ccan/str/str.h +4 -4
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/constant.h +10 -9
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/darray.h +198 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/debug_counter.h +137 -48
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/dln.h +3 -23
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/encindex.h +3 -2
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/eval_intern.h +34 -41
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/gc.h +24 -11
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/hrtime.h +9 -9
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/id.h +4 -3
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/id_table.h +3 -1
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/insns.inc +6 -8
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/insns_info.inc +1907 -2543
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/array.h +113 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/bignum.h +246 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/bits.h +565 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/class.h +188 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/compar.h +49 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/compile.h +35 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/compilers.h +107 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/complex.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/cont.h +24 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/dir.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/enc.h +19 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/encoding.h +30 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/enum.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/enumerator.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/error.h +191 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/eval.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/file.h +38 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/fixnum.h +184 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/gc.h +175 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/hash.h +243 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/imemo.h +243 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/inits.h +50 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/io.h +38 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/load.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/loadpath.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/math.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/missing.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/numeric.h +271 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/object.h +83 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/parse.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/proc.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/process.h +137 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/random.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/range.h +40 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/rational.h +72 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/re.h +30 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/sanitizers.h +190 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/serial.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/signal.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/static_assert.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/string.h +141 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/struct.h +153 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/symbol.h +40 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/thread.h +53 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/time.h +34 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/transcode.h +20 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/util.h +27 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/variable.h +83 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/vm.h +132 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal/warnings.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/internal.h +109 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/iseq.h +44 -35
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/known_errors.inc +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/method.h +21 -4
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/mjit.h +231 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/mjit_compile.inc +3322 -2940
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/node.h +39 -23
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/node_name.inc +210 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/opt_sc.inc +0 -2
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/optinsn.inc +7 -7
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/optunifs.inc +1 -1
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/parse.h +9 -5
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/probes_helper.h +9 -7
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/ractor_core.h +346 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/regenc.h +8 -8
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/regint.h +16 -12
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/regparse.h +2 -2
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/revision.h +2 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/ruby_assert.h +14 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/ruby_atomic.h +23 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/siphash.h +0 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/symbol.h +14 -14
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/thread_pthread.h +45 -5
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/thread_win32.h +30 -5
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/timev.h +1 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/transcode_data.h +49 -50
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/transient_heap.h +6 -3
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/variable.h +21 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/version.h +15 -4
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/vm.inc +1033 -887
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/vm_call_iseq_optimized.inc +244 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/vm_callinfo.h +454 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/vm_core.h +508 -362
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/vm_debug.h +119 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/vm_exec.h +22 -18
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview3 → ruby-3.1.0-preview1}/vm_insnhelper.h +42 -32
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/vm_opts.h +8 -5
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/vm_sync.h +137 -0
- data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/vmtc.inc +6 -8
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/yjit.h +63 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/yjit_asm.h +392 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/yjit_codegen.h +19 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/yjit_core.h +302 -0
- data/lib/debase/ruby_core_source/ruby-3.1.0-preview1/yjit_iface.h +38 -0
- data/lib/debase/ruby_core_source/version.rb +1 -1
- data/lib/debase/ruby_core_source.rb +0 -2
- metadata +240 -110
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/internal.h +0 -2682
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/revision.h +0 -2
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ruby_assert.h +0 -15
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ruby_atomic.h +0 -244
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_call_iseq_optimized.inc +0 -237
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_debug.h +0 -34
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview3/internal.h +0 -2657
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview3/mjit.h +0 -175
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview3/node_name.inc +0 -208
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview3/revision.h +0 -2
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview3/ruby_assert.h +0 -15
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview3/ruby_atomic.h +0 -244
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview3/vm_debug.h +0 -34
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
* @expr: any C expression
|
|
7
7
|
*
|
|
8
8
|
* Example:
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* #define PRINT_COND_IF_FALSE(cond) \
|
|
10
|
+
* ((cond) || printf("%s is false!", stringify(cond)))
|
|
11
11
|
*/
|
|
12
|
-
#define stringify(expr)
|
|
12
|
+
#define stringify(expr) stringify_1(expr)
|
|
13
13
|
/* Double-indirection required to stringify expansions */
|
|
14
|
-
#define stringify_1(expr)
|
|
14
|
+
#define stringify_1(expr) #expr
|
|
15
15
|
|
|
16
16
|
#endif /* CCAN_STR_H */
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
#ifndef CONSTANT_H
|
|
2
|
+
#define CONSTANT_H
|
|
1
3
|
/**********************************************************************
|
|
2
4
|
|
|
3
5
|
constant.h -
|
|
@@ -8,8 +10,8 @@
|
|
|
8
10
|
Copyright (C) 2009 Yusuke Endoh
|
|
9
11
|
|
|
10
12
|
**********************************************************************/
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
+
#include "ruby/ruby.h"
|
|
14
|
+
#include "id_table.h"
|
|
13
15
|
|
|
14
16
|
typedef enum {
|
|
15
17
|
CONST_DEPRECATED = 0x100,
|
|
@@ -39,16 +41,15 @@ VALUE rb_mod_private_constant(int argc, const VALUE *argv, VALUE obj);
|
|
|
39
41
|
VALUE rb_mod_public_constant(int argc, const VALUE *argv, VALUE obj);
|
|
40
42
|
VALUE rb_mod_deprecate_constant(int argc, const VALUE *argv, VALUE obj);
|
|
41
43
|
void rb_free_const_table(struct rb_id_table *tbl);
|
|
42
|
-
VALUE
|
|
44
|
+
VALUE rb_const_source_location(VALUE, ID);
|
|
45
|
+
|
|
46
|
+
MJIT_SYMBOL_EXPORT_BEGIN
|
|
47
|
+
int rb_autoloading_value(VALUE mod, ID id, VALUE *value, rb_const_flag_t *flag);
|
|
48
|
+
rb_const_entry_t *rb_const_lookup(VALUE klass, ID id);
|
|
43
49
|
VALUE rb_public_const_get_at(VALUE klass, ID id);
|
|
44
50
|
VALUE rb_public_const_get_from(VALUE klass, ID id);
|
|
45
|
-
int rb_public_const_defined(VALUE klass, ID id);
|
|
46
|
-
int rb_public_const_defined_at(VALUE klass, ID id);
|
|
47
51
|
int rb_public_const_defined_from(VALUE klass, ID id);
|
|
48
|
-
rb_const_entry_t *rb_const_lookup(VALUE klass, ID id);
|
|
49
|
-
int rb_autoloading_value(VALUE mod, ID id, VALUE *value, rb_const_flag_t *flag);
|
|
50
|
-
VALUE rb_const_source_location(VALUE, ID);
|
|
51
|
-
VALUE rb_const_source_location_from(VALUE, ID);
|
|
52
52
|
VALUE rb_const_source_location_at(VALUE, ID);
|
|
53
|
+
MJIT_SYMBOL_EXPORT_END
|
|
53
54
|
|
|
54
55
|
#endif /* CONSTANT_H */
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
#ifndef RUBY_DARRAY_H
|
|
2
|
+
#define RUBY_DARRAY_H
|
|
3
|
+
|
|
4
|
+
#include <stdint.h>
|
|
5
|
+
#include <stddef.h>
|
|
6
|
+
#include <stdlib.h>
|
|
7
|
+
|
|
8
|
+
// Type for a dynamic array. Use to declare a dynamic array.
|
|
9
|
+
// It is a pointer so it fits in st_table nicely. Designed
|
|
10
|
+
// to be fairly type-safe.
|
|
11
|
+
//
|
|
12
|
+
// NULL is a valid empty dynamic array.
|
|
13
|
+
//
|
|
14
|
+
// Example:
|
|
15
|
+
// rb_darray(char) char_array = NULL;
|
|
16
|
+
// if (!rb_darray_append(&char_array, 'e')) abort();
|
|
17
|
+
// printf("pushed %c\n", *rb_darray_ref(char_array, 0));
|
|
18
|
+
// rb_darray_free(char_array);
|
|
19
|
+
//
|
|
20
|
+
#define rb_darray(T) struct { rb_darray_meta_t meta; T data[]; } *
|
|
21
|
+
|
|
22
|
+
// Copy an element out of the array. Warning: not bounds checked.
|
|
23
|
+
//
|
|
24
|
+
// T rb_darray_get(rb_darray(T) ary, int32_t idx);
|
|
25
|
+
//
|
|
26
|
+
#define rb_darray_get(ary, idx) ((ary)->data[(idx)])
|
|
27
|
+
|
|
28
|
+
// Assign to an element. Warning: not bounds checked.
|
|
29
|
+
//
|
|
30
|
+
// void rb_darray_set(rb_darray(T) ary, int32_t idx, T element);
|
|
31
|
+
//
|
|
32
|
+
#define rb_darray_set(ary, idx, element) ((ary)->data[(idx)] = (element))
|
|
33
|
+
|
|
34
|
+
// Get a pointer to an element. Warning: not bounds checked.
|
|
35
|
+
//
|
|
36
|
+
// T *rb_darray_ref(rb_darray(T) ary, int32_t idx);
|
|
37
|
+
//
|
|
38
|
+
#define rb_darray_ref(ary, idx) (&((ary)->data[(idx)]))
|
|
39
|
+
|
|
40
|
+
// Copy a new element into the array. Return 1 on success and 0 on failure.
|
|
41
|
+
// ptr_to_ary is evaluated multiple times.
|
|
42
|
+
//
|
|
43
|
+
// bool rb_darray_append(rb_darray(T) *ptr_to_ary, T element);
|
|
44
|
+
//
|
|
45
|
+
#define rb_darray_append(ptr_to_ary, element) ( \
|
|
46
|
+
rb_darray_ensure_space((ptr_to_ary), sizeof(**(ptr_to_ary)), sizeof((*(ptr_to_ary))->data[0])) ? ( \
|
|
47
|
+
rb_darray_set(*(ptr_to_ary), \
|
|
48
|
+
(*(ptr_to_ary))->meta.size, \
|
|
49
|
+
(element)), \
|
|
50
|
+
++((*(ptr_to_ary))->meta.size), \
|
|
51
|
+
1 \
|
|
52
|
+
) : 0)
|
|
53
|
+
|
|
54
|
+
// Last element of the array
|
|
55
|
+
//
|
|
56
|
+
#define rb_darray_back(ary) ((ary)->data[(ary)->meta.size - 1])
|
|
57
|
+
|
|
58
|
+
// Remove the last element of the array.
|
|
59
|
+
//
|
|
60
|
+
#define rb_darray_pop_back(ary) ((ary)->meta.size--)
|
|
61
|
+
|
|
62
|
+
// Remove element at idx and replace it by the last element
|
|
63
|
+
#define rb_darray_remove_unordered(ary, idx) do { \
|
|
64
|
+
rb_darray_set(ary, idx, rb_darray_back(ary)); \
|
|
65
|
+
rb_darray_pop_back(ary); \
|
|
66
|
+
} while (0);
|
|
67
|
+
|
|
68
|
+
// Iterate over items of the array in a for loop
|
|
69
|
+
//
|
|
70
|
+
#define rb_darray_foreach(ary, idx_name, elem_ptr_var) \
|
|
71
|
+
for (int idx_name = 0; idx_name < rb_darray_size(ary) && ((elem_ptr_var) = rb_darray_ref(ary, idx_name)); ++idx_name)
|
|
72
|
+
|
|
73
|
+
// Iterate over valid indicies in the array in a for loop
|
|
74
|
+
//
|
|
75
|
+
#define rb_darray_for(ary, idx_name) \
|
|
76
|
+
for (int idx_name = 0; idx_name < rb_darray_size(ary); ++idx_name)
|
|
77
|
+
|
|
78
|
+
// Make a dynamic array of a certain size. All bytes backing the elements are set to zero.
|
|
79
|
+
// Return 1 on success and 0 on failure.
|
|
80
|
+
//
|
|
81
|
+
// Note that NULL is a valid empty dynamic array.
|
|
82
|
+
//
|
|
83
|
+
// bool rb_darray_make(rb_darray(T) *ptr_to_ary, int32_t size);
|
|
84
|
+
//
|
|
85
|
+
#define rb_darray_make(ptr_to_ary, size) rb_darray_make_impl((ptr_to_ary), size, sizeof(**(ptr_to_ary)), sizeof((*(ptr_to_ary))->data[0]))
|
|
86
|
+
|
|
87
|
+
// Set the size of the array to zero without freeing the backing memory.
|
|
88
|
+
// Allows reusing the same array.
|
|
89
|
+
//
|
|
90
|
+
#define rb_darray_clear(ary) (ary->meta.size = 0)
|
|
91
|
+
|
|
92
|
+
typedef struct rb_darray_meta {
|
|
93
|
+
int32_t size;
|
|
94
|
+
int32_t capa;
|
|
95
|
+
} rb_darray_meta_t;
|
|
96
|
+
|
|
97
|
+
// Get the size of the dynamic array.
|
|
98
|
+
//
|
|
99
|
+
static inline int32_t
|
|
100
|
+
rb_darray_size(const void *ary)
|
|
101
|
+
{
|
|
102
|
+
const rb_darray_meta_t *meta = ary;
|
|
103
|
+
return meta ? meta->size : 0;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Get the capacity of the dynamic array.
|
|
107
|
+
//
|
|
108
|
+
static inline int32_t
|
|
109
|
+
rb_darray_capa(const void *ary)
|
|
110
|
+
{
|
|
111
|
+
const rb_darray_meta_t *meta = ary;
|
|
112
|
+
return meta ? meta->capa : 0;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// Free the dynamic array.
|
|
116
|
+
//
|
|
117
|
+
static inline void
|
|
118
|
+
rb_darray_free(void *ary)
|
|
119
|
+
{
|
|
120
|
+
free(ary);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Internal function. Calculate buffer size on malloc heap.
|
|
124
|
+
static inline size_t
|
|
125
|
+
rb_darray_buffer_size(int32_t capacity, size_t header_size, size_t element_size)
|
|
126
|
+
{
|
|
127
|
+
if (capacity == 0) return 0;
|
|
128
|
+
return header_size + (size_t)capacity * element_size;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Internal function
|
|
132
|
+
// Ensure there is space for one more element. Return 1 on success and 0 on failure.
|
|
133
|
+
// Note: header_size can be bigger than sizeof(rb_darray_meta_t) when T is __int128_t, for example.
|
|
134
|
+
static inline int
|
|
135
|
+
rb_darray_ensure_space(void *ptr_to_ary, size_t header_size, size_t element_size)
|
|
136
|
+
{
|
|
137
|
+
rb_darray_meta_t **ptr_to_ptr_to_meta = ptr_to_ary;
|
|
138
|
+
rb_darray_meta_t *meta = *ptr_to_ptr_to_meta;
|
|
139
|
+
int32_t current_capa = rb_darray_capa(meta);
|
|
140
|
+
if (rb_darray_size(meta) < current_capa) return 1;
|
|
141
|
+
|
|
142
|
+
int32_t new_capa;
|
|
143
|
+
// Calculate new capacity
|
|
144
|
+
if (current_capa == 0) {
|
|
145
|
+
new_capa = 1;
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
int64_t doubled = 2 * (int64_t)current_capa;
|
|
149
|
+
new_capa = (int32_t)doubled;
|
|
150
|
+
if (new_capa != doubled) return 0;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// Calculate new buffer size
|
|
154
|
+
size_t current_buffer_size = rb_darray_buffer_size(current_capa, header_size, element_size);
|
|
155
|
+
size_t new_buffer_size = rb_darray_buffer_size(new_capa, header_size, element_size);
|
|
156
|
+
if (new_buffer_size <= current_buffer_size) return 0;
|
|
157
|
+
|
|
158
|
+
rb_darray_meta_t *doubled_ary = realloc(meta, new_buffer_size);
|
|
159
|
+
if (!doubled_ary) return 0;
|
|
160
|
+
|
|
161
|
+
if (meta == NULL) {
|
|
162
|
+
// First allocation. Initialize size. On subsequence allocations
|
|
163
|
+
// realloc takes care of carrying over the size.
|
|
164
|
+
doubled_ary->size = 0;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
doubled_ary->capa = new_capa;
|
|
168
|
+
|
|
169
|
+
// We don't have access to the type of the dynamic array in function context.
|
|
170
|
+
// Write out result with memcpy to avoid strict aliasing issue.
|
|
171
|
+
memcpy(ptr_to_ary, &doubled_ary, sizeof(doubled_ary));
|
|
172
|
+
return 1;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
static inline int
|
|
176
|
+
rb_darray_make_impl(void *ptr_to_ary, int32_t array_size, size_t header_size, size_t element_size)
|
|
177
|
+
{
|
|
178
|
+
rb_darray_meta_t **ptr_to_ptr_to_meta = ptr_to_ary;
|
|
179
|
+
if (array_size < 0) return 0;
|
|
180
|
+
if (array_size == 0) {
|
|
181
|
+
*ptr_to_ptr_to_meta = NULL;
|
|
182
|
+
return 1;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
size_t buffer_size = rb_darray_buffer_size(array_size, header_size, element_size);
|
|
186
|
+
rb_darray_meta_t *meta = calloc(buffer_size, 1);
|
|
187
|
+
if (!meta) return 0;
|
|
188
|
+
|
|
189
|
+
meta->size = array_size;
|
|
190
|
+
meta->capa = array_size;
|
|
191
|
+
|
|
192
|
+
// We don't have access to the type of the dynamic array in function context.
|
|
193
|
+
// Write out result with memcpy to avoid strict aliasing issue.
|
|
194
|
+
memcpy(ptr_to_ary, &meta, sizeof(meta));
|
|
195
|
+
return 1;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
#endif /* RUBY_DARRAY_H */
|
data/lib/debase/ruby_core_source/{ruby-2.7.0-preview2 → ruby-3.1.0-preview1}/debug_counter.h
RENAMED
|
@@ -14,38 +14,67 @@
|
|
|
14
14
|
|
|
15
15
|
#ifdef RB_DEBUG_COUNTER
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
RB_DEBUG_COUNTER(
|
|
37
|
-
RB_DEBUG_COUNTER(
|
|
38
|
-
RB_DEBUG_COUNTER(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
RB_DEBUG_COUNTER(
|
|
42
|
-
RB_DEBUG_COUNTER(
|
|
43
|
-
RB_DEBUG_COUNTER(
|
|
44
|
-
RB_DEBUG_COUNTER(
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
RB_DEBUG_COUNTER(
|
|
48
|
-
RB_DEBUG_COUNTER(
|
|
17
|
+
// method cache (IMC: inline method cache)
|
|
18
|
+
RB_DEBUG_COUNTER(mc_inline_hit) // IMC hit
|
|
19
|
+
RB_DEBUG_COUNTER(mc_inline_miss_klass) // IMC miss by different class
|
|
20
|
+
RB_DEBUG_COUNTER(mc_inline_miss_invalidated) // IMC miss by invalidated ME
|
|
21
|
+
RB_DEBUG_COUNTER(mc_inline_miss_empty) // IMC miss because prev is empty slot
|
|
22
|
+
RB_DEBUG_COUNTER(mc_inline_miss_same_cc) // IMC miss, but same CC
|
|
23
|
+
RB_DEBUG_COUNTER(mc_inline_miss_same_cme) // IMC miss, but same CME
|
|
24
|
+
RB_DEBUG_COUNTER(mc_inline_miss_same_def) // IMC miss, but same definition
|
|
25
|
+
RB_DEBUG_COUNTER(mc_inline_miss_diff) // IMC miss, different methods
|
|
26
|
+
|
|
27
|
+
RB_DEBUG_COUNTER(cvar_write_inline_hit) // cvar cache hit on write
|
|
28
|
+
RB_DEBUG_COUNTER(cvar_read_inline_hit) // cvar cache hit on read
|
|
29
|
+
RB_DEBUG_COUNTER(cvar_inline_miss) // miss inline cache
|
|
30
|
+
RB_DEBUG_COUNTER(cvar_class_invalidate) // invalidate cvar cache when define a cvar that's defined on a subclass
|
|
31
|
+
RB_DEBUG_COUNTER(cvar_include_invalidate) // invalidate cvar cache on module include or prepend
|
|
32
|
+
|
|
33
|
+
RB_DEBUG_COUNTER(mc_cme_complement) // number of acquiring complement CME
|
|
34
|
+
RB_DEBUG_COUNTER(mc_cme_complement_hit) // number of cache hit for complemented CME
|
|
35
|
+
|
|
36
|
+
RB_DEBUG_COUNTER(mc_search) // count for method lookup in class tree
|
|
37
|
+
RB_DEBUG_COUNTER(mc_search_notfound) // method lookup, but not found
|
|
38
|
+
RB_DEBUG_COUNTER(mc_search_super) // total traversed classes
|
|
39
|
+
|
|
40
|
+
// callinfo
|
|
41
|
+
RB_DEBUG_COUNTER(ci_packed) // number of packed CI
|
|
42
|
+
RB_DEBUG_COUNTER(ci_kw) // non-packed CI w/ keywords
|
|
43
|
+
RB_DEBUG_COUNTER(ci_nokw) // non-packed CI w/o keywords
|
|
44
|
+
RB_DEBUG_COUNTER(ci_runtime) // creating temporary CI
|
|
45
|
+
|
|
46
|
+
// callcache
|
|
47
|
+
RB_DEBUG_COUNTER(cc_new) // number of CC
|
|
48
|
+
RB_DEBUG_COUNTER(cc_temp) // dummy CC (stack-allocated)
|
|
49
|
+
RB_DEBUG_COUNTER(cc_found_in_ccs) // count for CC lookup success in CCS
|
|
50
|
+
RB_DEBUG_COUNTER(cc_not_found_in_ccs) // count for CC lookup success in CCS
|
|
51
|
+
|
|
52
|
+
RB_DEBUG_COUNTER(cc_ent_invalidate) // count for invalidating cc (cc->klass = 0)
|
|
53
|
+
RB_DEBUG_COUNTER(cc_cme_invalidate) // count for invalidating CME
|
|
54
|
+
|
|
55
|
+
RB_DEBUG_COUNTER(cc_invalidate_leaf) // count for invalidating klass if klass has no-subclasses
|
|
56
|
+
RB_DEBUG_COUNTER(cc_invalidate_leaf_ccs) // corresponding CCS
|
|
57
|
+
RB_DEBUG_COUNTER(cc_invalidate_leaf_callable) // complimented cache (no-subclasses)
|
|
58
|
+
RB_DEBUG_COUNTER(cc_invalidate_tree) // count for invalidating klass if klass has subclasses
|
|
59
|
+
RB_DEBUG_COUNTER(cc_invalidate_tree_cme) // cme if cme is found in this class or superclasses
|
|
60
|
+
RB_DEBUG_COUNTER(cc_invalidate_tree_callable) // complimented cache (subclasses)
|
|
61
|
+
RB_DEBUG_COUNTER(cc_invalidate_negative) // count for invalidating negative cache
|
|
62
|
+
|
|
63
|
+
RB_DEBUG_COUNTER(ccs_free) // count for free'ing ccs
|
|
64
|
+
RB_DEBUG_COUNTER(ccs_maxlen) // maximum length of ccs
|
|
65
|
+
RB_DEBUG_COUNTER(ccs_found) // count for finding corresponding ccs on method lookup
|
|
66
|
+
RB_DEBUG_COUNTER(ccs_not_found) // count for not found corresponding ccs on method lookup
|
|
67
|
+
|
|
68
|
+
// vm_eval.c
|
|
69
|
+
RB_DEBUG_COUNTER(call0_public)
|
|
70
|
+
RB_DEBUG_COUNTER(call0_other)
|
|
71
|
+
RB_DEBUG_COUNTER(gccct_hit)
|
|
72
|
+
RB_DEBUG_COUNTER(gccct_miss)
|
|
73
|
+
RB_DEBUG_COUNTER(gccct_null)
|
|
74
|
+
|
|
75
|
+
// iseq
|
|
76
|
+
RB_DEBUG_COUNTER(iseq_num) // number of total created iseq
|
|
77
|
+
RB_DEBUG_COUNTER(iseq_cd_num) // number of total created cd (call_data)
|
|
49
78
|
|
|
50
79
|
/*
|
|
51
80
|
* call cache fastpath usage
|
|
@@ -59,6 +88,7 @@ RB_DEBUG_COUNTER(ccf_iseq_opt) /* has_opt == TRUE (has optional parameters), but
|
|
|
59
88
|
RB_DEBUG_COUNTER(ccf_iseq_kw1) /* vm_call_iseq_setup_kwparm_kwarg() */
|
|
60
89
|
RB_DEBUG_COUNTER(ccf_iseq_kw2) /* vm_call_iseq_setup_kwparm_nokwarg() */
|
|
61
90
|
RB_DEBUG_COUNTER(ccf_cfunc)
|
|
91
|
+
RB_DEBUG_COUNTER(ccf_cfunc_with_frame)
|
|
62
92
|
RB_DEBUG_COUNTER(ccf_ivar) /* attr_reader */
|
|
63
93
|
RB_DEBUG_COUNTER(ccf_attrset) /* attr_writer */
|
|
64
94
|
RB_DEBUG_COUNTER(ccf_method_missing)
|
|
@@ -115,7 +145,7 @@ RB_DEBUG_COUNTER(ivar_set_ic_hit)
|
|
|
115
145
|
RB_DEBUG_COUNTER(ivar_set_ic_miss)
|
|
116
146
|
RB_DEBUG_COUNTER(ivar_set_ic_miss_serial)
|
|
117
147
|
RB_DEBUG_COUNTER(ivar_set_ic_miss_unset)
|
|
118
|
-
RB_DEBUG_COUNTER(
|
|
148
|
+
RB_DEBUG_COUNTER(ivar_set_ic_miss_iv_hit)
|
|
119
149
|
RB_DEBUG_COUNTER(ivar_set_ic_miss_noobject)
|
|
120
150
|
RB_DEBUG_COUNTER(ivar_get_base)
|
|
121
151
|
RB_DEBUG_COUNTER(ivar_set_base)
|
|
@@ -153,6 +183,12 @@ RB_DEBUG_COUNTER(gc_major_shady)
|
|
|
153
183
|
RB_DEBUG_COUNTER(gc_major_force)
|
|
154
184
|
RB_DEBUG_COUNTER(gc_major_oldmalloc)
|
|
155
185
|
|
|
186
|
+
RB_DEBUG_COUNTER(gc_enter_start)
|
|
187
|
+
RB_DEBUG_COUNTER(gc_enter_mark_continue)
|
|
188
|
+
RB_DEBUG_COUNTER(gc_enter_sweep_continue)
|
|
189
|
+
RB_DEBUG_COUNTER(gc_enter_rest)
|
|
190
|
+
RB_DEBUG_COUNTER(gc_enter_finalizer)
|
|
191
|
+
|
|
156
192
|
RB_DEBUG_COUNTER(gc_isptr_trial)
|
|
157
193
|
RB_DEBUG_COUNTER(gc_isptr_range)
|
|
158
194
|
RB_DEBUG_COUNTER(gc_isptr_align)
|
|
@@ -162,7 +198,7 @@ RB_DEBUG_COUNTER(gc_isptr_maybe)
|
|
|
162
198
|
*
|
|
163
199
|
* * obj_newobj: newobj counts
|
|
164
200
|
* * obj_newobj_slowpath: newobj with slowpath counts
|
|
165
|
-
* * obj_newobj_wb_unprotected: newobj for
|
|
201
|
+
* * obj_newobj_wb_unprotected: newobj for wb_unprotected.
|
|
166
202
|
* * obj_free: obj_free() counts
|
|
167
203
|
* * obj_promote: promoted counts (oldgen)
|
|
168
204
|
* * obj_wb_unprotect: wb unprotect counts
|
|
@@ -245,8 +281,6 @@ RB_DEBUG_COUNTER(obj_struct_embed)
|
|
|
245
281
|
RB_DEBUG_COUNTER(obj_struct_transient)
|
|
246
282
|
RB_DEBUG_COUNTER(obj_struct_ptr)
|
|
247
283
|
|
|
248
|
-
RB_DEBUG_COUNTER(obj_regexp_ptr)
|
|
249
|
-
|
|
250
284
|
RB_DEBUG_COUNTER(obj_data_empty)
|
|
251
285
|
RB_DEBUG_COUNTER(obj_data_xfree)
|
|
252
286
|
RB_DEBUG_COUNTER(obj_data_imm_free)
|
|
@@ -256,9 +290,19 @@ RB_DEBUG_COUNTER(obj_match_under4)
|
|
|
256
290
|
RB_DEBUG_COUNTER(obj_match_ge4)
|
|
257
291
|
RB_DEBUG_COUNTER(obj_match_ge8)
|
|
258
292
|
RB_DEBUG_COUNTER(obj_match_ptr)
|
|
259
|
-
|
|
293
|
+
|
|
294
|
+
RB_DEBUG_COUNTER(obj_iclass_ptr)
|
|
295
|
+
RB_DEBUG_COUNTER(obj_class_ptr)
|
|
296
|
+
RB_DEBUG_COUNTER(obj_module_ptr)
|
|
297
|
+
|
|
260
298
|
RB_DEBUG_COUNTER(obj_bignum_ptr)
|
|
299
|
+
RB_DEBUG_COUNTER(obj_bignum_embed)
|
|
300
|
+
RB_DEBUG_COUNTER(obj_float)
|
|
301
|
+
RB_DEBUG_COUNTER(obj_complex)
|
|
302
|
+
RB_DEBUG_COUNTER(obj_rational)
|
|
261
303
|
|
|
304
|
+
RB_DEBUG_COUNTER(obj_regexp_ptr)
|
|
305
|
+
RB_DEBUG_COUNTER(obj_file_ptr)
|
|
262
306
|
RB_DEBUG_COUNTER(obj_symbol)
|
|
263
307
|
|
|
264
308
|
RB_DEBUG_COUNTER(obj_imemo_ment)
|
|
@@ -272,10 +316,9 @@ RB_DEBUG_COUNTER(obj_imemo_throw_data)
|
|
|
272
316
|
RB_DEBUG_COUNTER(obj_imemo_ifunc)
|
|
273
317
|
RB_DEBUG_COUNTER(obj_imemo_memo)
|
|
274
318
|
RB_DEBUG_COUNTER(obj_imemo_parser_strterm)
|
|
275
|
-
|
|
276
|
-
RB_DEBUG_COUNTER(
|
|
277
|
-
RB_DEBUG_COUNTER(
|
|
278
|
-
RB_DEBUG_COUNTER(obj_module_ptr)
|
|
319
|
+
RB_DEBUG_COUNTER(obj_imemo_callinfo)
|
|
320
|
+
RB_DEBUG_COUNTER(obj_imemo_callcache)
|
|
321
|
+
RB_DEBUG_COUNTER(obj_imemo_constcache)
|
|
279
322
|
|
|
280
323
|
/* ar_table */
|
|
281
324
|
RB_DEBUG_COUNTER(artable_hint_hit)
|
|
@@ -295,14 +338,24 @@ RB_DEBUG_COUNTER(theap_alloc)
|
|
|
295
338
|
RB_DEBUG_COUNTER(theap_alloc_fail)
|
|
296
339
|
RB_DEBUG_COUNTER(theap_evacuate)
|
|
297
340
|
|
|
341
|
+
// VM sync
|
|
342
|
+
RB_DEBUG_COUNTER(vm_sync_lock)
|
|
343
|
+
RB_DEBUG_COUNTER(vm_sync_lock_enter)
|
|
344
|
+
RB_DEBUG_COUNTER(vm_sync_lock_enter_nb)
|
|
345
|
+
RB_DEBUG_COUNTER(vm_sync_lock_enter_cr)
|
|
346
|
+
RB_DEBUG_COUNTER(vm_sync_barrier)
|
|
347
|
+
|
|
298
348
|
/* mjit_exec() counts */
|
|
299
349
|
RB_DEBUG_COUNTER(mjit_exec)
|
|
300
350
|
RB_DEBUG_COUNTER(mjit_exec_not_added)
|
|
301
|
-
RB_DEBUG_COUNTER(mjit_exec_not_added_add_iseq)
|
|
302
351
|
RB_DEBUG_COUNTER(mjit_exec_not_ready)
|
|
303
352
|
RB_DEBUG_COUNTER(mjit_exec_not_compiled)
|
|
304
353
|
RB_DEBUG_COUNTER(mjit_exec_call_func)
|
|
305
354
|
|
|
355
|
+
/* MJIT enqueue / unload */
|
|
356
|
+
RB_DEBUG_COUNTER(mjit_add_iseq_to_process)
|
|
357
|
+
RB_DEBUG_COUNTER(mjit_unload_units)
|
|
358
|
+
|
|
306
359
|
/* MJIT <-> VM frame push counts */
|
|
307
360
|
RB_DEBUG_COUNTER(mjit_frame_VM2VM)
|
|
308
361
|
RB_DEBUG_COUNTER(mjit_frame_VM2JT)
|
|
@@ -312,9 +365,11 @@ RB_DEBUG_COUNTER(mjit_frame_JT2VM)
|
|
|
312
365
|
/* MJIT cancel counters */
|
|
313
366
|
RB_DEBUG_COUNTER(mjit_cancel)
|
|
314
367
|
RB_DEBUG_COUNTER(mjit_cancel_ivar_inline)
|
|
368
|
+
RB_DEBUG_COUNTER(mjit_cancel_exivar_inline)
|
|
315
369
|
RB_DEBUG_COUNTER(mjit_cancel_send_inline)
|
|
316
370
|
RB_DEBUG_COUNTER(mjit_cancel_opt_insn) /* CALL_SIMPLE_METHOD */
|
|
317
371
|
RB_DEBUG_COUNTER(mjit_cancel_invalidate_all)
|
|
372
|
+
RB_DEBUG_COUNTER(mjit_cancel_leave)
|
|
318
373
|
|
|
319
374
|
/* rb_mjit_unit_list length */
|
|
320
375
|
RB_DEBUG_COUNTER(mjit_length_unit_queue)
|
|
@@ -335,6 +390,10 @@ RB_DEBUG_COUNTER(load_path_is_not_realpath)
|
|
|
335
390
|
#ifndef RUBY_DEBUG_COUNTER_H
|
|
336
391
|
#define RUBY_DEBUG_COUNTER_H 1
|
|
337
392
|
|
|
393
|
+
#include "ruby/internal/config.h"
|
|
394
|
+
#include <stddef.h> /* for size_t */
|
|
395
|
+
#include "ruby/ruby.h" /* for VALUE */
|
|
396
|
+
|
|
338
397
|
#if !defined(__GNUC__) && USE_DEBUG_COUNTER
|
|
339
398
|
#error "USE_DEBUG_COUNTER is not supported by other than __GNUC__"
|
|
340
399
|
#endif
|
|
@@ -347,32 +406,62 @@ enum rb_debug_counter_type {
|
|
|
347
406
|
};
|
|
348
407
|
|
|
349
408
|
#if USE_DEBUG_COUNTER
|
|
350
|
-
#include "ruby/ruby.h"
|
|
351
|
-
|
|
352
409
|
extern size_t rb_debug_counter[];
|
|
410
|
+
RUBY_EXTERN struct rb_ractor_struct *ruby_single_main_ractor;
|
|
411
|
+
RUBY_EXTERN void rb_debug_counter_add_atomic(enum rb_debug_counter_type type, int add);
|
|
353
412
|
|
|
354
413
|
inline static int
|
|
355
414
|
rb_debug_counter_add(enum rb_debug_counter_type type, int add, int cond)
|
|
356
415
|
{
|
|
357
416
|
if (cond) {
|
|
358
|
-
|
|
417
|
+
if (ruby_single_main_ractor != NULL) {
|
|
418
|
+
rb_debug_counter[(int)type] += add;
|
|
419
|
+
}
|
|
420
|
+
else {
|
|
421
|
+
rb_debug_counter_add_atomic(type, add);
|
|
422
|
+
}
|
|
359
423
|
}
|
|
360
424
|
return cond;
|
|
361
425
|
}
|
|
362
426
|
|
|
427
|
+
inline static int
|
|
428
|
+
rb_debug_counter_max(enum rb_debug_counter_type type, unsigned int num)
|
|
429
|
+
{
|
|
430
|
+
// TODO: sync
|
|
431
|
+
if (rb_debug_counter[(int)type] < num) {
|
|
432
|
+
rb_debug_counter[(int)type] = num;
|
|
433
|
+
return 1;
|
|
434
|
+
}
|
|
435
|
+
else {
|
|
436
|
+
return 0;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
|
|
363
440
|
VALUE rb_debug_counter_reset(VALUE klass);
|
|
364
441
|
VALUE rb_debug_counter_show(VALUE klass);
|
|
365
442
|
|
|
366
443
|
#define RB_DEBUG_COUNTER_INC(type) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, 1)
|
|
367
444
|
#define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (!rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, !(cond)))
|
|
368
|
-
#define RB_DEBUG_COUNTER_INC_IF(type, cond) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, (cond))
|
|
445
|
+
#define RB_DEBUG_COUNTER_INC_IF(type, cond) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, !!(cond))
|
|
446
|
+
#define RB_DEBUG_COUNTER_ADD(type, num) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, (num), 1)
|
|
447
|
+
#define RB_DEBUG_COUNTER_SETMAX(type, num) rb_debug_counter_max(RB_DEBUG_COUNTER_##type, (unsigned int)(num))
|
|
369
448
|
|
|
370
449
|
#else
|
|
371
450
|
#define RB_DEBUG_COUNTER_INC(type) ((void)0)
|
|
372
|
-
#define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (cond)
|
|
373
|
-
#define RB_DEBUG_COUNTER_INC_IF(type, cond) (cond)
|
|
451
|
+
#define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (!!(cond))
|
|
452
|
+
#define RB_DEBUG_COUNTER_INC_IF(type, cond) (!!(cond))
|
|
453
|
+
#define RB_DEBUG_COUNTER_ADD(type, num) ((void)0)
|
|
454
|
+
#define RB_DEBUG_COUNTER_SETMAX(type, num) 0
|
|
374
455
|
#endif
|
|
375
456
|
|
|
376
457
|
void rb_debug_counter_show_results(const char *msg);
|
|
377
458
|
|
|
459
|
+
RUBY_SYMBOL_EXPORT_BEGIN
|
|
460
|
+
|
|
461
|
+
size_t ruby_debug_counter_get(const char **names_ptr, size_t *counters_ptr);
|
|
462
|
+
void ruby_debug_counter_reset(void);
|
|
463
|
+
void ruby_debug_counter_show_at_exit(int enable);
|
|
464
|
+
|
|
465
|
+
RUBY_SYMBOL_EXPORT_END
|
|
466
|
+
|
|
378
467
|
#endif /* RUBY_DEBUG_COUNTER_H */
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
#ifndef DLN_H
|
|
2
|
+
#define DLN_H
|
|
1
3
|
/**********************************************************************
|
|
2
4
|
|
|
3
5
|
dln.h -
|
|
@@ -9,24 +11,7 @@
|
|
|
9
11
|
|
|
10
12
|
**********************************************************************/
|
|
11
13
|
|
|
12
|
-
#
|
|
13
|
-
#define DLN_H
|
|
14
|
-
|
|
15
|
-
#ifdef __cplusplus
|
|
16
|
-
# ifndef HAVE_PROTOTYPES
|
|
17
|
-
# define HAVE_PROTOTYPES 1
|
|
18
|
-
# endif
|
|
19
|
-
# ifndef HAVE_STDARG_PROTOTYPES
|
|
20
|
-
# define HAVE_STDARG_PROTOTYPES 1
|
|
21
|
-
# endif
|
|
22
|
-
#endif
|
|
23
|
-
|
|
24
|
-
#undef _
|
|
25
|
-
#ifdef HAVE_PROTOTYPES
|
|
26
|
-
# define _(args) args
|
|
27
|
-
#else
|
|
28
|
-
# define _(args) ()
|
|
29
|
-
#endif
|
|
14
|
+
#include "ruby/defines.h" /* for RUBY_SYMBOL_EXPORT_BEGIN */
|
|
30
15
|
|
|
31
16
|
RUBY_SYMBOL_EXPORT_BEGIN
|
|
32
17
|
|
|
@@ -39,11 +24,6 @@ RUBY_SYMBOL_EXPORT_BEGIN
|
|
|
39
24
|
|
|
40
25
|
char *dln_find_exe_r(const char*,const char*,char*,size_t DLN_FIND_EXTRA_ARG_DECL);
|
|
41
26
|
char *dln_find_file_r(const char*,const char*,char*,size_t DLN_FIND_EXTRA_ARG_DECL);
|
|
42
|
-
|
|
43
|
-
#ifdef USE_DLN_A_OUT
|
|
44
|
-
extern char *dln_argv0;
|
|
45
|
-
#endif
|
|
46
|
-
|
|
47
27
|
void *dln_load(const char*);
|
|
48
28
|
|
|
49
29
|
RUBY_SYMBOL_EXPORT_END
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
#ifndef RUBY_ENCINDEX_H
|
|
2
|
+
#define RUBY_ENCINDEX_H 1
|
|
1
3
|
/**********************************************************************
|
|
2
4
|
|
|
3
5
|
encindex.h -
|
|
@@ -9,8 +11,7 @@
|
|
|
9
11
|
|
|
10
12
|
**********************************************************************/
|
|
11
13
|
|
|
12
|
-
#
|
|
13
|
-
#define RUBY_ENCINDEX_H 1
|
|
14
|
+
#include "ruby/encoding.h" /* rb_ascii8bit_encindex etc. */
|
|
14
15
|
#if defined(__cplusplus)
|
|
15
16
|
extern "C" {
|
|
16
17
|
#if 0
|