datadog-ruby_core_source 3.3.7 → 3.4.1
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.datadog.md +9 -0
- data/README.md +8 -5
- data/datadog-ruby_core_source.gemspec +1 -1
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/id.h +2 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/error.h +26 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/internal/gc.h +1 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/parse.h +2 -1
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/proc.h +1 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/internal/sanitizers.h +24 -36
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/prism/ast.h +10 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/extension.h +1 -1
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/prism/version.h +2 -2
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/ractor_core.h +1 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/rubyparser.h +3 -1
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/id.h +5 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/basic_operators.h +1 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/bits.h +82 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/cmdlineopt.h +0 -4
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/encoding.h +2 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/error.h +26 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/fixnum.h +1 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/gc.h +20 -9
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/hash.h +1 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/imemo.h +9 -13
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/io.h +2 -2
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/parse.h +4 -2
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/proc.h +1 -1
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/ractor.h +4 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/re.h +2 -2
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/sanitizers.h +43 -39
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/string.h +23 -10
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/struct.h +0 -8
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/symbol.h +2 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/thread.h +23 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/time.h +4 -1
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/variable.h +0 -2
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/vm.h +1 -1
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/iseq.h +12 -1
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/method.h +4 -1
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/node.h +14 -3
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/prism/ast.h +443 -3
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/prism/defines.h +26 -8
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/prism/diagnostic.h +1 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/extension.h +4 -4
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/options.h +47 -1
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/prism/prism.h +51 -4
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/util/pm_buffer.h +10 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/prism/version.h +2 -2
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/prism_compile.h +11 -5
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/ractor_core.h +6 -6
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/rubyparser.h +39 -9
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/thread_pthread.h +2 -3
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/vm_core.h +43 -30
- data/lib/datadog/ruby_core_source/version.rb +1 -1
- metadata +209 -209
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/ccan/build_assert/build_assert.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/ccan/check_type/check_type.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/ccan/container_of/container_of.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/ccan/list/list.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/ccan/str/str.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/id_table.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/array.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/internal/basic_operators.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/bignum.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/internal/bits.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/class.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/cmdlineopt.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/compar.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/compile.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/compilers.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/complex.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/cont.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/dir.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/enc.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/internal/encoding.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/enum.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/enumerator.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/eval.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/file.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/internal/fixnum.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/hash.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/internal/imemo.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/inits.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/internal/io.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/load.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/loadpath.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/math.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/missing.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/numeric.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/object.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/process.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/internal/ractor.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/random.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/range.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/rational.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/re.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/ruby_parser.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/serial.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/signal.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/st.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/static_assert.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/internal/string.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/struct.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/symbol.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/internal/thread.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/time.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/transcode.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/util.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/variable.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/internal/vm.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal/warnings.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/internal.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/iseq.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/method.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/node.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/parser_st.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/parser_value.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/prism/defines.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/prism/diagnostic.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/encoding.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/node.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/options.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/pack.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/parser.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/prettyprint.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/prism/prism.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/regexp.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/static_literals.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/util/pm_buffer.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/util/pm_char.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/util/pm_constant_pool.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/util/pm_integer.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/util/pm_list.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/util/pm_memchr.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/util/pm_newline_list.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/util/pm_string.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/util/pm_strncasecmp.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/prism/util/pm_strpbrk.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/prism_compile.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/ruby_assert.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/ruby_atomic.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/shape.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/thread_none.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/thread_pthread.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.4.0-p0}/vm_core.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/vm_debug.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.4.0-p0}/vm_opts.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/ccan/build_assert/build_assert.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/ccan/check_type/check_type.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/ccan/container_of/container_of.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/ccan/list/list.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/ccan/str/str.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/id_table.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/array.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/bignum.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/class.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/compar.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/compile.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/compilers.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/complex.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/cont.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/dir.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/enc.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/enum.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/enumerator.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/eval.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/file.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/inits.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/load.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/loadpath.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/math.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/missing.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/numeric.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/object.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/process.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/random.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/range.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/rational.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/ruby_parser.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/serial.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/signal.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/st.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/static_assert.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/transcode.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/util.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/warnings.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/parser_st.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/parser_value.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/encoding.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/node.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/pack.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/parser.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/prettyprint.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/regexp.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/static_literals.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/util/pm_char.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/util/pm_constant_pool.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/util/pm_integer.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/util/pm_list.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/util/pm_memchr.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/util/pm_newline_list.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/util/pm_string.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/util/pm_strncasecmp.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/prism/util/pm_strpbrk.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/ruby_assert.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/ruby_atomic.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/shape.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/thread_none.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/vm_debug.h +0 -0
- /data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/vm_opts.h +0 -0
@@ -16,8 +16,8 @@
|
|
16
16
|
#include "ruby/ruby.h" /* for rb_event_flag_t */
|
17
17
|
#include "vm_core.h" /* for GET_EC() */
|
18
18
|
|
19
|
-
#ifndef
|
20
|
-
# define
|
19
|
+
#ifndef USE_MODULAR_GC
|
20
|
+
# define USE_MODULAR_GC 0
|
21
21
|
#endif
|
22
22
|
|
23
23
|
#if defined(__x86_64__) && !defined(_ILP32) && defined(__GNUC__)
|
@@ -127,7 +127,13 @@ struct rb_objspace; /* in vm_core.h */
|
|
127
127
|
rb_wb_protected_newobj_of((ec ? ec : GET_EC()), (c), (f) & ~FL_WB_PROTECTED, s) : \
|
128
128
|
rb_wb_unprotected_newobj_of((c), (f), s))
|
129
129
|
|
130
|
-
#
|
130
|
+
#ifndef RB_GC_OBJECT_METADATA_ENTRY_DEFINED
|
131
|
+
# define RB_GC_OBJECT_METADATA_ENTRY_DEFINED
|
132
|
+
struct rb_gc_object_metadata_entry {
|
133
|
+
ID name;
|
134
|
+
VALUE val;
|
135
|
+
};
|
136
|
+
#endif
|
131
137
|
|
132
138
|
#ifndef USE_UNALIGNED_MEMBER_ACCESS
|
133
139
|
# define UNALIGNED_MEMBER_ACCESS(expr) (expr)
|
@@ -175,7 +181,6 @@ struct rb_objspace; /* in vm_core.h */
|
|
175
181
|
if (_already_disabled == Qfalse) rb_gc_enable()
|
176
182
|
|
177
183
|
/* gc.c */
|
178
|
-
extern int ruby_disable_gc;
|
179
184
|
RUBY_ATTR_MALLOC void *ruby_mimmalloc(size_t size);
|
180
185
|
RUBY_ATTR_MALLOC void *ruby_mimcalloc(size_t num, size_t size);
|
181
186
|
void ruby_mimfree(void *ptr);
|
@@ -197,7 +202,7 @@ static inline void *ruby_sized_xrealloc_inlined(void *ptr, size_t new_size, size
|
|
197
202
|
static inline void *ruby_sized_xrealloc2_inlined(void *ptr, size_t new_count, size_t elemsiz, size_t old_count) RUBY_ATTR_RETURNS_NONNULL RUBY_ATTR_ALLOC_SIZE((2, 3));
|
198
203
|
static inline void ruby_sized_xfree_inlined(void *ptr, size_t size);
|
199
204
|
|
200
|
-
void *rb_gc_ractor_cache_alloc(
|
205
|
+
void *rb_gc_ractor_cache_alloc(rb_ractor_t *ractor);
|
201
206
|
void rb_gc_ractor_cache_free(void *cache);
|
202
207
|
|
203
208
|
bool rb_gc_size_allocatable_p(size_t size);
|
@@ -213,6 +218,9 @@ void rb_gc_ref_update_table_values_only(st_table *tbl);
|
|
213
218
|
|
214
219
|
void rb_gc_initial_stress_set(VALUE flag);
|
215
220
|
|
221
|
+
void rb_gc_before_fork(void);
|
222
|
+
void rb_gc_after_fork(rb_pid_t pid);
|
223
|
+
|
216
224
|
#define rb_gc_mark_and_move_ptr(ptr) do { \
|
217
225
|
VALUE _obj = (VALUE)*(ptr); \
|
218
226
|
rb_gc_mark_and_move(&_obj); \
|
@@ -225,6 +233,7 @@ void rb_objspace_reachable_objects_from(VALUE obj, void (func)(VALUE, void *), v
|
|
225
233
|
void rb_objspace_reachable_objects_from_root(void (func)(const char *category, VALUE, void *), void *data);
|
226
234
|
int rb_objspace_internal_object_p(VALUE obj);
|
227
235
|
int rb_objspace_garbage_object_p(VALUE obj);
|
236
|
+
bool rb_gc_pointer_to_heap_p(VALUE obj);
|
228
237
|
|
229
238
|
void rb_objspace_each_objects(
|
230
239
|
int (*callback)(void *start, void *end, size_t stride, void *data),
|
@@ -234,13 +243,14 @@ size_t rb_gc_obj_slot_size(VALUE obj);
|
|
234
243
|
|
235
244
|
VALUE rb_gc_disable_no_rest(void);
|
236
245
|
|
246
|
+
#define RB_GC_MAX_NAME_LEN 20
|
237
247
|
|
238
248
|
/* gc.c (export) */
|
239
249
|
const char *rb_objspace_data_type_name(VALUE obj);
|
240
250
|
VALUE rb_wb_protected_newobj_of(struct rb_execution_context_struct *, VALUE, VALUE, size_t);
|
241
251
|
VALUE rb_wb_unprotected_newobj_of(VALUE, VALUE, size_t);
|
242
252
|
size_t rb_obj_memsize_of(VALUE);
|
243
|
-
|
253
|
+
struct rb_gc_object_metadata_entry *rb_gc_object_metadata(VALUE obj);
|
244
254
|
void rb_gc_mark_values(long n, const VALUE *values);
|
245
255
|
void rb_gc_mark_vm_stack_values(long n, const VALUE *values);
|
246
256
|
void rb_gc_update_values(long n, VALUE *values);
|
@@ -248,14 +258,15 @@ void *ruby_sized_xrealloc(void *ptr, size_t new_size, size_t old_size) RUBY_ATTR
|
|
248
258
|
void *ruby_sized_xrealloc2(void *ptr, size_t new_count, size_t element_size, size_t old_count) RUBY_ATTR_RETURNS_NONNULL RUBY_ATTR_ALLOC_SIZE((2, 3));
|
249
259
|
void ruby_sized_xfree(void *x, size_t size);
|
250
260
|
|
251
|
-
|
252
|
-
|
253
|
-
|
261
|
+
const char *rb_gc_active_gc_name(void);
|
262
|
+
int rb_gc_modular_gc_loaded_p(void);
|
263
|
+
|
254
264
|
RUBY_SYMBOL_EXPORT_END
|
255
265
|
|
256
266
|
int rb_ec_stack_check(struct rb_execution_context_struct *ec);
|
257
267
|
void rb_gc_writebarrier_remember(VALUE obj);
|
258
268
|
const char *rb_obj_info(VALUE obj);
|
269
|
+
void ruby_annotate_mmap(const void *addr, unsigned long size, const char *name);
|
259
270
|
|
260
271
|
#if defined(HAVE_MALLOC_USABLE_SIZE) || defined(HAVE_MALLOC_SIZE) || defined(_WIN32)
|
261
272
|
|
@@ -86,6 +86,7 @@ VALUE rb_hash_set_pair(VALUE hash, VALUE pair);
|
|
86
86
|
int rb_hash_stlike_delete(VALUE hash, st_data_t *pkey, st_data_t *pval);
|
87
87
|
int rb_hash_stlike_foreach_with_replace(VALUE hash, st_foreach_check_callback_func *func, st_update_callback_func *replace, st_data_t arg);
|
88
88
|
int rb_hash_stlike_update(VALUE hash, st_data_t key, st_update_callback_func *func, st_data_t arg);
|
89
|
+
bool rb_hash_default_unredefined(VALUE hash);
|
89
90
|
VALUE rb_ident_hash_new_with_size(st_index_t size);
|
90
91
|
void rb_hash_free(VALUE hash);
|
91
92
|
RUBY_EXTERN VALUE rb_cHash_empty_frozen;
|
data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/imemo.h
RENAMED
@@ -14,10 +14,6 @@
|
|
14
14
|
#include "ruby/internal/stdbool.h" /* for bool */
|
15
15
|
#include "ruby/ruby.h" /* for rb_block_call_func_t */
|
16
16
|
|
17
|
-
#ifndef IMEMO_DEBUG
|
18
|
-
# define IMEMO_DEBUG 0
|
19
|
-
#endif
|
20
|
-
|
21
17
|
#define IMEMO_MASK 0x0f
|
22
18
|
|
23
19
|
/* FL_USER0 to FL_USER3 is for type */
|
@@ -79,7 +75,12 @@ struct vm_ifunc_argc {
|
|
79
75
|
#endif
|
80
76
|
};
|
81
77
|
|
82
|
-
/*! IFUNC (Internal FUNCtion)
|
78
|
+
/*! IFUNC (Internal FUNCtion)
|
79
|
+
*
|
80
|
+
* Bookkeeping for converting a C function and some closed-over data into a
|
81
|
+
* block passable to methods. Like Ruby Proc, but not directly accessible at
|
82
|
+
* Ruby level since this is an imemo. See rb_block_call() and friends.
|
83
|
+
*/
|
83
84
|
struct vm_ifunc {
|
84
85
|
VALUE flags;
|
85
86
|
VALUE *svar_lep;
|
@@ -114,7 +115,7 @@ struct MEMO {
|
|
114
115
|
} u3;
|
115
116
|
};
|
116
117
|
|
117
|
-
#define IMEMO_NEW(T, type, v0) ((T *)rb_imemo_new((type), (v0)))
|
118
|
+
#define IMEMO_NEW(T, type, v0) ((T *)rb_imemo_new((type), (v0), sizeof(T)))
|
118
119
|
|
119
120
|
/* ment is in method.h */
|
120
121
|
|
@@ -151,12 +152,7 @@ void rb_cc_table_free(VALUE klass);
|
|
151
152
|
void rb_imemo_free(VALUE obj);
|
152
153
|
|
153
154
|
RUBY_SYMBOL_EXPORT_BEGIN
|
154
|
-
|
155
|
-
VALUE rb_imemo_new_debug(enum imemo_type type, VALUE v0, const char *file, int line);
|
156
|
-
#define rb_imemo_new(type, v1, v2, v3, v0) rb_imemo_new_debug(type, v1, v2, v3, v0, __FILE__, __LINE__)
|
157
|
-
#else
|
158
|
-
VALUE rb_imemo_new(enum imemo_type type, VALUE v0);
|
159
|
-
#endif
|
155
|
+
VALUE rb_imemo_new(enum imemo_type type, VALUE v0, size_t size);
|
160
156
|
const char *rb_imemo_name(enum imemo_type type);
|
161
157
|
RUBY_SYMBOL_EXPORT_END
|
162
158
|
|
@@ -209,7 +205,7 @@ rb_vm_ifunc_proc_new(rb_block_call_func_t func, const void *data)
|
|
209
205
|
static inline VALUE
|
210
206
|
rb_imemo_tmpbuf_auto_free_pointer(void)
|
211
207
|
{
|
212
|
-
return rb_imemo_new(imemo_tmpbuf, 0);
|
208
|
+
return rb_imemo_new(imemo_tmpbuf, 0, sizeof(rb_imemo_tmpbuf_t));
|
213
209
|
}
|
214
210
|
|
215
211
|
static inline void *
|
@@ -15,7 +15,7 @@ struct rb_io;
|
|
15
15
|
|
16
16
|
#include "ruby/io.h" /* for rb_io_t */
|
17
17
|
|
18
|
-
#define IO_WITHOUT_GVL(func, arg)
|
18
|
+
#define IO_WITHOUT_GVL(func, arg) rb_nogvl(func, arg, RUBY_UBF_IO, 0, RB_NOGVL_OFFLOAD_SAFE)
|
19
19
|
#define IO_WITHOUT_GVL_INT(func, arg) (int)(VALUE)IO_WITHOUT_GVL(func, arg)
|
20
20
|
|
21
21
|
/** Ruby's IO, metadata and buffers. */
|
@@ -31,7 +31,7 @@ struct rb_io {
|
|
31
31
|
int fd;
|
32
32
|
|
33
33
|
/** mode flags: FMODE_XXXs */
|
34
|
-
|
34
|
+
enum rb_io_mode mode;
|
35
35
|
|
36
36
|
/** child's pid (for pipes) */
|
37
37
|
rb_pid_t pid;
|
@@ -78,9 +78,11 @@ void rb_parser_string_free(rb_parser_t *p, rb_parser_string_t *str);
|
|
78
78
|
|
79
79
|
int rb_parser_dvar_defined_ref(struct parser_params*, ID, ID**);
|
80
80
|
ID rb_parser_internal_id(struct parser_params*);
|
81
|
-
|
82
|
-
int
|
81
|
+
typedef void (*rb_parser_reg_fragment_error_func)(struct parser_params *, VALUE);
|
82
|
+
int rb_parser_reg_fragment_check(struct parser_params*, rb_parser_string_t*, int, rb_parser_reg_fragment_error_func);
|
83
|
+
int rb_reg_named_capture_assign_iter_impl(struct parser_params *p, const char *s, long len, rb_encoding *enc, NODE **succ_block, const rb_code_location_t *loc, rb_parser_assignable_func assignable);
|
83
84
|
int rb_parser_local_defined(struct parser_params *p, ID id, const struct rb_iseq_struct *iseq);
|
85
|
+
NODE *rb_parser_assignable(struct parser_params *p, ID id, NODE *val, const YYLTYPE *loc);
|
84
86
|
|
85
87
|
RUBY_SYMBOL_EXPORT_END
|
86
88
|
|
@@ -22,7 +22,7 @@ int rb_block_min_max_arity(int *max);
|
|
22
22
|
VALUE rb_block_to_s(VALUE self, const struct rb_block *block, const char *additional_info);
|
23
23
|
VALUE rb_callable_receiver(VALUE);
|
24
24
|
|
25
|
-
VALUE
|
25
|
+
VALUE rb_func_proc_dup(VALUE src_obj);
|
26
26
|
VALUE rb_func_lambda_new(rb_block_call_func_t func, VALUE val, int min_argc, int max_argc);
|
27
27
|
VALUE rb_iseq_location(const struct rb_iseq_struct *iseq);
|
28
28
|
VALUE rb_sym_to_proc(VALUE sym);
|
@@ -14,12 +14,12 @@
|
|
14
14
|
/* re.c */
|
15
15
|
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline);
|
16
16
|
VALUE rb_reg_check_preprocess(VALUE);
|
17
|
-
long rb_reg_search0(VALUE, VALUE, long, int, int);
|
17
|
+
long rb_reg_search0(VALUE, VALUE, long, int, int, VALUE *);
|
18
18
|
VALUE rb_reg_match_p(VALUE re, VALUE str, long pos);
|
19
19
|
bool rb_reg_start_with_p(VALUE re, VALUE str);
|
20
20
|
VALUE rb_reg_hash(VALUE re);
|
21
21
|
VALUE rb_reg_equal(VALUE re1, VALUE re2);
|
22
|
-
|
22
|
+
VALUE rb_backref_set_string(VALUE string, long pos, long len);
|
23
23
|
void rb_match_unbusy(VALUE);
|
24
24
|
int rb_match_count(VALUE match);
|
25
25
|
VALUE rb_reg_new_ary(VALUE ary, int options);
|
data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/sanitizers.h
RENAMED
@@ -16,7 +16,7 @@
|
|
16
16
|
#endif
|
17
17
|
|
18
18
|
#ifdef HAVE_SANITIZER_ASAN_INTERFACE_H
|
19
|
-
# if __has_feature(address_sanitizer)
|
19
|
+
# if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
|
20
20
|
# define RUBY_ASAN_ENABLED
|
21
21
|
# include <sanitizer/asan_interface.h>
|
22
22
|
# endif
|
@@ -39,6 +39,9 @@
|
|
39
39
|
#elif defined(RUBY_ASAN_ENABLED)
|
40
40
|
# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \
|
41
41
|
__attribute__((__no_sanitize__("address"), __noinline__)) x
|
42
|
+
#elif defined(RUBY_MSAN_ENABLED)
|
43
|
+
# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \
|
44
|
+
__attribute__((__no_sanitize__("memory"), __noinline__)) x
|
42
45
|
#elif defined(NO_SANITIZE_ADDRESS)
|
43
46
|
# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \
|
44
47
|
NO_SANITIZE_ADDRESS(NOINLINE(x))
|
@@ -54,10 +57,11 @@
|
|
54
57
|
# include "internal/warnings.h"
|
55
58
|
# undef NO_SANITIZE
|
56
59
|
# define NO_SANITIZE(x, y) \
|
57
|
-
COMPILER_WARNING_PUSH
|
58
|
-
COMPILER_WARNING_IGNORED(-Wattributes)
|
60
|
+
COMPILER_WARNING_PUSH \
|
61
|
+
COMPILER_WARNING_IGNORED(-Wattributes) \
|
59
62
|
__attribute__((__no_sanitize__(x))) y; \
|
60
|
-
COMPILER_WARNING_POP
|
63
|
+
COMPILER_WARNING_POP \
|
64
|
+
y
|
61
65
|
#endif
|
62
66
|
|
63
67
|
#ifndef NO_SANITIZE
|
@@ -115,26 +119,22 @@ asan_poison_memory_region(const volatile void *ptr, size_t size)
|
|
115
119
|
__asan_poison_memory_region(ptr, size);
|
116
120
|
}
|
117
121
|
|
118
|
-
/**
|
119
|
-
* This is a variant of asan_poison_memory_region that takes a VALUE.
|
120
|
-
*
|
121
|
-
* @param[in] obj target object.
|
122
|
-
*/
|
123
|
-
static inline void
|
124
|
-
asan_poison_object(VALUE obj)
|
125
|
-
{
|
126
|
-
MAYBE_UNUSED(struct RVALUE *) ptr = (void *)obj;
|
127
|
-
asan_poison_memory_region(ptr, SIZEOF_VALUE);
|
128
|
-
}
|
129
|
-
|
130
122
|
#ifdef RUBY_ASAN_ENABLED
|
131
123
|
#define asan_poison_object_if(ptr, obj) do { \
|
132
|
-
if (ptr)
|
124
|
+
if (ptr) rb_asan_poison_object(obj); \
|
133
125
|
} while (0)
|
134
126
|
#else
|
135
127
|
#define asan_poison_object_if(ptr, obj) ((void)(ptr), (void)(obj))
|
136
128
|
#endif
|
137
129
|
|
130
|
+
RUBY_SYMBOL_EXPORT_BEGIN
|
131
|
+
/**
|
132
|
+
* This is a variant of asan_poison_memory_region that takes a VALUE.
|
133
|
+
*
|
134
|
+
* @param[in] obj target object.
|
135
|
+
*/
|
136
|
+
void rb_asan_poison_object(VALUE obj);
|
137
|
+
|
138
138
|
/**
|
139
139
|
* This function predicates if the given object is fully addressable or not.
|
140
140
|
*
|
@@ -142,12 +142,17 @@ asan_poison_object(VALUE obj)
|
|
142
142
|
* @retval 0 the given object is fully addressable.
|
143
143
|
* @retval otherwise pointer to first such byte who is poisoned.
|
144
144
|
*/
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
145
|
+
void *rb_asan_poisoned_object_p(VALUE obj);
|
146
|
+
|
147
|
+
/**
|
148
|
+
* This is a variant of asan_unpoison_memory_region that takes a VALUE.
|
149
|
+
*
|
150
|
+
* @param[in] obj target object.
|
151
|
+
* @param[in] malloc_p if the memory region is like a malloc's return value or not.
|
152
|
+
*/
|
153
|
+
void rb_asan_unpoison_object(VALUE obj, bool newobj_p);
|
154
|
+
|
155
|
+
RUBY_SYMBOL_EXPORT_END
|
151
156
|
|
152
157
|
/**
|
153
158
|
* This function asserts that a (formally poisoned) memory region from ptr to
|
@@ -176,24 +181,11 @@ asan_unpoison_memory_region(const volatile void *ptr, size_t size, bool malloc_p
|
|
176
181
|
}
|
177
182
|
}
|
178
183
|
|
179
|
-
/**
|
180
|
-
* This is a variant of asan_unpoison_memory_region that takes a VALUE.
|
181
|
-
*
|
182
|
-
* @param[in] obj target object.
|
183
|
-
* @param[in] malloc_p if the memory region is like a malloc's return value or not.
|
184
|
-
*/
|
185
|
-
static inline void
|
186
|
-
asan_unpoison_object(VALUE obj, bool newobj_p)
|
187
|
-
{
|
188
|
-
MAYBE_UNUSED(struct RVALUE *) ptr = (void *)obj;
|
189
|
-
asan_unpoison_memory_region(ptr, SIZEOF_VALUE, newobj_p);
|
190
|
-
}
|
191
|
-
|
192
184
|
static inline void *
|
193
185
|
asan_unpoison_object_temporary(VALUE obj)
|
194
186
|
{
|
195
|
-
void *ptr =
|
196
|
-
|
187
|
+
void *ptr = rb_asan_poisoned_object_p(obj);
|
188
|
+
rb_asan_unpoison_object(obj, false);
|
197
189
|
return ptr;
|
198
190
|
}
|
199
191
|
|
@@ -201,7 +193,7 @@ static inline void *
|
|
201
193
|
asan_poison_object_restore(VALUE obj, void *ptr)
|
202
194
|
{
|
203
195
|
if (ptr) {
|
204
|
-
|
196
|
+
rb_asan_poison_object(obj);
|
205
197
|
}
|
206
198
|
return NULL;
|
207
199
|
}
|
@@ -322,5 +314,17 @@ asan_get_fake_stack_extents(void *thread_fake_stack_handle, VALUE slot,
|
|
322
314
|
return false;
|
323
315
|
}
|
324
316
|
|
317
|
+
extern const char ruby_asan_default_options[];
|
318
|
+
|
319
|
+
#ifdef RUBY_ASAN_ENABLED
|
320
|
+
/* Compile in the ASAN options Ruby needs, rather than relying on environment variables, so
|
321
|
+
* that even tests which fork ruby with a clean environment will run ASAN with the right
|
322
|
+
* settings */
|
323
|
+
# undef RUBY__ASAN_DEFAULT_OPTIONS
|
324
|
+
# define RUBY__ASAN_DEFAULT_OPTIONS \
|
325
|
+
RBIMPL_SYMBOL_EXPORT_BEGIN() \
|
326
|
+
const char * __asan_default_options(void) {return ruby_asan_default_options;} \
|
327
|
+
RBIMPL_SYMBOL_EXPORT_END()
|
328
|
+
#endif
|
325
329
|
|
326
330
|
#endif /* INTERNAL_SANITIZERS_H */
|
data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/string.h
RENAMED
@@ -15,9 +15,11 @@
|
|
15
15
|
#include "ruby/encoding.h" /* for rb_encoding */
|
16
16
|
#include "ruby/ruby.h" /* for VALUE */
|
17
17
|
|
18
|
-
#define
|
19
|
-
#define
|
20
|
-
#define STR_CHILLED
|
18
|
+
#define STR_SHARED FL_USER0 /* = ELTS_SHARED */
|
19
|
+
#define STR_NOEMBED FL_USER1
|
20
|
+
#define STR_CHILLED (FL_USER2 | FL_USER3)
|
21
|
+
#define STR_CHILLED_LITERAL FL_USER2
|
22
|
+
#define STR_CHILLED_SYMBOL_TO_S FL_USER3
|
21
23
|
|
22
24
|
enum ruby_rstring_private_flags {
|
23
25
|
RSTRING_CHILLED = STR_CHILLED,
|
@@ -51,12 +53,19 @@ int rb_enc_str_coderange_scan(VALUE str, rb_encoding *enc);
|
|
51
53
|
int rb_ascii8bit_appendable_encoding_index(rb_encoding *enc, unsigned int code);
|
52
54
|
VALUE rb_str_include(VALUE str, VALUE arg);
|
53
55
|
VALUE rb_str_byte_substr(VALUE str, VALUE beg, VALUE len);
|
56
|
+
VALUE rb_str_substr_two_fixnums(VALUE str, VALUE beg, VALUE len, int empty);
|
54
57
|
VALUE rb_str_tmp_frozen_no_embed_acquire(VALUE str);
|
55
58
|
void rb_str_make_embedded(VALUE);
|
56
59
|
VALUE rb_str_upto_each(VALUE, VALUE, int, int (*each)(VALUE, VALUE), VALUE);
|
57
60
|
size_t rb_str_size_as_embedded(VALUE);
|
58
61
|
bool rb_str_reembeddable_p(VALUE);
|
59
62
|
VALUE rb_str_upto_endless_each(VALUE, int (*each)(VALUE, VALUE), VALUE);
|
63
|
+
VALUE rb_str_with_debug_created_info(VALUE, VALUE, int);
|
64
|
+
VALUE rb_str_frozen_bare_string(VALUE);
|
65
|
+
|
66
|
+
/* error.c */
|
67
|
+
void rb_warn_unchilled_literal(VALUE str);
|
68
|
+
void rb_warn_unchilled_symbol_to_s(VALUE str);
|
60
69
|
|
61
70
|
static inline bool STR_EMBED_P(VALUE str);
|
62
71
|
static inline bool STR_SHARED_P(VALUE str);
|
@@ -123,14 +132,18 @@ CHILLED_STRING_P(VALUE obj)
|
|
123
132
|
static inline void
|
124
133
|
CHILLED_STRING_MUTATED(VALUE str)
|
125
134
|
{
|
135
|
+
VALUE chilled_reason = RB_FL_TEST_RAW(str, STR_CHILLED);
|
126
136
|
FL_UNSET_RAW(str, STR_CHILLED);
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
137
|
+
switch (chilled_reason) {
|
138
|
+
case STR_CHILLED_SYMBOL_TO_S:
|
139
|
+
rb_warn_unchilled_symbol_to_s(str);
|
140
|
+
break;
|
141
|
+
case STR_CHILLED_LITERAL:
|
142
|
+
rb_warn_unchilled_literal(str);
|
143
|
+
break;
|
144
|
+
default:
|
145
|
+
rb_bug("RString was chilled for multiple reasons");
|
146
|
+
}
|
134
147
|
}
|
135
148
|
|
136
149
|
static inline bool
|
@@ -59,7 +59,6 @@ struct RStruct {
|
|
59
59
|
VALUE rb_struct_init_copy(VALUE copy, VALUE s);
|
60
60
|
VALUE rb_struct_lookup(VALUE s, VALUE idx);
|
61
61
|
VALUE rb_struct_s_keyword_init(VALUE klass);
|
62
|
-
static inline const VALUE *rb_struct_const_heap_ptr(VALUE st);
|
63
62
|
static inline long RSTRUCT_EMBED_LEN(VALUE st);
|
64
63
|
static inline long RSTRUCT_LEN(VALUE st);
|
65
64
|
static inline int RSTRUCT_LENINT(VALUE st);
|
@@ -117,11 +116,4 @@ RSTRUCT_GET(VALUE st, long k)
|
|
117
116
|
return RSTRUCT_CONST_PTR(st)[k];
|
118
117
|
}
|
119
118
|
|
120
|
-
static inline const VALUE *
|
121
|
-
rb_struct_const_heap_ptr(VALUE st)
|
122
|
-
{
|
123
|
-
assert(!FL_TEST_RAW(st, RSTRUCT_EMBED_LEN_MASK));
|
124
|
-
return RSTRUCT(st)->as.heap.ptr;
|
125
|
-
}
|
126
|
-
|
127
119
|
#endif /* INTERNAL_STRUCT_H */
|
@@ -17,6 +17,8 @@
|
|
17
17
|
#endif
|
18
18
|
|
19
19
|
/* symbol.c */
|
20
|
+
void rb_sym_global_symbols_mark(void);
|
21
|
+
void rb_sym_global_symbols_update_references(void);
|
20
22
|
VALUE rb_to_symbol_type(VALUE obj);
|
21
23
|
VALUE rb_sym_intern(const char *ptr, long len, rb_encoding *enc);
|
22
24
|
VALUE rb_sym_intern_ascii(const char *ptr, long len);
|
data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview2 → ruby-3.5.0-preview1}/internal/thread.h
RENAMED
@@ -66,6 +66,8 @@ struct rb_io_close_wait_list {
|
|
66
66
|
int rb_notify_fd_close(int fd, struct rb_io_close_wait_list *busy);
|
67
67
|
void rb_notify_fd_close_wait(struct rb_io_close_wait_list *busy);
|
68
68
|
|
69
|
+
void rb_ec_check_ints(struct rb_execution_context_struct *ec);
|
70
|
+
|
69
71
|
RUBY_SYMBOL_EXPORT_BEGIN
|
70
72
|
|
71
73
|
void *rb_thread_prevent_fork(void *(*func)(void *), void *data); /* for ext/socket/raddrinfo.c */
|
@@ -82,4 +84,25 @@ RUBY_SYMBOL_EXPORT_END
|
|
82
84
|
int rb_threadptr_execute_interrupts(struct rb_thread_struct *th, int blocking_timing);
|
83
85
|
bool rb_thread_mn_schedulable(VALUE thread);
|
84
86
|
|
87
|
+
// interrupt exec
|
88
|
+
|
89
|
+
typedef VALUE (rb_interrupt_exec_func_t)(void *data);
|
90
|
+
|
91
|
+
enum rb_interrupt_exec_flag {
|
92
|
+
rb_interrupt_exec_flag_none = 0x00,
|
93
|
+
rb_interrupt_exec_flag_value_data = 0x01,
|
94
|
+
};
|
95
|
+
|
96
|
+
// interrupt the target_th and run func.
|
97
|
+
struct rb_ractor_struct;
|
98
|
+
|
99
|
+
void rb_threadptr_interrupt_exec(struct rb_thread_struct *target_th,
|
100
|
+
rb_interrupt_exec_func_t *func, void *data, enum rb_interrupt_exec_flag flags);
|
101
|
+
|
102
|
+
// create a thread in the target_r and run func on the created thread.
|
103
|
+
void rb_ractor_interrupt_exec(struct rb_ractor_struct *target_r,
|
104
|
+
rb_interrupt_exec_func_t *func, void *data, enum rb_interrupt_exec_flag flags);
|
105
|
+
|
106
|
+
void rb_threadptr_interrupt_exec_task_mark(struct rb_thread_struct *th);
|
107
|
+
|
85
108
|
#endif /* INTERNAL_THREAD_H */
|
@@ -28,7 +28,10 @@ struct timeval rb_time_timeval(VALUE);
|
|
28
28
|
RUBY_SYMBOL_EXPORT_BEGIN
|
29
29
|
/* time.c (export) */
|
30
30
|
void ruby_reset_leap_second_info(void);
|
31
|
-
|
31
|
+
#ifdef RBIMPL_ATTR_DEPRECATED_INTERNAL_ONLY
|
32
|
+
RBIMPL_ATTR_DEPRECATED_INTERNAL_ONLY()
|
33
|
+
#endif
|
34
|
+
void ruby_reset_timezone(const char *);
|
32
35
|
RUBY_SYMBOL_EXPORT_END
|
33
36
|
|
34
37
|
#endif /* INTERNAL_TIME_H */
|
data/lib/datadog/ruby_core_source/{ruby-3.4.0-rc1 → ruby-3.5.0-preview1}/internal/variable.h
RENAMED
@@ -54,8 +54,6 @@ void rb_evict_ivars_to_hash(VALUE obj);
|
|
54
54
|
RUBY_SYMBOL_EXPORT_BEGIN
|
55
55
|
/* variable.c (export) */
|
56
56
|
void rb_mark_generic_ivar(VALUE obj);
|
57
|
-
void rb_ref_update_generic_ivar(VALUE);
|
58
|
-
void rb_mv_generic_ivar(VALUE src, VALUE dst);
|
59
57
|
VALUE rb_const_missing(VALUE klass, VALUE name);
|
60
58
|
int rb_class_ivar_set(VALUE klass, ID vid, VALUE value);
|
61
59
|
void rb_iv_tbl_copy(VALUE dst, VALUE src);
|
@@ -77,6 +77,7 @@ VALUE rb_lambda_call(VALUE obj, ID mid, int argc, const VALUE *argv,
|
|
77
77
|
void rb_check_stack_overflow(void);
|
78
78
|
#define RB_BLOCK_NO_USE_PACKED_ARGS 2
|
79
79
|
VALUE rb_block_call2(VALUE obj, ID mid, int argc, const VALUE *argv, rb_block_call_func_t bl_proc, VALUE data2, long flags);
|
80
|
+
struct vm_ifunc *rb_current_ifunc(void);
|
80
81
|
|
81
82
|
#if USE_YJIT
|
82
83
|
/* vm_exec.c */
|
@@ -96,7 +97,6 @@ struct rb_iseq_struct;
|
|
96
97
|
const struct rb_callcache *rb_vm_search_method_slowpath(const struct rb_callinfo *ci, VALUE klass);
|
97
98
|
|
98
99
|
/* vm_method.c */
|
99
|
-
struct rb_execution_context_struct;
|
100
100
|
int rb_ec_obj_respond_to(struct rb_execution_context_struct *ec, VALUE obj, ID id, int priv);
|
101
101
|
|
102
102
|
void rb_clear_constant_cache(void);
|
@@ -104,6 +104,16 @@ struct iseq_compile_data {
|
|
104
104
|
const VALUE err_info;
|
105
105
|
const VALUE catch_table_ary; /* Array */
|
106
106
|
|
107
|
+
/* Mirror fields from ISEQ_BODY so they are accessible during iseq setup */
|
108
|
+
unsigned int iseq_size;
|
109
|
+
VALUE *iseq_encoded; /* half-encoded iseq (insn addr and operands) */
|
110
|
+
bool is_single_mark_bit; /* identifies whether mark bits are single or a list */
|
111
|
+
|
112
|
+
union {
|
113
|
+
iseq_bits_t * list; /* Find references for GC */
|
114
|
+
iseq_bits_t single;
|
115
|
+
} mark_bits;
|
116
|
+
|
107
117
|
/* GC is not needed */
|
108
118
|
struct iseq_label_data *start_label;
|
109
119
|
struct iseq_label_data *end_label;
|
@@ -119,6 +129,7 @@ struct iseq_compile_data {
|
|
119
129
|
struct iseq_compile_data_storage *storage_current;
|
120
130
|
} insn;
|
121
131
|
bool in_rescue;
|
132
|
+
bool in_masgn;
|
122
133
|
int loopval_popped; /* used by NODE_BREAK */
|
123
134
|
int last_line;
|
124
135
|
int label_no;
|
@@ -193,7 +204,7 @@ VALUE *rb_iseq_original_iseq(const rb_iseq_t *iseq);
|
|
193
204
|
void rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE misc,
|
194
205
|
VALUE locals, VALUE args,
|
195
206
|
VALUE exception, VALUE body);
|
196
|
-
void
|
207
|
+
void rb_iseq_mark_and_move_insn_storage(struct iseq_compile_data_storage *arena);
|
197
208
|
|
198
209
|
VALUE rb_iseq_load(VALUE data, VALUE parent, VALUE opt);
|
199
210
|
VALUE rb_iseq_parameters(const rb_iseq_t *iseq, int is_proc);
|
@@ -15,6 +15,7 @@
|
|
15
15
|
#include "internal/imemo.h"
|
16
16
|
#include "internal/compilers.h"
|
17
17
|
#include "internal/static_assert.h"
|
18
|
+
#include "ruby/atomic.h"
|
18
19
|
|
19
20
|
#ifndef END_OF_ENUMERATION
|
20
21
|
# if defined(__GNUC__) &&! defined(__STRICT_ANSI__)
|
@@ -181,7 +182,8 @@ struct rb_method_definition_struct {
|
|
181
182
|
unsigned int iseq_overload: 1;
|
182
183
|
unsigned int no_redef_warning: 1;
|
183
184
|
unsigned int aliased : 1;
|
184
|
-
|
185
|
+
|
186
|
+
rb_atomic_t reference_count;
|
185
187
|
|
186
188
|
union {
|
187
189
|
rb_method_iseq_t iseq;
|
@@ -237,6 +239,7 @@ st_index_t rb_hash_method_entry(st_index_t hash, const rb_method_entry_t *me);
|
|
237
239
|
|
238
240
|
VALUE rb_method_entry_location(const rb_method_entry_t *me);
|
239
241
|
|
242
|
+
void rb_free_method_entry_vm_weak_references(const rb_method_entry_t *me);
|
240
243
|
void rb_free_method_entry(const rb_method_entry_t *me);
|
241
244
|
|
242
245
|
const rb_method_entry_t *rb_method_entry_clone(const rb_method_entry_t *me);
|
@@ -67,16 +67,27 @@ const struct kwtable *rb_reserved_word(const char *, unsigned int);
|
|
67
67
|
struct parser_params;
|
68
68
|
PRINTF_ARGS(void rb_parser_printf(struct parser_params *parser, const char *fmt, ...), 2, 3);
|
69
69
|
VALUE rb_node_set_type(NODE *n, enum node_type t);
|
70
|
+
enum node_type rb_node_get_type(const NODE *n);
|
70
71
|
|
71
72
|
RUBY_SYMBOL_EXPORT_END
|
72
73
|
|
73
74
|
#define NODE_LSHIFT (NODE_TYPESHIFT+7)
|
74
75
|
#define NODE_LMASK (((SIGNED_VALUE)1<<(sizeof(VALUE)*CHAR_BIT-NODE_LSHIFT))-1)
|
75
76
|
|
76
|
-
|
77
|
-
|
78
|
-
|
77
|
+
static inline int
|
78
|
+
nd_line(const NODE *n)
|
79
|
+
{
|
80
|
+
if (!n) return -1;
|
81
|
+
SIGNED_VALUE flags = (SIGNED_VALUE)n->flags;
|
82
|
+
return (int)(flags >> NODE_LSHIFT);
|
83
|
+
}
|
79
84
|
|
85
|
+
static inline void
|
86
|
+
nd_set_line(NODE *n, SIGNED_VALUE l)
|
87
|
+
{
|
88
|
+
n->flags &= ~(~(VALUE)0 << NODE_LSHIFT);
|
89
|
+
n->flags |= ((VALUE)(l & NODE_LMASK) << NODE_LSHIFT);
|
90
|
+
}
|
80
91
|
|
81
92
|
#define NODE_SPECIAL_REQUIRED_KEYWORD ((NODE *)-1)
|
82
93
|
#define NODE_REQUIRED_KEYWORD_P(node) ((node) == NODE_SPECIAL_REQUIRED_KEYWORD)
|