julia> @benchmark 1 + 1
GC error (probable corruption)
Allocations: 47629904 (Pool: 47628617; Big: 1287); GC: 34
<?#0x303df08a0::Memory{Any}(4, 0x301576520)[
ntuple(Base.var"#181#183"{Tuple{Int64}, Tuple{Bool}, Tuple{Int64}, Array{Symbol, 1}}, Int64) from ntuple(F, Integer) where {F},
#<null>,
#<null>,
#<null>]>
thread 0 ptr queue:
~~~~~~~~~~ ptr queue top ~~~~~~~~~~
Task(next=nothing, queue=nothing, storage=Base.IdDict{Any, Any}(ht=Memory{Any}(32, 0x1169bf460)[
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
:LLVMContext,
Array{LLVM.Context, 1}(dims=(0,), mem=Memory{LLVM.Context}(8, 0x3024fbc80)[LLVM.Context(ref=0x000000012fe85300), LLVM.Context(ref=0x000000012feacb00), LLVM.Context(ref=0x0000000000000000), LLVM.Context(ref=0x0000000000000000), LLVM.Context(ref=0x0000000000000000), LLVM.Context(ref=0x0000000000000000), LLVM.Context(ref=0x0000000000000000), LLVM.Context(ref=0x0000000000000000)]),
#<null>,
#<null>,
#<null>,
#<null>,
:current_tracy_ctx,
Array{Tracy.TracyZoneContext, 1}(dims=(0,), mem=Memory{Tracy.TracyZoneContext}(8, 0x3154fef00)[Tracy.TracyZoneContext(id=0x00000000, active=0), Tracy.TracyZoneContext(id=0x00000000, active=0), Tracy.TracyZoneContext(id=0x01130008, active=1), Tracy.TracyZoneContext(id=0x01130008, active=1), Tracy.TracyZoneContext(id=0x00000001, active=0), Tracy.TracyZoneContext(id=0xffffffff, active=-1), Tracy.TracyZoneContext(id=0x00000001, active=0), Tracy.TracyZoneContext(id=0x16b3000a, active=1)]),
#<null>,
#<null>,
#<null>,
#<null>,
:SOURCE_PATH,
nothing,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
:LLVMTSContext,
Array{LLVM.ThreadSafeContext, 1}(dims=(0,), mem=Memory{LLVM.ThreadSafeContext}(8, 0x3024fbbc0)[LLVM.ThreadSafeContext(ref=0x000000012fe85300), LLVM.ThreadSafeContext(ref=0x000000012fed0510), LLVM.ThreadSafeContext(ref=0x0000000000000000), LLVM.ThreadSafeContext(ref=0x0000000000000000), LLVM.ThreadSafeContext(ref=0x0000000000000000), LLVM.ThreadSafeContext(ref=0x0000000000000000), LLVM.ThreadSafeContext(ref=0x0000000000000000), LLVM.ThreadSafeContext(ref=0x0000000000000000)]),
#<null>,
#<null>], count=4, ndel=14), donenotify=nothing, result=nothing, scope=nothing, code=#<null>, rngState0=0x7ea6f88ad751ff7b, rngState1=0xd917910f41e27532, rngState2=0x46344149527e18ac, rngState3=0xfb8703e290bfee8a, rngState4=0x96df01052e8306ae, _state=0x00, sticky=true, _isexception=false, priority=0x0000)
==========
Core.Binding(value=Main, globalref=Main.Main, owner=<circular reference @-1>, ty=Any, flags=0x07)
==========
Core.Binding(value=Core, globalref=Main.Core, owner=<circular reference @-1>, ty=Any, flags=0x01)
==========
Core.Binding(value=#<null>, globalref=Main.getfield, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=Base, globalref=Main.Base, owner=<circular reference @-1>, ty=#<null>, flags=0x01)
==========
Core.Binding(value=#<null>, globalref=Main.Float64, owner=Core.Binding(value=Float64, globalref=Core.Float64, owner=<circular reference @-1>, ty=Any, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.Float32, owner=Core.Binding(value=Float32, globalref=Core.Float32, owner=<circular reference @-1>, ty=Any, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.Float16, owner=Core.Binding(value=Float16, globalref=Core.Float16, owner=<circular reference @-1>, ty=Any, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.remotecall_wait, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.Distributed, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.procs, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.main, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=Base.IdDict{Any, Any}(ht=Memory{Any}(32, 0x119a79560)[
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
Base.Docs.Binding(mod=Main, var=:Main),
Base.Docs.MultiDoc(order=Array{Type, 1}(dims=(1,), mem=Memory{Type}(8, 0x119a7a390)[Union{}, #<null>, #<null>, #<null>, #<null>, #<null>, #<null>, #<null>]), docs=Base.IdDict{Any, Any}(ht=Memory{Any}(32, 0x119a7a020)[
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
Union{},
Base.Docs.DocStr(text=svec(" Main\n\n`Main` is the top-level module, and Julia starts with `Main` set as the current module. Variables defined at the prompt go in `Main`, and `varinfo` lists variables in `Main`.\n```jldoctest\njulia> @__MODULE__\nMain\n```\n"), object=nothing, data=Base.Dict{Symbol, Any}(slots=Memory{UInt8}(16, 0x11d9b3ab0)[0x00, 0xc2, 0x00, 0xa8, 0xda, 0xbb, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], keys=Memory{Symbol}(16, 0x119a7a280)[
#<null>,
:typesig,
#<null>,
:module,
:linenumber,
:binding,
:path,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>], vals=Memory{Any}(16, 0x119a7a1c0)[
#<null>,
Union{},
#<null>,
Base.BaseDocs,
3546,
Base.Docs.Binding(mod=Main, var=:Main),
"docs/basedocs.jl",
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>], ndel=0, count=5, age=0x0000000000000008, idxfloor=1, maxprobe=1)),
#<null>,
#<null>], count=1, ndel=0)),
#<null>,
#<null>,
Base.Docs.Binding(mod=Main, var=:include),
Base.Docs.MultiDoc(order=Array{Type, 1}(dims=(1,), mem=Memory{Type}(8, 0x119a79f50)[
Tuple{Function, AbstractString},
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>]), docs=Base.IdDict{Any, Any}(ht=Memory{Any}(32, 0x119a79b70)[
Tuple{Function, AbstractString},
Base.Docs.DocStr(text=svec(" include([mapexpr::Function,] path::AbstractString)\n\nEvaluate the contents of the input source file in the global scope of the containing module.\nEvery module (except those defined with `baremodule`) has its own\ndefinition of `include`, which evaluates the file in that module.\nReturns the result of the last evaluated expression of the input file. During including,\na task-local include path is set to the directory containing the file. Nested calls to\n`include` will search relative to that path. This function is typically used to load source\ninteractively, or to combine files in packages that are broken into multiple source files.\nThe argument `path` is normalized using [`normpath`](@ref) which will resolve\nrelative path tokens such as `..` and convert `/` to the appropriate path separator.\n\nThe optional first argument `mapexpr` can be used to transform the included code before\nit is evaluated: for each parsed expression `expr` in `path`, the `include` function\nactually evaluates `mapexpr(expr)`. If it is omitted, `mapexpr` defaults to [`identity`](@ref).\n\nUse [`Base.include`](@ref) to evaluate a file into another module.\n\n!!! compat \"Julia 1.5\"\n Julia 1.5 is required for passing the `mapexpr` argument.\n"), object=nothing, data=Base.Dict{Symbol, Any}(slots=Memory{UInt8}(16, 0x11d9b3570)[0x00, 0xc2, 0x00, 0xa8, 0xda, 0xbb, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], keys=Memory{Symbol}(16, 0x119a79dd0)[
#<null>,
:typesig,
#<null>,
:module,
:linenumber,
:binding,
:path,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>], vals=Memory{Any}(16, 0x119a79d10)[
#<null>,
Tuple{Function, AbstractString},
#<null>,
Main,
13,
Base.Docs.Binding(mod=Main, var=:include),
"sysimg.jl",
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>], ndel=0, count=5, age=0x0000000000000006, idxfloor=1, maxprobe=1)),
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>], count=1, ndel=0)),
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
Base.Docs.Binding(mod=Main, var=:eval),
Base.Docs.MultiDoc(order=Array{Type, 1}(dims=(1,), mem=Memory{Type}(8, 0x119a79aa0)[
Tuple{Any},
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>]), docs=Base.IdDict{Any, Any}(ht=Memory{Any}(32, 0x119a796d0)[
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
Tuple{Any},
Base.Docs.DocStr(text=svec(" eval(expr)\n\nEvaluate an expression in the global scope of the containing module.\nEvery `Module` (except those defined with `baremodule`) has its own 1-argument\ndefinition of `eval`, which evaluates expressions in that module.\n"), object=nothing, data=Base.Dict{Symbol, Any}(slots=Memory{UInt8}(16, 0x11d9b3430)[0x00, 0xc2, 0x00, 0xa8, 0xda, 0xbb, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], keys=Memory{Symbol}(16, 0x119a79930)[
#<null>,
:typesig,
#<null>,
:module,
:linenumber,
:binding,
:path,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>], vals=Memory{Any}(16, 0x119a79870)[
#<null>,
Tuple{Any},
#<null>,
Main,
41,
Base.Docs.Binding(mod=Main, var=:eval),
"sysimg.jl",
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>], ndel=0, count=5, age=0x0000000000000006, idxfloor=1, maxprobe=1)),
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>], count=1, ndel=0)),
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>,
#<null>], count=3, ndel=0), globalref=Main.var"##meta#59", owner=<circular reference @-1>, ty=Any, flags=0x00)
==========
Core.Binding(value=Main.include, globalref=Main.include, owner=<circular reference @-1>, ty=#<null>, flags=0x01)
==========
Core.Binding(value=typeof(Main.include), globalref=Main.var"#include", owner=<circular reference @-1>, ty=Any, flags=0x01)
==========
Core.Binding(value=#<null>, globalref=Main.Function, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.AbstractString, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.Union, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.Tuple, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.isa, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.String, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.identity, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=Main.eval, globalref=Main.eval, owner=<circular reference @-1>, ty=#<null>, flags=0x01)
==========
Core.Binding(value=typeof(Main.eval), globalref=Main.var"#eval", owner=<circular reference @-1>, ty=Any, flags=0x01)
==========
Core.Binding(value=#<null>, globalref=Main.Any, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.var"@__MODULE__", owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.var"@__FILE__", owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.pushfirst!, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.abspath, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.GC, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.var"@eval", owner=Core.Binding(value=Base.var"@eval", globalref=Base.var"@eval", owner=<circular reference @-1>, ty=#<null>, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.var"@elapsed", owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.current_task, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.maximum, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.textwidth, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.string, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.push!, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.empty!, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.LOAD_PATH, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.:(*), owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.:(-), owner=Core.Binding(value=Base.:(-), globalref=Base.:(-), owner=<circular reference @-1>, ty=#<null>, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.:(^), owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.:(==), owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.Cvoid, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.isfile, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.:(+), owner=Core.Binding(value=Base.:(+), globalref=Base.:(+), owner=<circular reference @-1>, ty=#<null>, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.println, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.print, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.stdout, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.show, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.IOContext, owner=Core.Binding(value=Base.IOContext{IO_t} where IO_t<:IO, globalref=Base.IOContext, owner=<circular reference @-1>, ty=Any, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.:(=>), owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.:(/), owner=Core.Binding(value=Base.:(/), globalref=Base.:(/), owner=<circular reference @-1>, ty=#<null>, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.DEPOT_PATH, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.Sys, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.IOBuffer, owner=Core.Binding(value=Base.GenericIOBuffer{GenericMemory{:not_atomic, UInt8, Core.AddrSpace{Core}(0x00)}}, globalref=Base.IOBuffer, owner=<circular reference @-1>, ty=Any, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.var"@warn", owner=Core.Binding(value=Base.CoreLogging.var"@warn", globalref=Base.CoreLogging.var"@warn", owner=<circular reference @-1>, ty=#<null>, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.IJulia, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.Atom, owner=#<null>, ty=#<null>, flags=0x00)
==========
Core.Binding(value=Revise, globalref=Main.Revise, owner=<circular reference @-1>, ty=Any, flags=0x09)
==========
Core.Binding(value=#<null>, globalref=Main.Pkg, owner=Core.Binding(value=Pkg, globalref=Pkg.Pkg, owner=<circular reference @-1>, ty=Any, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=Main.var"#1#2", globalref=Main.var"#1#2", owner=<circular reference @-1>, ty=Any, flags=0x01)
==========
Core.Binding(value=#<null>, globalref=Main.atreplinit, owner=Core.Binding(value=Base.atreplinit, globalref=Base.atreplinit, owner=<circular reference @-1>, ty=#<null>, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.OhMyREPL, owner=Core.Binding(value=OhMyREPL, globalref=OhMyREPL.OhMyREPL, owner=<circular reference @-1>, ty=Any, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.format, owner=Core.Binding(value=JuliaFormatter.format, globalref=JuliaFormatter.format, owner=<circular reference @-1>, ty=Any, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.activate, owner=Core.Binding(value=TestEnv.activate, globalref=TestEnv.activate, owner=<circular reference @-1>, ty=Any, flags=0x01), ty=#<null>, flags=0x00)
==========
Core.Binding(value=BenchmarkTools, globalref=Main.BenchmarkTools, owner=<circular reference @-1>, ty=Any, flags=0x09)
==========
Core.Binding(value=DifferentiationInterface, globalref=Main.DifferentiationInterface, owner=<circular reference @-1>, ty=Any, flags=0x09)
==========
Core.Binding(value=#<null>, globalref=Main.Enzyme, owner=Core.Binding(value=Enzyme, globalref=Enzyme.Enzyme, owner=<circular reference @-1>, ty=Any, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=DifferentiationInterface, globalref=Main.DI, owner=<circular reference @-1>, ty=Any, flags=0x01)
==========
Core.Binding(value=Main.f!, globalref=Main.f!, owner=<circular reference @-1>, ty=#<null>, flags=0x01)
==========
Core.Binding(value=typeof(Main.f!), globalref=Main.var"#f!", owner=<circular reference @-1>, ty=Any, flags=0x01)
==========
Core.Binding(value=#<null>, globalref=Main.copyto!, owner=Core.Binding(value=Base.copyto!, globalref=Base.copyto!, owner=<circular reference @-1>, ty=#<null>, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.nothing, owner=Core.Binding(value=nothing, globalref=Core.nothing, owner=<circular reference @-1>, ty=Any, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.rand, owner=Core.Binding(value=Base.rand, globalref=Base.rand, owner=<circular reference @-1>, ty=#<null>, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=Array{Float64, 1}(dims=(4,), mem=Memory{Float64}(4, 0x10b05ff20)[0.60356, 0.450652, 0.564336, 0.599159]), globalref=Main.x, owner=<circular reference @-1>, ty=Any, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.Vector, owner=Core.Binding(value=Array{T, 1} where T, globalref=Base.Vector, owner=<circular reference @-1>, ty=Any, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.similar, owner=Core.Binding(value=Base.similar, globalref=Base.similar, owner=<circular reference @-1>, ty=#<null>, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=Array{Float64, 1}(dims=(4,), mem=Memory{Float64}(4, 0x10a7b0520)[6.3952e-314, 0, 0, 0]), globalref=Main.y, owner=<circular reference @-1>, ty=Any, flags=0x00)
==========
Core.Binding(value=(a=Array{Array{Float64, 1}, 1}(dims=(1,), mem=Memory{Array{Float64, 1}}(1, 0x3038a1b80)[Array{Float64, 1}(dims=(4,), mem=Memory{Float64}(4, 0x108beed20)[1, 1, 1, 1])]), b=Array{Array{Float64, 1}, 1}(dims=(1,), mem=Memory{Array{Float64, 1}}(1, 0x3038a1be0)[Array{Float64, 1}(dims=(4,), mem=Memory{Float64}(4, 0x303911260)[6.3952e-314, 0, 0, 0])])), globalref=Main.c, owner=<circular reference @-1>, ty=Any, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.AutoEnzyme, owner=Core.Binding(value=ADTypes.AutoEnzyme{M, A} where A where M, globalref=ADTypes.AutoEnzyme, owner=<circular reference @-1>, ty=Any, flags=0x07), ty=#<null>, flags=0x00)
==========
Core.Binding(value=ADTypes.AutoEnzyme{EnzymeCore.ForwardMode{false, EnzymeCore.FFIABI, false, false}, Nothing}(mode=EnzymeCore.ForwardMode{false, EnzymeCore.FFIABI, false, false}()), globalref=Main.backend, owner=<circular reference @-1>, ty=Any, flags=0x00)
==========
Core.Binding(value=#<null>, globalref=Main.Cache, owner=Core.Binding(value=DifferentiationInterface.Cache{T} where T, globalref=DifferentiationInterface.Cache, owner=<circular reference @-1>, ty=Any, flags=0x07), ty=#<null>, flags=0x00)
==========
Array{NTuple{4, Array{Float64, 1}}, 1}(dims=(1,), mem=Memory{NTuple{4, Array{Float64, 1}}}(1, 0x301f651a0)[(Array{Float64, 1}(dims=(4,), mem=Memory{Float64}(4, 0x301f65060)[1, 0, 0, 0]), Array{Float64, 1}(dims=(4,), mem=Memory{Float64}(4, 0x301f650e0)[0, 1, 0, 0]), Array{Float64, 1}(dims=(4,), mem=Memory{Float64}(4, 0x301f65120)[0, 0, 1, 0]), Array{Float64, 1}(dims=(4,), mem=Memory{Float64}(4, 0x301f65160)[0, 0, 0, 1]))])
==========
Array{NTuple{4, Array{Float64, 1}}, 1}(dims=(1,), mem=Memory{NTuple{4, Array{Float64, 1}}}(1, 0x301f652e0)[(Array{Float64, 1}(dims=(4,), mem=Memory{Float64}(4, 0x301f651e0)[0, 0, 0, 0]), Array{Float64, 1}(dims=(4,), mem=Memory{Float64}(4, 0x301f65220)[0, 0, 0, 0]), Array{Float64, 1}(dims=(4,), mem=Memory{Float64}(4, 0x301f65260)[0, 0, 0, 0]), Array{Float64, 1}(dims=(4,), mem=Memory{Float64}(4, 0x301f652a0)[0, 0, 0, 0]))])
==========
Array{Array{Float64, 1}, 1}(dims=(1,), mem=Memory{Array{Float64, 1}}(1, 0x301bdd020)[Array{Float64, 1}(dims=(4,), mem=Memory{Float64}(4, 0x108beed60)[0, 0, 0, 0])])
==========
Array{Array{Float64, 1}, 1}(dims=(1,), mem=Memory{Array{Float64, 1}}(1, 0x301bdd080)[Array{Float64, 1}(dims=(4,), mem=Memory{Float64}(4, 0x301f65360)[0, 0, 0, 0])])
==========
Array{Array{Float64, 1}, 1}(dims=(1,), mem=Memory{Array{Float64, 1}}(1, 0x301bdd0e0)[Core.Compiler.EscapeAnalysis.ArgEscapeCache(argescapes=Array{Core.Compiler.EscapeAnalysis.ArgEscapeInfo, 1}(dims=(3,), mem=Memory{Core.Compiler.EscapeAnalysis.ArgEscapeInfo}(3, 0x303df07a0)[Core.Compiler.EscapeAnalysis.ArgEscapeInfo(escape_bits=0x00), Core.Compiler.EscapeAnalysis.ArgEscapeInfo(escape_bits=0x01), Core.Compiler.EscapeAnalysis.ArgEscapeInfo(escape_bits=0x00)]), argaliases=Array{Core.Compiler.EscapeAnalysis.ArgAliasing, 1}(dims=(0,), mem=Memory{Core.Compiler.EscapeAnalysis.ArgAliasing}(0, 0x11a008260)[]))])
==========
Array{Array{Float64, 1}, 1}(dims=(1,), mem=Memory{Array{Float64, 1}}(1, 0x301bdd140)[Array{Float64, 1}(dims=(4,), mem=Memory{Float64}(4, 0x301f653e0)[0, 0, 0, 0])])
==========
~~~~~~~~~~ ptr queue bottom ~~~~~~~~~~
[11821] signal 6: Abort trap: 6
in expression starting at REPL[14]:1
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
Allocations: 47629904 (Pool: 47628617; Big: 1287); GC: 34
[1] 11821 abort julia
While working on #782 I observed a very weird bug on the example inspired by #766. I compute a Jacobian with Enzyme, then I run a completely unrelated BenchmarkTools command and the REPL crashes:
Interestingly, the crash doesn't happen...
EDIT1: BenchmarkTools is no longer a suspect, the bug still appears when we replace
@benchmarl 1+1withGC.gc(true).MWE:
Error:
Details
Versions:
Details