debase-ruby_core_source 0.10.14 → 0.10.17
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 +32 -0
- data/debase-ruby_core_source.gemspec +2 -2
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/addr2line.h +1 -1
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ccan/build_assert/build_assert.h +40 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ccan/check_type/check_type.h +63 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ccan/container_of/container_of.h +142 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ccan/list/list.h +773 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ccan/str/str.h +16 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/constant.h +51 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/debug_counter.h +109 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/dln.h +10 -9
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/encindex.h +69 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/eval_intern.h +334 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/gc.h +27 -10
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/id.h +250 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/id_table.h +31 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/insns.inc +217 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/insns_info.inc +1570 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/internal.h +2036 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/iseq.h +308 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/known_errors.inc +16 -1
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/method.h +218 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/node.h +115 -79
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/node_name.inc +12 -22
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/opt_sc.inc +1601 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/optinsn.inc +103 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/optunifs.inc +28 -83
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/parse.h +74 -60
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/probes_helper.h +43 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/regenc.h +254 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/regint.h +299 -211
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/regparse.h +45 -37
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/revision.h +1 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ruby_assert.h +54 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/ruby_atomic.h +84 -26
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/siphash.h +1 -1
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/symbol.h +108 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/thread_pthread.h +14 -11
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/thread_win32.h +2 -6
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/timev.h +42 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/transcode_data.h +34 -12
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/version.h +73 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm.inc +3667 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm_call_iseq_optimized.inc +213 -0
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm_core.h +1768 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550/debug.h → ruby-2.5.4-p155/vm_debug.h} +4 -8
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/vm_exec.h +38 -30
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm_insnhelper.h +255 -0
- data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/vm_opts.h +14 -9
- data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vmtc.inc +214 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/addr2line.h +20 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/builtin.h +84 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/build_assert/build_assert.h +40 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/check_type/check_type.h +63 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/container_of/container_of.h +142 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/list/list.h +789 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/str/str.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/constant.h +55 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/darray.h +226 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/debug_counter.h +469 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/dln.h +31 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/encindex.h +70 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/eval_intern.h +339 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/gc.h +143 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/hrtime.h +216 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/id.h +295 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/id_table.h +36 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/insns.inc +249 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/insns_info.inc +9064 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/array.h +113 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/bignum.h +246 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/bits.h +565 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/class.h +211 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/cmdlineopt.h +61 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/compar.h +49 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/compile.h +35 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/compilers.h +107 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/complex.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/cont.h +24 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/dir.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/enc.h +19 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/encoding.h +30 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/enum.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/enumerator.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/error.h +191 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/eval.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/file.h +38 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/fixnum.h +184 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/gc.h +188 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/hash.h +243 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/imemo.h +243 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/inits.h +50 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/io.h +38 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/load.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/loadpath.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/math.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/missing.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/numeric.h +271 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/object.h +83 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/parse.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/proc.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/process.h +137 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/ractor.h +6 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/random.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/range.h +40 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/rational.h +72 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/re.h +30 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/sanitizers.h +190 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/serial.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/signal.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/static_assert.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/string.h +141 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/struct.h +153 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/symbol.h +41 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/thread.h +53 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/time.h +34 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/transcode.h +20 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/util.h +27 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/variable.h +83 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/vm.h +134 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/warnings.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal.h +109 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/iseq.h +325 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/known_errors.inc +791 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/method.h +254 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/mjit.h +231 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/mjit_compile.inc +8333 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/node.h +510 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/node_name.inc +208 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/opt_sc.inc +109 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/optinsn.inc +128 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/optunifs.inc +43 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/parse.h +214 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/probes_helper.h +44 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ractor_core.h +346 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/regenc.h +255 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/regint.h +957 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/regparse.h +370 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/revision.h +2 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ruby_assert.h +14 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ruby_atomic.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/siphash.h +48 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/symbol.h +119 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/thread_none.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/thread_pthread.h +115 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/thread_win32.h +61 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/timev.h +57 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/transcode_data.h +138 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/transient_heap.h +65 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/variable.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/version.h +91 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm.inc +5481 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_call_iseq_optimized.inc +244 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_callinfo.h +502 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_core.h +2089 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_debug.h +113 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_exec.h +197 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_insnhelper.h +262 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_opts.h +73 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_sync.h +137 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vmtc.inc +243 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit.h +73 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_asm.h +408 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_codegen.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_core.h +307 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_iface.h +38 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/addr2line.h +20 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/builtin.h +121 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ccan/build_assert/build_assert.h +40 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ccan/check_type/check_type.h +63 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ccan/container_of/container_of.h +142 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ccan/list/list.h +789 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ccan/str/str.h +17 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/constant.h +55 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/darray.h +179 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/debug_counter.h +469 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/dln.h +31 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/encindex.h +70 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/eval_intern.h +339 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/gc.h +143 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/hrtime.h +226 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/id.h +295 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/id_table.h +36 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/insns.inc +249 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/insns_info.inc +9061 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/array.h +162 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/bignum.h +246 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/bits.h +565 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/class.h +212 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/cmdlineopt.h +58 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/compar.h +49 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/compile.h +35 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/compilers.h +107 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/complex.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/cont.h +26 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/dir.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/enc.h +19 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/encoding.h +30 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/enum.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/enumerator.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/error.h +191 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/eval.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/file.h +38 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/fixnum.h +184 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/gc.h +188 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/hash.h +243 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/imemo.h +242 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/inits.h +50 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/io.h +38 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/load.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/loadpath.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/math.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/missing.h +18 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/numeric.h +271 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/object.h +83 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/parse.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/proc.h +32 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/process.h +137 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/ractor.h +6 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/random.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/range.h +40 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/rational.h +72 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/re.h +30 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/sanitizers.h +190 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/serial.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/signal.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/static_assert.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/string.h +146 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/struct.h +153 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/symbol.h +42 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/thread.h +54 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/time.h +34 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/transcode.h +20 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/util.h +27 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/variable.h +83 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/vm.h +134 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/warnings.h +16 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal.h +113 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/iseq.h +328 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/known_errors.inc +791 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/method.h +253 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/mjit.h +136 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/mjit_compile_attr.inc +430 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/mjit_compiler.h +58 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/mjit_unit.h +29 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/node.h +510 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/node_name.inc +208 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/opt_sc.inc +109 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/optinsn.inc +128 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/optunifs.inc +43 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/parse.h +214 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/probes_helper.h +44 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ractor_core.h +341 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/regenc.h +255 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/regint.h +957 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/regparse.h +370 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/revision.h +2 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ruby_assert.h +14 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ruby_atomic.h +23 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/siphash.h +48 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/symbol.h +119 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/thread_none.h +20 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/thread_pthread.h +132 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/thread_win32.h +63 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/timev.h +57 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/transcode_data.h +138 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/transient_heap.h +65 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/variable.h +21 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/version.h +68 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm.inc +5476 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_call_iseq_optimized.inc +244 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_callinfo.h +522 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_core.h +2130 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_debug.h +122 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_exec.h +197 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_insnhelper.h +269 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_opts.h +73 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_sync.h +137 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vmtc.inc +243 -0
- data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/yjit.h +72 -0
- data/lib/debase/ruby_core_source/version.rb +1 -1
- metadata +284 -44
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/constant.h +0 -34
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/encdb.h +0 -167
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/eval_intern.h +0 -234
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/id.h +0 -177
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/insns.inc +0 -179
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/insns_info.inc +0 -695
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/internal.h +0 -242
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/iseq.h +0 -126
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/method.h +0 -105
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/opt_sc.inc +0 -670
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/optinsn.inc +0 -30
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/regenc.h +0 -219
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/revision.h +0 -1
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/timev.h +0 -21
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/transdb.h +0 -189
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/version.h +0 -52
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vm.inc +0 -3054
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vm_core.h +0 -763
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vm_insnhelper.h +0 -220
- data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vmtc.inc +0 -97
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
#ifndef RUBY_VM_SYNC_H
|
|
2
|
+
#define RUBY_VM_SYNC_H
|
|
3
|
+
|
|
4
|
+
#include "vm_debug.h"
|
|
5
|
+
#include "debug_counter.h"
|
|
6
|
+
|
|
7
|
+
#if USE_RUBY_DEBUG_LOG
|
|
8
|
+
#define LOCATION_ARGS const char *file, int line
|
|
9
|
+
#define LOCATION_PARAMS file, line
|
|
10
|
+
#define APPEND_LOCATION_ARGS , const char *file, int line
|
|
11
|
+
#define APPEND_LOCATION_PARAMS , file, line
|
|
12
|
+
#else
|
|
13
|
+
#define LOCATION_ARGS void
|
|
14
|
+
#define LOCATION_PARAMS
|
|
15
|
+
#define APPEND_LOCATION_ARGS
|
|
16
|
+
#define APPEND_LOCATION_PARAMS
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
bool rb_vm_locked_p(void);
|
|
20
|
+
void rb_vm_lock_body(LOCATION_ARGS);
|
|
21
|
+
void rb_vm_unlock_body(LOCATION_ARGS);
|
|
22
|
+
|
|
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);
|
|
27
|
+
void rb_vm_lock_leave_body(unsigned int *lev APPEND_LOCATION_ARGS);
|
|
28
|
+
void rb_vm_barrier(void);
|
|
29
|
+
|
|
30
|
+
#if RUBY_DEBUG
|
|
31
|
+
// GET_VM()
|
|
32
|
+
#include "vm_core.h"
|
|
33
|
+
#endif
|
|
34
|
+
|
|
35
|
+
RUBY_EXTERN struct rb_ractor_struct *ruby_single_main_ractor; // ractor.c
|
|
36
|
+
|
|
37
|
+
static inline bool
|
|
38
|
+
rb_multi_ractor_p(void)
|
|
39
|
+
{
|
|
40
|
+
if (LIKELY(ruby_single_main_ractor)) {
|
|
41
|
+
// 0 on boot time.
|
|
42
|
+
RUBY_ASSERT(GET_VM()->ractor.cnt <= 1);
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
// multi-ractor mode can run ractor.cnt == 1
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static inline void
|
|
52
|
+
rb_vm_lock(const char *file, int line)
|
|
53
|
+
{
|
|
54
|
+
RB_DEBUG_COUNTER_INC(vm_sync_lock);
|
|
55
|
+
|
|
56
|
+
if (rb_multi_ractor_p()) {
|
|
57
|
+
rb_vm_lock_body(LOCATION_PARAMS);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
static inline void
|
|
62
|
+
rb_vm_unlock(const char *file, int line)
|
|
63
|
+
{
|
|
64
|
+
if (rb_multi_ractor_p()) {
|
|
65
|
+
rb_vm_unlock_body(LOCATION_PARAMS);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
static inline void
|
|
70
|
+
rb_vm_lock_enter(unsigned int *lev, const char *file, int line)
|
|
71
|
+
{
|
|
72
|
+
RB_DEBUG_COUNTER_INC(vm_sync_lock_enter);
|
|
73
|
+
|
|
74
|
+
if (rb_multi_ractor_p()) {
|
|
75
|
+
rb_vm_lock_enter_body(lev APPEND_LOCATION_PARAMS);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
static inline void
|
|
80
|
+
rb_vm_lock_enter_nb(unsigned int *lev, const char *file, int line)
|
|
81
|
+
{
|
|
82
|
+
RB_DEBUG_COUNTER_INC(vm_sync_lock_enter_nb);
|
|
83
|
+
|
|
84
|
+
if (rb_multi_ractor_p()) {
|
|
85
|
+
rb_vm_lock_enter_body_nb(lev APPEND_LOCATION_PARAMS);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
static inline void
|
|
90
|
+
rb_vm_lock_leave(unsigned int *lev, const char *file, int line)
|
|
91
|
+
{
|
|
92
|
+
if (rb_multi_ractor_p()) {
|
|
93
|
+
rb_vm_lock_leave_body(lev APPEND_LOCATION_PARAMS);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
static inline void
|
|
98
|
+
rb_vm_lock_enter_cr(struct rb_ractor_struct *cr, unsigned int *levp, const char *file, int line)
|
|
99
|
+
{
|
|
100
|
+
RB_DEBUG_COUNTER_INC(vm_sync_lock_enter_cr);
|
|
101
|
+
rb_vm_lock_enter_body_cr(cr, levp APPEND_LOCATION_PARAMS);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
static inline void
|
|
105
|
+
rb_vm_lock_leave_cr(struct rb_ractor_struct *cr, unsigned int *levp, const char *file, int line)
|
|
106
|
+
{
|
|
107
|
+
rb_vm_lock_leave_body(levp APPEND_LOCATION_PARAMS);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
#define RB_VM_LOCKED_P() rb_vm_locked_p()
|
|
111
|
+
|
|
112
|
+
#define RB_VM_LOCK() rb_vm_lock(__FILE__, __LINE__)
|
|
113
|
+
#define RB_VM_UNLOCK() rb_vm_unlock(__FILE__, __LINE__)
|
|
114
|
+
|
|
115
|
+
#define RB_VM_LOCK_ENTER_CR_LEV(cr, levp) rb_vm_lock_enter_cr(cr, levp, __FILE__, __LINE__)
|
|
116
|
+
#define RB_VM_LOCK_LEAVE_CR_LEV(cr, levp) rb_vm_lock_leave_cr(cr, levp, __FILE__, __LINE__)
|
|
117
|
+
#define RB_VM_LOCK_ENTER_LEV(levp) rb_vm_lock_enter(levp, __FILE__, __LINE__)
|
|
118
|
+
#define RB_VM_LOCK_LEAVE_LEV(levp) rb_vm_lock_leave(levp, __FILE__, __LINE__)
|
|
119
|
+
|
|
120
|
+
#define RB_VM_LOCK_ENTER() { unsigned int _lev; RB_VM_LOCK_ENTER_LEV(&_lev);
|
|
121
|
+
#define RB_VM_LOCK_LEAVE() RB_VM_LOCK_LEAVE_LEV(&_lev); }
|
|
122
|
+
|
|
123
|
+
#define RB_VM_LOCK_ENTER_LEV_NB(levp) rb_vm_lock_enter_nb(levp, __FILE__, __LINE__)
|
|
124
|
+
#define RB_VM_LOCK_ENTER_NO_BARRIER() { unsigned int _lev; RB_VM_LOCK_ENTER_LEV_NB(&_lev);
|
|
125
|
+
#define RB_VM_LOCK_LEAVE_NO_BARRIER() RB_VM_LOCK_LEAVE_LEV(&_lev); }
|
|
126
|
+
|
|
127
|
+
#if RUBY_DEBUG > 0
|
|
128
|
+
void RUBY_ASSERT_vm_locking(void);
|
|
129
|
+
void RUBY_ASSERT_vm_unlocking(void);
|
|
130
|
+
#define ASSERT_vm_locking() RUBY_ASSERT_vm_locking()
|
|
131
|
+
#define ASSERT_vm_unlocking() RUBY_ASSERT_vm_unlocking()
|
|
132
|
+
#else
|
|
133
|
+
#define ASSERT_vm_locking()
|
|
134
|
+
#define ASSERT_vm_unlocking()
|
|
135
|
+
#endif
|
|
136
|
+
|
|
137
|
+
#endif // RUBY_VM_SYNC_H
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/* -*- C -*- */
|
|
2
|
+
|
|
3
|
+
/* This is an auto-generated file and is a part of the programming language
|
|
4
|
+
* Ruby. The person who created a program to generate this file (``I''
|
|
5
|
+
* hereafter) would like to refrain from defining licensing of this generated
|
|
6
|
+
* source code.
|
|
7
|
+
*
|
|
8
|
+
* This file consists of many small parts of codes copyrighted by each author,
|
|
9
|
+
* not only the ``I'' person. Those original authors agree with some
|
|
10
|
+
* open-source license. I believe that the license we agree is the condition
|
|
11
|
+
* mentioned in the file COPYING. It states "4. You may modify and include
|
|
12
|
+
* the part of the software into any other software ...". But the problem is,
|
|
13
|
+
* the license never makes it clear if such modified parts still remain in the
|
|
14
|
+
* same license, or not. The fact that we agree with the source code's
|
|
15
|
+
* licensing terms does not automatically define that of generated ones. This
|
|
16
|
+
* is the reason why this file is under an unclear situation. All what I know
|
|
17
|
+
* is that above provision guarantees this file to exist.
|
|
18
|
+
*
|
|
19
|
+
* Please let me hesitate to declare something about this nuanced contract. I
|
|
20
|
+
* am not in the position to take over other authors' license to merge into my
|
|
21
|
+
* one. Changing them to (say) GPLv3 is not doable by myself. Perhaps someday
|
|
22
|
+
* it might turn out to be okay to say this file is under a license. I wish
|
|
23
|
+
* the situation would become more clear in the future. */
|
|
24
|
+
/*******************************************************************/
|
|
25
|
+
/*******************************************************************/
|
|
26
|
+
/*******************************************************************/
|
|
27
|
+
/**
|
|
28
|
+
This file is for threaded code.
|
|
29
|
+
|
|
30
|
+
----
|
|
31
|
+
This file is auto generated by insns2vm.rb
|
|
32
|
+
DO NOT TOUCH!
|
|
33
|
+
|
|
34
|
+
If you want to fix something, you must edit "tool/ruby_vm/views/vmtc.inc.erb"
|
|
35
|
+
or tool/insns2vm.rb
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
static const void *const insns_address_table[] = {
|
|
39
|
+
LABEL_PTR(nop),
|
|
40
|
+
LABEL_PTR(getlocal),
|
|
41
|
+
LABEL_PTR(setlocal),
|
|
42
|
+
LABEL_PTR(getblockparam),
|
|
43
|
+
LABEL_PTR(setblockparam),
|
|
44
|
+
LABEL_PTR(getblockparamproxy),
|
|
45
|
+
LABEL_PTR(getspecial),
|
|
46
|
+
LABEL_PTR(setspecial),
|
|
47
|
+
LABEL_PTR(getinstancevariable),
|
|
48
|
+
LABEL_PTR(setinstancevariable),
|
|
49
|
+
LABEL_PTR(getclassvariable),
|
|
50
|
+
LABEL_PTR(setclassvariable),
|
|
51
|
+
LABEL_PTR(getconstant),
|
|
52
|
+
LABEL_PTR(setconstant),
|
|
53
|
+
LABEL_PTR(getglobal),
|
|
54
|
+
LABEL_PTR(setglobal),
|
|
55
|
+
LABEL_PTR(putnil),
|
|
56
|
+
LABEL_PTR(putself),
|
|
57
|
+
LABEL_PTR(putobject),
|
|
58
|
+
LABEL_PTR(putspecialobject),
|
|
59
|
+
LABEL_PTR(putstring),
|
|
60
|
+
LABEL_PTR(concatstrings),
|
|
61
|
+
LABEL_PTR(anytostring),
|
|
62
|
+
LABEL_PTR(toregexp),
|
|
63
|
+
LABEL_PTR(intern),
|
|
64
|
+
LABEL_PTR(newarray),
|
|
65
|
+
LABEL_PTR(newarraykwsplat),
|
|
66
|
+
LABEL_PTR(duparray),
|
|
67
|
+
LABEL_PTR(duphash),
|
|
68
|
+
LABEL_PTR(expandarray),
|
|
69
|
+
LABEL_PTR(concatarray),
|
|
70
|
+
LABEL_PTR(splatarray),
|
|
71
|
+
LABEL_PTR(newhash),
|
|
72
|
+
LABEL_PTR(newrange),
|
|
73
|
+
LABEL_PTR(pop),
|
|
74
|
+
LABEL_PTR(dup),
|
|
75
|
+
LABEL_PTR(dupn),
|
|
76
|
+
LABEL_PTR(swap),
|
|
77
|
+
LABEL_PTR(topn),
|
|
78
|
+
LABEL_PTR(setn),
|
|
79
|
+
LABEL_PTR(adjuststack),
|
|
80
|
+
LABEL_PTR(defined),
|
|
81
|
+
LABEL_PTR(checkmatch),
|
|
82
|
+
LABEL_PTR(checkkeyword),
|
|
83
|
+
LABEL_PTR(checktype),
|
|
84
|
+
LABEL_PTR(defineclass),
|
|
85
|
+
LABEL_PTR(definemethod),
|
|
86
|
+
LABEL_PTR(definesmethod),
|
|
87
|
+
LABEL_PTR(send),
|
|
88
|
+
LABEL_PTR(opt_send_without_block),
|
|
89
|
+
LABEL_PTR(objtostring),
|
|
90
|
+
LABEL_PTR(opt_str_freeze),
|
|
91
|
+
LABEL_PTR(opt_nil_p),
|
|
92
|
+
LABEL_PTR(opt_str_uminus),
|
|
93
|
+
LABEL_PTR(opt_newarray_max),
|
|
94
|
+
LABEL_PTR(opt_newarray_min),
|
|
95
|
+
LABEL_PTR(invokesuper),
|
|
96
|
+
LABEL_PTR(invokeblock),
|
|
97
|
+
LABEL_PTR(leave),
|
|
98
|
+
LABEL_PTR(throw),
|
|
99
|
+
LABEL_PTR(jump),
|
|
100
|
+
LABEL_PTR(branchif),
|
|
101
|
+
LABEL_PTR(branchunless),
|
|
102
|
+
LABEL_PTR(branchnil),
|
|
103
|
+
LABEL_PTR(opt_getinlinecache),
|
|
104
|
+
LABEL_PTR(opt_setinlinecache),
|
|
105
|
+
LABEL_PTR(once),
|
|
106
|
+
LABEL_PTR(opt_case_dispatch),
|
|
107
|
+
LABEL_PTR(opt_plus),
|
|
108
|
+
LABEL_PTR(opt_minus),
|
|
109
|
+
LABEL_PTR(opt_mult),
|
|
110
|
+
LABEL_PTR(opt_div),
|
|
111
|
+
LABEL_PTR(opt_mod),
|
|
112
|
+
LABEL_PTR(opt_eq),
|
|
113
|
+
LABEL_PTR(opt_neq),
|
|
114
|
+
LABEL_PTR(opt_lt),
|
|
115
|
+
LABEL_PTR(opt_le),
|
|
116
|
+
LABEL_PTR(opt_gt),
|
|
117
|
+
LABEL_PTR(opt_ge),
|
|
118
|
+
LABEL_PTR(opt_ltlt),
|
|
119
|
+
LABEL_PTR(opt_and),
|
|
120
|
+
LABEL_PTR(opt_or),
|
|
121
|
+
LABEL_PTR(opt_aref),
|
|
122
|
+
LABEL_PTR(opt_aset),
|
|
123
|
+
LABEL_PTR(opt_aset_with),
|
|
124
|
+
LABEL_PTR(opt_aref_with),
|
|
125
|
+
LABEL_PTR(opt_length),
|
|
126
|
+
LABEL_PTR(opt_size),
|
|
127
|
+
LABEL_PTR(opt_empty_p),
|
|
128
|
+
LABEL_PTR(opt_succ),
|
|
129
|
+
LABEL_PTR(opt_not),
|
|
130
|
+
LABEL_PTR(opt_regexpmatch2),
|
|
131
|
+
LABEL_PTR(invokebuiltin),
|
|
132
|
+
LABEL_PTR(opt_invokebuiltin_delegate),
|
|
133
|
+
LABEL_PTR(opt_invokebuiltin_delegate_leave),
|
|
134
|
+
LABEL_PTR(getlocal_WC_0),
|
|
135
|
+
LABEL_PTR(getlocal_WC_1),
|
|
136
|
+
LABEL_PTR(setlocal_WC_0),
|
|
137
|
+
LABEL_PTR(setlocal_WC_1),
|
|
138
|
+
LABEL_PTR(putobject_INT2FIX_0_),
|
|
139
|
+
LABEL_PTR(putobject_INT2FIX_1_),
|
|
140
|
+
LABEL_PTR(trace_nop),
|
|
141
|
+
LABEL_PTR(trace_getlocal),
|
|
142
|
+
LABEL_PTR(trace_setlocal),
|
|
143
|
+
LABEL_PTR(trace_getblockparam),
|
|
144
|
+
LABEL_PTR(trace_setblockparam),
|
|
145
|
+
LABEL_PTR(trace_getblockparamproxy),
|
|
146
|
+
LABEL_PTR(trace_getspecial),
|
|
147
|
+
LABEL_PTR(trace_setspecial),
|
|
148
|
+
LABEL_PTR(trace_getinstancevariable),
|
|
149
|
+
LABEL_PTR(trace_setinstancevariable),
|
|
150
|
+
LABEL_PTR(trace_getclassvariable),
|
|
151
|
+
LABEL_PTR(trace_setclassvariable),
|
|
152
|
+
LABEL_PTR(trace_getconstant),
|
|
153
|
+
LABEL_PTR(trace_setconstant),
|
|
154
|
+
LABEL_PTR(trace_getglobal),
|
|
155
|
+
LABEL_PTR(trace_setglobal),
|
|
156
|
+
LABEL_PTR(trace_putnil),
|
|
157
|
+
LABEL_PTR(trace_putself),
|
|
158
|
+
LABEL_PTR(trace_putobject),
|
|
159
|
+
LABEL_PTR(trace_putspecialobject),
|
|
160
|
+
LABEL_PTR(trace_putstring),
|
|
161
|
+
LABEL_PTR(trace_concatstrings),
|
|
162
|
+
LABEL_PTR(trace_anytostring),
|
|
163
|
+
LABEL_PTR(trace_toregexp),
|
|
164
|
+
LABEL_PTR(trace_intern),
|
|
165
|
+
LABEL_PTR(trace_newarray),
|
|
166
|
+
LABEL_PTR(trace_newarraykwsplat),
|
|
167
|
+
LABEL_PTR(trace_duparray),
|
|
168
|
+
LABEL_PTR(trace_duphash),
|
|
169
|
+
LABEL_PTR(trace_expandarray),
|
|
170
|
+
LABEL_PTR(trace_concatarray),
|
|
171
|
+
LABEL_PTR(trace_splatarray),
|
|
172
|
+
LABEL_PTR(trace_newhash),
|
|
173
|
+
LABEL_PTR(trace_newrange),
|
|
174
|
+
LABEL_PTR(trace_pop),
|
|
175
|
+
LABEL_PTR(trace_dup),
|
|
176
|
+
LABEL_PTR(trace_dupn),
|
|
177
|
+
LABEL_PTR(trace_swap),
|
|
178
|
+
LABEL_PTR(trace_topn),
|
|
179
|
+
LABEL_PTR(trace_setn),
|
|
180
|
+
LABEL_PTR(trace_adjuststack),
|
|
181
|
+
LABEL_PTR(trace_defined),
|
|
182
|
+
LABEL_PTR(trace_checkmatch),
|
|
183
|
+
LABEL_PTR(trace_checkkeyword),
|
|
184
|
+
LABEL_PTR(trace_checktype),
|
|
185
|
+
LABEL_PTR(trace_defineclass),
|
|
186
|
+
LABEL_PTR(trace_definemethod),
|
|
187
|
+
LABEL_PTR(trace_definesmethod),
|
|
188
|
+
LABEL_PTR(trace_send),
|
|
189
|
+
LABEL_PTR(trace_opt_send_without_block),
|
|
190
|
+
LABEL_PTR(trace_objtostring),
|
|
191
|
+
LABEL_PTR(trace_opt_str_freeze),
|
|
192
|
+
LABEL_PTR(trace_opt_nil_p),
|
|
193
|
+
LABEL_PTR(trace_opt_str_uminus),
|
|
194
|
+
LABEL_PTR(trace_opt_newarray_max),
|
|
195
|
+
LABEL_PTR(trace_opt_newarray_min),
|
|
196
|
+
LABEL_PTR(trace_invokesuper),
|
|
197
|
+
LABEL_PTR(trace_invokeblock),
|
|
198
|
+
LABEL_PTR(trace_leave),
|
|
199
|
+
LABEL_PTR(trace_throw),
|
|
200
|
+
LABEL_PTR(trace_jump),
|
|
201
|
+
LABEL_PTR(trace_branchif),
|
|
202
|
+
LABEL_PTR(trace_branchunless),
|
|
203
|
+
LABEL_PTR(trace_branchnil),
|
|
204
|
+
LABEL_PTR(trace_opt_getinlinecache),
|
|
205
|
+
LABEL_PTR(trace_opt_setinlinecache),
|
|
206
|
+
LABEL_PTR(trace_once),
|
|
207
|
+
LABEL_PTR(trace_opt_case_dispatch),
|
|
208
|
+
LABEL_PTR(trace_opt_plus),
|
|
209
|
+
LABEL_PTR(trace_opt_minus),
|
|
210
|
+
LABEL_PTR(trace_opt_mult),
|
|
211
|
+
LABEL_PTR(trace_opt_div),
|
|
212
|
+
LABEL_PTR(trace_opt_mod),
|
|
213
|
+
LABEL_PTR(trace_opt_eq),
|
|
214
|
+
LABEL_PTR(trace_opt_neq),
|
|
215
|
+
LABEL_PTR(trace_opt_lt),
|
|
216
|
+
LABEL_PTR(trace_opt_le),
|
|
217
|
+
LABEL_PTR(trace_opt_gt),
|
|
218
|
+
LABEL_PTR(trace_opt_ge),
|
|
219
|
+
LABEL_PTR(trace_opt_ltlt),
|
|
220
|
+
LABEL_PTR(trace_opt_and),
|
|
221
|
+
LABEL_PTR(trace_opt_or),
|
|
222
|
+
LABEL_PTR(trace_opt_aref),
|
|
223
|
+
LABEL_PTR(trace_opt_aset),
|
|
224
|
+
LABEL_PTR(trace_opt_aset_with),
|
|
225
|
+
LABEL_PTR(trace_opt_aref_with),
|
|
226
|
+
LABEL_PTR(trace_opt_length),
|
|
227
|
+
LABEL_PTR(trace_opt_size),
|
|
228
|
+
LABEL_PTR(trace_opt_empty_p),
|
|
229
|
+
LABEL_PTR(trace_opt_succ),
|
|
230
|
+
LABEL_PTR(trace_opt_not),
|
|
231
|
+
LABEL_PTR(trace_opt_regexpmatch2),
|
|
232
|
+
LABEL_PTR(trace_invokebuiltin),
|
|
233
|
+
LABEL_PTR(trace_opt_invokebuiltin_delegate),
|
|
234
|
+
LABEL_PTR(trace_opt_invokebuiltin_delegate_leave),
|
|
235
|
+
LABEL_PTR(trace_getlocal_WC_0),
|
|
236
|
+
LABEL_PTR(trace_getlocal_WC_1),
|
|
237
|
+
LABEL_PTR(trace_setlocal_WC_0),
|
|
238
|
+
LABEL_PTR(trace_setlocal_WC_1),
|
|
239
|
+
LABEL_PTR(trace_putobject_INT2FIX_0_),
|
|
240
|
+
LABEL_PTR(trace_putobject_INT2FIX_1_),
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
ASSERT_VM_INSTRUCTION_SIZE(insns_address_table);
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#ifndef YJIT_H
|
|
2
|
+
#define YJIT_H 1
|
|
3
|
+
//
|
|
4
|
+
// This file contains definitions YJIT exposes to the CRuby codebase
|
|
5
|
+
//
|
|
6
|
+
|
|
7
|
+
#include "ruby/internal/config.h"
|
|
8
|
+
#include "ruby_assert.h" // for RUBY_DEBUG
|
|
9
|
+
#include "vm_core.h"
|
|
10
|
+
#include "method.h"
|
|
11
|
+
|
|
12
|
+
// YJIT_STATS controls whether to support runtime counters in generated code
|
|
13
|
+
// and in the interpreter.
|
|
14
|
+
#ifndef YJIT_STATS
|
|
15
|
+
# define YJIT_STATS RUBY_DEBUG
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
// We generate x86 assembly
|
|
19
|
+
#if (defined(__x86_64__) && !defined(_WIN32)) || (defined(_WIN32) && defined(_M_AMD64)) // x64 platforms without mingw/msys
|
|
20
|
+
# define YJIT_SUPPORTED_P 1
|
|
21
|
+
#else
|
|
22
|
+
# define YJIT_SUPPORTED_P 0
|
|
23
|
+
#endif
|
|
24
|
+
|
|
25
|
+
struct rb_yjit_options {
|
|
26
|
+
// Enable compilation with YJIT
|
|
27
|
+
bool yjit_enabled;
|
|
28
|
+
|
|
29
|
+
// Size of the executable memory block to allocate in MiB
|
|
30
|
+
unsigned exec_mem_size;
|
|
31
|
+
|
|
32
|
+
// Number of method calls after which to start generating code
|
|
33
|
+
// Threshold==1 means compile on first execution
|
|
34
|
+
unsigned call_threshold;
|
|
35
|
+
|
|
36
|
+
// Generate versions greedily until the limit is hit
|
|
37
|
+
bool greedy_versioning;
|
|
38
|
+
|
|
39
|
+
// Disable the propagation of type information
|
|
40
|
+
bool no_type_prop;
|
|
41
|
+
|
|
42
|
+
// Maximum number of versions per block
|
|
43
|
+
// 1 means always create generic versions
|
|
44
|
+
unsigned max_versions;
|
|
45
|
+
|
|
46
|
+
// Capture and print out stats
|
|
47
|
+
bool gen_stats;
|
|
48
|
+
|
|
49
|
+
// Run backend tests
|
|
50
|
+
bool test_backend;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
bool rb_yjit_enabled_p(void);
|
|
54
|
+
unsigned rb_yjit_call_threshold(void);
|
|
55
|
+
|
|
56
|
+
void rb_yjit_invalidate_all_method_lookup_assumptions(void);
|
|
57
|
+
void rb_yjit_method_lookup_change(VALUE klass, ID mid);
|
|
58
|
+
void rb_yjit_cme_invalidate(VALUE cme);
|
|
59
|
+
void rb_yjit_collect_vm_usage_insn(int insn);
|
|
60
|
+
void rb_yjit_collect_binding_alloc(void);
|
|
61
|
+
void rb_yjit_collect_binding_set(void);
|
|
62
|
+
bool rb_yjit_compile_iseq(const rb_iseq_t *iseq, rb_execution_context_t *ec);
|
|
63
|
+
void rb_yjit_init(struct rb_yjit_options *options);
|
|
64
|
+
void rb_yjit_bop_redefined(VALUE klass, const rb_method_entry_t *me, enum ruby_basic_operators bop);
|
|
65
|
+
void rb_yjit_constant_state_changed(void);
|
|
66
|
+
void rb_yjit_iseq_mark(const struct rb_iseq_constant_body *body);
|
|
67
|
+
void rb_yjit_iseq_update_references(const struct rb_iseq_constant_body *body);
|
|
68
|
+
void rb_yjit_iseq_free(const struct rb_iseq_constant_body *body);
|
|
69
|
+
void rb_yjit_before_ractor_spawn(void);
|
|
70
|
+
void rb_yjit_constant_ic_update(const rb_iseq_t *const iseq, IC ic);
|
|
71
|
+
void rb_yjit_tracing_invalidate_all(void);
|
|
72
|
+
|
|
73
|
+
#endif // #ifndef YJIT_H
|