datadog-ruby_core_source 3.3.6 → 3.3.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.datadog.md +7 -1
- data/datadog-ruby_core_source.gemspec +6 -1
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/id.h +7 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/array.h +1 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/basic_operators.h +2 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/bits.h +82 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/class.h +1 -1
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/encoding.h +2 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/error.h +2 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/fixnum.h +1 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/gc.h +23 -28
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/hash.h +1 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/imemo.h +7 -1
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/io.h +4 -1
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/parse.h +14 -2
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/ractor.h +4 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/sanitizers.h +36 -3
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/string.h +34 -18
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/thread.h +29 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/vm.h +3 -3
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/method.h +1 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/ast.h +2146 -453
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/defines.h +44 -7
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/diagnostic.h +24 -6
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/extension.h +2 -2
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/node.h +0 -21
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/options.h +94 -3
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/parser.h +82 -40
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/prism.h +47 -11
- data/lib/datadog/ruby_core_source/ruby-3.4.0-rc1/prism/regexp.h +43 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/static_literals.h +3 -2
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_char.h +1 -2
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_constant_pool.h +0 -8
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_integer.h +22 -15
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_newline_list.h +11 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_string.h +28 -12
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/version.h +3 -3
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism_compile.h +23 -12
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ractor_core.h +8 -20
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/rubyparser.h +168 -249
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/shape.h +2 -1
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/thread_pthread.h +26 -25
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/vm_core.h +62 -48
- data/lib/datadog/ruby_core_source/version.rb +1 -1
- data/lib/datadog/ruby_core_source.rb +14 -1
- metadata +109 -372
- data/.github/workflows/publish.yml +0 -18
- data/.gitignore +0 -7
- data/.idea/vcs.xml +0 -28
- data/CHANGELOG.md +0 -284
- data/CONTRIBUTING.md +0 -2
- data/Gemfile +0 -4
- data/Rakefile +0 -73
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/addr2line.h +0 -21
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/constant.h +0 -50
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/debug_counter.h +0 -109
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/dln.h +0 -51
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/encindex.h +0 -69
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/eval_intern.h +0 -334
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/gc.h +0 -116
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/id_table.h +0 -31
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/insns.inc +0 -217
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/insns_info.inc +0 -1570
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/known_errors.inc +0 -746
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/node_name.inc +0 -198
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/opt_sc.inc +0 -1601
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/optinsn.inc +0 -103
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/optunifs.inc +0 -61
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/parse.h +0 -206
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/probes_helper.h +0 -43
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/regenc.h +0 -254
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/regint.h +0 -938
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/regparse.h +0 -370
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/revision.h +0 -1
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/siphash.h +0 -48
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/symbol.h +0 -108
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/thread_win32.h +0 -36
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/timev.h +0 -42
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/transcode_data.h +0 -139
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/version.h +0 -73
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/vm.inc +0 -3667
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/vm_call_iseq_optimized.inc +0 -213
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/vm_exec.h +0 -192
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/vm_insnhelper.h +0 -255
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/vmtc.inc +0 -214
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/addr2line.h +0 -21
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/constant.h +0 -51
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/debug_counter.h +0 -109
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/dln.h +0 -51
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/encindex.h +0 -69
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/eval_intern.h +0 -334
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/gc.h +0 -116
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/id_table.h +0 -31
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/insns.inc +0 -217
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/insns_info.inc +0 -1570
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/known_errors.inc +0 -746
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/node_name.inc +0 -198
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/opt_sc.inc +0 -1601
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/optinsn.inc +0 -103
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/optunifs.inc +0 -61
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/parse.h +0 -206
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/probes_helper.h +0 -43
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/regenc.h +0 -254
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/regint.h +0 -938
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/regparse.h +0 -370
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/revision.h +0 -1
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/siphash.h +0 -48
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/symbol.h +0 -108
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/thread_win32.h +0 -36
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/timev.h +0 -42
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/transcode_data.h +0 -139
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/version.h +0 -73
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/vm.inc +0 -3667
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/vm_call_iseq_optimized.inc +0 -213
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/vm_exec.h +0 -192
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/vm_insnhelper.h +0 -255
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/vmtc.inc +0 -214
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/addr2line.h +0 -21
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/constant.h +0 -51
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/debug_counter.h +0 -109
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/dln.h +0 -51
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/encindex.h +0 -69
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/eval_intern.h +0 -334
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/gc.h +0 -116
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/id_table.h +0 -31
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/insns.inc +0 -217
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/insns_info.inc +0 -1570
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/known_errors.inc +0 -746
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/node_name.inc +0 -198
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/opt_sc.inc +0 -1601
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/optinsn.inc +0 -103
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/optunifs.inc +0 -61
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/parse.h +0 -200
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/probes_helper.h +0 -43
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/regenc.h +0 -254
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/regint.h +0 -938
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/regparse.h +0 -370
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/revision.h +0 -1
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/siphash.h +0 -48
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/symbol.h +0 -108
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/thread_win32.h +0 -36
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/timev.h +0 -42
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/transcode_data.h +0 -139
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/version.h +0 -73
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/vm.inc +0 -3667
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/vm_call_iseq_optimized.inc +0 -213
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/vm_exec.h +0 -192
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/vm_insnhelper.h +0 -255
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/vmtc.inc +0 -214
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/addr2line.h +0 -22
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/builtin.h +0 -117
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/constant.h +0 -53
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/darray.h +0 -246
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/debug_counter.h +0 -423
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/dln.h +0 -32
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/encindex.h +0 -70
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/eval_intern.h +0 -343
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/hrtime.h +0 -227
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/insns.inc +0 -251
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/insns_info.inc +0 -9215
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/known_errors.inc +0 -791
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/node_name.inc +0 -212
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/optinsn.inc +0 -128
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/optunifs.inc +0 -43
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/parse.h +0 -243
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/parser_bits.h +0 -564
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/parser_node.h +0 -32
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/probes_helper.h +0 -42
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/regenc.h +0 -254
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/regint.h +0 -1004
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/regparse.h +0 -371
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/revision.h +0 -5
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/rjit.h +0 -101
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/rjit_c.h +0 -164
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/siphash.h +0 -48
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/symbol.h +0 -118
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/thread_win32.h +0 -58
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/timev.h +0 -58
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/transcode_data.h +0 -138
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/variable.h +0 -39
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/version.h +0 -69
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm.inc +0 -5436
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_call_iseq_optimized.inc +0 -244
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_callinfo.h +0 -619
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_exec.h +0 -199
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_insnhelper.h +0 -261
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_sync.h +0 -137
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vmtc.inc +0 -245
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/yjit.h +0 -72
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/addr2line.h +0 -22
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/builtin.h +0 -117
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/constant.h +0 -53
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/darray.h +0 -246
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/debug_counter.h +0 -423
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/dln.h +0 -32
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/encindex.h +0 -70
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/eval_intern.h +0 -343
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/hrtime.h +0 -227
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/insns.inc +0 -251
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/insns_info.inc +0 -9215
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/known_errors.inc +0 -791
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/node_name.inc +0 -212
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/optinsn.inc +0 -128
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/optunifs.inc +0 -43
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/parse.h +0 -243
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/parser_bits.h +0 -564
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/parser_node.h +0 -32
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/probes_helper.h +0 -42
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/regenc.h +0 -254
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/regint.h +0 -1006
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/regparse.h +0 -371
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/revision.h +0 -5
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/rjit.h +0 -101
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/rjit_c.h +0 -164
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/siphash.h +0 -48
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/symbol.h +0 -118
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/thread_win32.h +0 -58
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/timev.h +0 -58
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/transcode_data.h +0 -138
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/variable.h +0 -39
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/version.h +0 -69
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm.inc +0 -5436
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_call_iseq_optimized.inc +0 -244
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_callinfo.h +0 -614
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_exec.h +0 -199
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_insnhelper.h +0 -261
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_sync.h +0 -137
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vmtc.inc +0 -245
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/yjit.h +0 -72
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/addr2line.h +0 -22
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/builtin.h +0 -119
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/constant.h +0 -53
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/darray.h +0 -191
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/debug_counter.h +0 -423
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/dln.h +0 -34
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/encindex.h +0 -70
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/eval_intern.h +0 -324
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/hrtime.h +0 -237
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/insns.inc +0 -259
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/insns_info.inc +0 -9530
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/known_errors.inc +0 -1419
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/node_name.inc +0 -224
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/optinsn.inc +0 -128
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/optunifs.inc +0 -43
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/parse.h +0 -243
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/parser_bits.h +0 -564
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/parser_node.h +0 -32
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/prism/regexp.h +0 -33
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string_list.h +0 -44
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/probes_helper.h +0 -42
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/regenc.h +0 -254
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/regint.h +0 -1010
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/regparse.h +0 -371
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/revision.h +0 -5
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/rjit.h +0 -101
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/rjit_c.h +0 -165
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/siphash.h +0 -48
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/symbol.h +0 -118
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/thread_win32.h +0 -58
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/timev.h +0 -58
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/transcode_data.h +0 -138
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/variable.h +0 -39
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/version.h +0 -69
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm.inc +0 -5643
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm_call_iseq_optimized.inc +0 -244
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm_callinfo.h +0 -605
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm_exec.h +0 -199
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm_insnhelper.h +0 -272
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm_sync.h +0 -137
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vmtc.inc +0 -253
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/yjit.h +0 -79
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/addr2line.h +0 -22
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/builtin.h +0 -119
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/constant.h +0 -53
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/darray.h +0 -209
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/debug_counter.h +0 -423
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/dln.h +0 -32
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/encindex.h +0 -70
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/eval_intern.h +0 -324
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/hrtime.h +0 -237
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/insns.inc +0 -265
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/insns_info.inc +0 -9902
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/known_errors.inc +0 -1419
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/node_name.inc +0 -224
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/optinsn.inc +0 -128
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/optunifs.inc +0 -43
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/parse.h +0 -244
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/parser_bits.h +0 -564
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/parser_node.h +0 -32
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/probes_helper.h +0 -42
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/regenc.h +0 -254
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/regint.h +0 -1006
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/regparse.h +0 -371
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/revision.h +0 -5
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/rjit.h +0 -101
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/rjit_c.h +0 -165
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/siphash.h +0 -48
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/symbol.h +0 -123
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/thread_win32.h +0 -58
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/timev.h +0 -58
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/transcode_data.h +0 -138
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/variable.h +0 -39
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/version.h +0 -69
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm.inc +0 -5840
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm_call_iseq_optimized.inc +0 -244
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm_callinfo.h +0 -627
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm_exec.h +0 -199
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm_insnhelper.h +0 -277
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm_sync.h +0 -137
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vmtc.inc +0 -259
- data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/yjit.h +0 -79
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ccan/build_assert/build_assert.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ccan/check_type/check_type.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ccan/container_of/container_of.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ccan/list/list.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ccan/str/str.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/id_table.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/bignum.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/cmdlineopt.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/compar.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/compile.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/compilers.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/complex.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/cont.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/dir.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/enc.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/enum.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/enumerator.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/eval.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/file.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/inits.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/load.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/loadpath.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/math.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/missing.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/numeric.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/object.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/proc.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/process.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/random.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/range.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/rational.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/re.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/ruby_parser.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/serial.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/signal.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/st.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/static_assert.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/struct.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/symbol.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/time.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/transcode.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/util.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/variable.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/warnings.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/iseq.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/node.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/parser_st.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/parser_value.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/encoding.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/pack.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/prettyprint.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_buffer.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_list.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_memchr.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_strncasecmp.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_strpbrk.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ruby_assert.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ruby_atomic.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/thread_none.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/vm_debug.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/vm_opts.h +0 -0
@@ -47,7 +47,7 @@ struct rb_shape {
|
|
47
47
|
attr_index_t next_iv_index;
|
48
48
|
uint32_t capacity; // Total capacity of the object with this shape
|
49
49
|
uint8_t type;
|
50
|
-
uint8_t
|
50
|
+
uint8_t heap_index;
|
51
51
|
shape_id_t parent_id;
|
52
52
|
redblack_node_t * ancestor_index;
|
53
53
|
};
|
@@ -164,6 +164,7 @@ int rb_shape_frozen_shape_p(rb_shape_t* shape);
|
|
164
164
|
rb_shape_t* rb_shape_transition_shape_frozen(VALUE obj);
|
165
165
|
bool rb_shape_transition_shape_remove_ivar(VALUE obj, ID id, rb_shape_t *shape, VALUE * removed);
|
166
166
|
rb_shape_t* rb_shape_get_next(rb_shape_t* shape, VALUE obj, ID id);
|
167
|
+
rb_shape_t* rb_shape_get_next_no_warnings(rb_shape_t* shape, VALUE obj, ID id);
|
167
168
|
|
168
169
|
rb_shape_t * rb_shape_rebuild_shape(rb_shape_t * initial_shape, rb_shape_t * dest_shape);
|
169
170
|
|
@@ -17,6 +17,31 @@
|
|
17
17
|
#define RB_NATIVETHREAD_LOCK_INIT PTHREAD_MUTEX_INITIALIZER
|
18
18
|
#define RB_NATIVETHREAD_COND_INIT PTHREAD_COND_INITIALIZER
|
19
19
|
|
20
|
+
// this data should be protected by timer_th.waiting_lock
|
21
|
+
struct rb_thread_sched_waiting {
|
22
|
+
enum thread_sched_waiting_flag {
|
23
|
+
thread_sched_waiting_none = 0x00,
|
24
|
+
thread_sched_waiting_timeout = 0x01,
|
25
|
+
thread_sched_waiting_io_read = 0x02,
|
26
|
+
thread_sched_waiting_io_write = 0x08,
|
27
|
+
thread_sched_waiting_io_force = 0x40, // ignore readable
|
28
|
+
} flags;
|
29
|
+
|
30
|
+
struct {
|
31
|
+
// should be compat with hrtime.h
|
32
|
+
#ifdef MY_RUBY_BUILD_MAY_TIME_TRAVEL
|
33
|
+
int128_t timeout;
|
34
|
+
#else
|
35
|
+
uint64_t timeout;
|
36
|
+
#endif
|
37
|
+
int fd; // -1 for timeout only
|
38
|
+
int result;
|
39
|
+
} data;
|
40
|
+
|
41
|
+
// connected to timer_th.waiting
|
42
|
+
struct ccan_list_node node;
|
43
|
+
};
|
44
|
+
|
20
45
|
// per-Thead scheduler helper data
|
21
46
|
struct rb_thread_sched_item {
|
22
47
|
struct {
|
@@ -38,30 +63,7 @@ struct rb_thread_sched_item {
|
|
38
63
|
struct ccan_list_node zombie_threads;
|
39
64
|
} node;
|
40
65
|
|
41
|
-
|
42
|
-
struct {
|
43
|
-
enum thread_sched_waiting_flag {
|
44
|
-
thread_sched_waiting_none = 0x00,
|
45
|
-
thread_sched_waiting_timeout = 0x01,
|
46
|
-
thread_sched_waiting_io_read = 0x02,
|
47
|
-
thread_sched_waiting_io_write = 0x08,
|
48
|
-
thread_sched_waiting_io_force = 0x40, // ignore readable
|
49
|
-
} flags;
|
50
|
-
|
51
|
-
struct {
|
52
|
-
// should be compat with hrtime.h
|
53
|
-
#ifdef MY_RUBY_BUILD_MAY_TIME_TRAVEL
|
54
|
-
int128_t timeout;
|
55
|
-
#else
|
56
|
-
uint64_t timeout;
|
57
|
-
#endif
|
58
|
-
int fd; // -1 for timeout only
|
59
|
-
int result;
|
60
|
-
} data;
|
61
|
-
|
62
|
-
// connected to timer_th.waiting
|
63
|
-
struct ccan_list_node node;
|
64
|
-
} waiting_reason;
|
66
|
+
struct rb_thread_sched_waiting waiting_reason;
|
65
67
|
|
66
68
|
bool finished;
|
67
69
|
bool malloc_stack;
|
@@ -130,7 +132,6 @@ struct rb_thread_sched {
|
|
130
132
|
|
131
133
|
#ifdef RB_THREAD_LOCAL_SPECIFIER
|
132
134
|
NOINLINE(void rb_current_ec_set(struct rb_execution_context_struct *));
|
133
|
-
NOINLINE(struct rb_execution_context_struct *rb_current_ec_noinline(void));
|
134
135
|
|
135
136
|
# ifdef __APPLE__
|
136
137
|
// on Darwin, TLS can not be accessed across .so
|
@@ -56,7 +56,8 @@
|
|
56
56
|
#define RVALUE_SIZE (sizeof(struct RBasic) + sizeof(VALUE[RBIMPL_RVALUE_EMBED_LEN_MAX]))
|
57
57
|
|
58
58
|
#if VM_CHECK_MODE > 0
|
59
|
-
#define VM_ASSERT(
|
59
|
+
#define VM_ASSERT(expr, ...) \
|
60
|
+
RUBY_ASSERT_MESG_WHEN(VM_CHECK_MODE > 0, expr, #expr RBIMPL_VA_OPT_ARGS(__VA_ARGS__))
|
60
61
|
#define VM_UNREACHABLE(func) rb_bug(#func ": unreachable")
|
61
62
|
#define RUBY_ASSERT_CRITICAL_SECTION
|
62
63
|
#define RUBY_DEBUG_THREAD_SCHEDULE() rb_thread_schedule()
|
@@ -69,7 +70,30 @@
|
|
69
70
|
#define RUBY_ASSERT_MUTEX_OWNED(mutex) VM_ASSERT(rb_mutex_owned_p(mutex))
|
70
71
|
|
71
72
|
#if defined(RUBY_ASSERT_CRITICAL_SECTION)
|
72
|
-
|
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
|
+
*/
|
73
97
|
extern int ruby_assert_critical_section_entered;
|
74
98
|
#define RUBY_ASSERT_CRITICAL_SECTION_ENTER() do{ruby_assert_critical_section_entered += 1;}while(false)
|
75
99
|
#define RUBY_ASSERT_CRITICAL_SECTION_LEAVE() do{VM_ASSERT(ruby_assert_critical_section_entered > 0);ruby_assert_critical_section_entered -= 1;}while(false)
|
@@ -105,15 +129,6 @@ extern int ruby_assert_critical_section_entered;
|
|
105
129
|
#include "vm_opts.h"
|
106
130
|
|
107
131
|
#include "ruby/thread_native.h"
|
108
|
-
|
109
|
-
#if USE_SHARED_GC
|
110
|
-
typedef struct gc_function_map {
|
111
|
-
void *(*objspace_alloc)(void);
|
112
|
-
} rb_gc_function_map_t;
|
113
|
-
|
114
|
-
#define rb_gc_functions (&GET_VM()->gc_functions_map)
|
115
|
-
#endif
|
116
|
-
|
117
132
|
/*
|
118
133
|
* implementation selector of get_insn_info algorithm
|
119
134
|
* 0: linear search
|
@@ -238,6 +253,8 @@ union ic_serial_entry {
|
|
238
253
|
VALUE data[2];
|
239
254
|
};
|
240
255
|
|
256
|
+
#define IMEMO_CONST_CACHE_SHAREABLE IMEMO_FL_USER0
|
257
|
+
|
241
258
|
// imemo_constcache
|
242
259
|
struct iseq_inline_constant_cache_entry {
|
243
260
|
VALUE flags;
|
@@ -378,6 +395,8 @@ enum rb_builtin_attr {
|
|
378
395
|
BUILTIN_ATTR_SINGLE_NOARG_LEAF = 0x02,
|
379
396
|
// This attribute signals JIT to duplicate the iseq for each block iseq so that its `yield` will be monomorphic.
|
380
397
|
BUILTIN_ATTR_INLINE_BLOCK = 0x04,
|
398
|
+
// The iseq acts like a C method in backtraces.
|
399
|
+
BUILTIN_ATTR_C_TRACE = 0x08,
|
381
400
|
};
|
382
401
|
|
383
402
|
typedef VALUE (*rb_jit_func_t)(struct rb_execution_context_struct *, struct rb_control_frame_struct *);
|
@@ -427,6 +446,7 @@ struct rb_iseq_constant_body {
|
|
427
446
|
unsigned int anon_rest: 1;
|
428
447
|
unsigned int anon_kwrest: 1;
|
429
448
|
unsigned int use_block: 1;
|
449
|
+
unsigned int forwardable: 1;
|
430
450
|
} flags;
|
431
451
|
|
432
452
|
unsigned int size;
|
@@ -586,6 +606,12 @@ rb_iseq_check(const rb_iseq_t *iseq)
|
|
586
606
|
return iseq;
|
587
607
|
}
|
588
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
|
+
|
589
615
|
static inline const rb_iseq_t *
|
590
616
|
def_iseq_ptr(rb_method_definition_t *def)
|
591
617
|
{
|
@@ -616,10 +642,9 @@ typedef struct rb_at_exit_list {
|
|
616
642
|
struct rb_at_exit_list *next;
|
617
643
|
} rb_at_exit_list;
|
618
644
|
|
619
|
-
|
620
|
-
|
621
|
-
void
|
622
|
-
void rb_objspace_call_finalizer(struct rb_objspace *);
|
645
|
+
void *rb_objspace_alloc(void);
|
646
|
+
void rb_objspace_free(void *objspace);
|
647
|
+
void rb_objspace_call_finalizer(void);
|
623
648
|
|
624
649
|
typedef struct rb_hook_list_struct {
|
625
650
|
struct rb_event_hook_struct *hooks;
|
@@ -743,9 +768,6 @@ typedef struct rb_vm_struct {
|
|
743
768
|
VALUE cmd[RUBY_NSIG];
|
744
769
|
} trap_list;
|
745
770
|
|
746
|
-
/* relation table of ensure - rollback for callcc */
|
747
|
-
struct st_table *ensure_rollback_table;
|
748
|
-
|
749
771
|
/* postponed_job (async-signal-safe, and thread-safe) */
|
750
772
|
struct rb_postponed_job_queue *postponed_job_queue;
|
751
773
|
|
@@ -759,10 +781,13 @@ typedef struct rb_vm_struct {
|
|
759
781
|
VALUE coverages, me2counter;
|
760
782
|
int coverage_mode;
|
761
783
|
|
762
|
-
struct
|
763
|
-
|
764
|
-
|
765
|
-
|
784
|
+
struct {
|
785
|
+
struct rb_objspace *objspace;
|
786
|
+
struct gc_mark_func_data_struct {
|
787
|
+
void *data;
|
788
|
+
void (*mark_func)(VALUE v, void *data);
|
789
|
+
} *mark_func_data;
|
790
|
+
} gc;
|
766
791
|
|
767
792
|
rb_at_exit_list *at_exit;
|
768
793
|
|
@@ -774,13 +799,13 @@ typedef struct rb_vm_struct {
|
|
774
799
|
struct rb_id_table *negative_cme_table;
|
775
800
|
st_table *overloaded_cme_table; // cme -> overloaded_cme
|
776
801
|
st_table *unused_block_warning_table;
|
777
|
-
bool unused_block_warning_strict;
|
778
802
|
|
779
803
|
// This id table contains a mapping from ID to ICs. It does this with ID
|
780
804
|
// keys and nested st_tables as values. The nested tables have ICs as keys
|
781
805
|
// and Qtrue as values. It is used when inline constant caches need to be
|
782
806
|
// invalidated or ISEQs are being freed.
|
783
807
|
struct rb_id_table *constant_cache;
|
808
|
+
ID inserting_constant_cache_id;
|
784
809
|
|
785
810
|
#ifndef VM_GLOBAL_CC_CACHE_TABLE_SIZE
|
786
811
|
#define VM_GLOBAL_CC_CACHE_TABLE_SIZE 1023
|
@@ -986,17 +1011,6 @@ struct rb_unblock_callback {
|
|
986
1011
|
|
987
1012
|
struct rb_mutex_struct;
|
988
1013
|
|
989
|
-
typedef struct rb_ensure_entry {
|
990
|
-
VALUE marker;
|
991
|
-
VALUE (*e_proc)(VALUE);
|
992
|
-
VALUE data2;
|
993
|
-
} rb_ensure_entry_t;
|
994
|
-
|
995
|
-
typedef struct rb_ensure_list {
|
996
|
-
struct rb_ensure_list *next;
|
997
|
-
struct rb_ensure_entry entry;
|
998
|
-
} rb_ensure_list_t;
|
999
|
-
|
1000
1014
|
typedef struct rb_fiber_struct rb_fiber_t;
|
1001
1015
|
|
1002
1016
|
struct rb_waiting_list {
|
@@ -1035,9 +1049,6 @@ struct rb_execution_context_struct {
|
|
1035
1049
|
const VALUE *root_lep;
|
1036
1050
|
VALUE root_svar;
|
1037
1051
|
|
1038
|
-
/* ensure & callcc */
|
1039
|
-
rb_ensure_list_t *ensure_list;
|
1040
|
-
|
1041
1052
|
/* trace information */
|
1042
1053
|
struct rb_trace_arg_struct *trace_arg;
|
1043
1054
|
|
@@ -1146,6 +1157,7 @@ typedef struct rb_thread_struct {
|
|
1146
1157
|
struct rb_unblock_callback unblock;
|
1147
1158
|
VALUE locking_mutex;
|
1148
1159
|
struct rb_mutex_struct *keeping_mutexes;
|
1160
|
+
struct ccan_list_head interrupt_exec_tasks;
|
1149
1161
|
|
1150
1162
|
struct rb_waiting_list *join_list;
|
1151
1163
|
|
@@ -1213,7 +1225,7 @@ rb_iseq_t *rb_iseq_new (const VALUE ast_value, VALUE name, VALUE path, V
|
|
1213
1225
|
rb_iseq_t *rb_iseq_new_top (const VALUE ast_value, VALUE name, VALUE path, VALUE realpath, const rb_iseq_t *parent);
|
1214
1226
|
rb_iseq_t *rb_iseq_new_main (const VALUE ast_value, VALUE path, VALUE realpath, const rb_iseq_t *parent, int opt);
|
1215
1227
|
rb_iseq_t *rb_iseq_new_eval (const VALUE ast_value, VALUE name, VALUE path, VALUE realpath, int first_lineno, const rb_iseq_t *parent, int isolated_depth);
|
1216
|
-
rb_iseq_t *rb_iseq_new_with_opt(
|
1228
|
+
rb_iseq_t *rb_iseq_new_with_opt( VALUE ast_value, VALUE name, VALUE path, VALUE realpath, int first_lineno, const rb_iseq_t *parent, int isolated_depth,
|
1217
1229
|
enum rb_iseq_type, const rb_compile_option_t*,
|
1218
1230
|
VALUE script_lines);
|
1219
1231
|
|
@@ -1296,6 +1308,15 @@ enum vm_check_match_type {
|
|
1296
1308
|
#define VM_CHECKMATCH_TYPE_MASK 0x03
|
1297
1309
|
#define VM_CHECKMATCH_ARRAY 0x04
|
1298
1310
|
|
1311
|
+
enum vm_opt_newarray_send_type {
|
1312
|
+
VM_OPT_NEWARRAY_SEND_MAX = 1,
|
1313
|
+
VM_OPT_NEWARRAY_SEND_MIN = 2,
|
1314
|
+
VM_OPT_NEWARRAY_SEND_HASH = 3,
|
1315
|
+
VM_OPT_NEWARRAY_SEND_PACK = 4,
|
1316
|
+
VM_OPT_NEWARRAY_SEND_PACK_BUFFER = 5,
|
1317
|
+
VM_OPT_NEWARRAY_SEND_INCLUDE_P = 6,
|
1318
|
+
};
|
1319
|
+
|
1299
1320
|
enum vm_special_object_type {
|
1300
1321
|
VM_SPECIAL_OBJECT_VMCORE = 1,
|
1301
1322
|
VM_SPECIAL_OBJECT_CBASE,
|
@@ -1501,22 +1522,13 @@ VM_ENV_ESCAPED_P(const VALUE *ep)
|
|
1501
1522
|
return VM_ENV_FLAGS(ep, VM_ENV_FLAG_ESCAPED) ? 1 : 0;
|
1502
1523
|
}
|
1503
1524
|
|
1504
|
-
#if VM_CHECK_MODE > 0
|
1505
|
-
static inline int
|
1506
|
-
vm_assert_env(VALUE obj)
|
1507
|
-
{
|
1508
|
-
VM_ASSERT(imemo_type_p(obj, imemo_env));
|
1509
|
-
return 1;
|
1510
|
-
}
|
1511
|
-
#endif
|
1512
|
-
|
1513
1525
|
RBIMPL_ATTR_NONNULL((1))
|
1514
1526
|
static inline VALUE
|
1515
1527
|
VM_ENV_ENVVAL(const VALUE *ep)
|
1516
1528
|
{
|
1517
1529
|
VALUE envval = ep[VM_ENV_DATA_INDEX_ENV];
|
1518
1530
|
VM_ASSERT(VM_ENV_ESCAPED_P(ep));
|
1519
|
-
VM_ASSERT(
|
1531
|
+
VM_ASSERT(envval == Qundef || imemo_type_p(envval, imemo_env));
|
1520
1532
|
return envval;
|
1521
1533
|
}
|
1522
1534
|
|
@@ -1959,6 +1971,8 @@ rb_ec_vm_ptr(const rb_execution_context_t *ec)
|
|
1959
1971
|
}
|
1960
1972
|
}
|
1961
1973
|
|
1974
|
+
NOINLINE(struct rb_execution_context_struct *rb_current_ec_noinline(void));
|
1975
|
+
|
1962
1976
|
static inline rb_execution_context_t *
|
1963
1977
|
rb_current_execution_context(bool expect_ec)
|
1964
1978
|
{
|
@@ -18,7 +18,7 @@ module Datadog
|
|
18
18
|
end
|
19
19
|
|
20
20
|
ruby_dir = if RUBY_PATCHLEVEL < 0
|
21
|
-
|
21
|
+
extract_beta_ruby_version
|
22
22
|
else
|
23
23
|
"ruby-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"
|
24
24
|
end
|
@@ -36,6 +36,7 @@ module Datadog
|
|
36
36
|
|
37
37
|
# Look for sources that ship with gem
|
38
38
|
dest_dir = deduce_packaged_source_dir(ruby_dir)
|
39
|
+
$stderr.puts "Using datadog-ruby_core_source headers from #{dest_dir}"
|
39
40
|
no_source_abort(ruby_dir) unless File.directory?(dest_dir)
|
40
41
|
|
41
42
|
with_cppflags("-I" + dest_dir) {
|
@@ -89,5 +90,17 @@ No source for #{ruby_version} provided with datadog-ruby_core_source gem.
|
|
89
90
|
**************************************************************************
|
90
91
|
STR
|
91
92
|
end
|
93
|
+
|
94
|
+
def self.extract_beta_ruby_version
|
95
|
+
# Example Ruby description:
|
96
|
+
# ruby 3.4.0preview2 (2024-10-07 master 32c733f57b) +PRISM [x86_64-linux]
|
97
|
+
beta_suffix = RUBY_DESCRIPTION.split[1].sub(RUBY_VERSION, "")
|
98
|
+
|
99
|
+
if beta_suffix.start_with?("preview", "rc")
|
100
|
+
"ruby-#{RUBY_VERSION}-#{beta_suffix}"
|
101
|
+
else # Don't touch it
|
102
|
+
"ruby-#{RUBY_VERSION}"
|
103
|
+
end
|
104
|
+
end
|
92
105
|
end
|
93
106
|
end
|