compintell / Mooncake.jl

https://compintell.github.io/Mooncake.jl/
MIT License
118 stars 6 forks source link

BoundsError in Turing test suite on Julia v1.11.1 #315

Open mhauru opened 2 hours ago

mhauru commented 2 hours ago

A Turing CI run fails with the following:

hmcda+gibbs inference: Error During Test at /home/runner/work/Turing.jl/Turing.jl/test/mcmc/hmc.jl:145
  Got exception outside of a @test
  BoundsError: attempt to access MemoryRef{Mooncake.NoTangent} at index [14]
  Stacktrace:
    [1] rrule!!
      @ ~/.julia/packages/Mooncake/LKJK9/src/rrules/memory.jl:291 [inlined]
    [2] ht_keyindex2_shorthash!
      @ ./dict.jl:266 [inlined]
    [3] (::Tuple{Mooncake.Stack{Int32}, Base.RefValue{Tuple{Mooncake.LazyZeroRData{typeof(Base.ht_keyindex2_shorthash!), Nothing}, Mooncake.LazyZeroRData{Dict{DynamicPPL.Selector, Nothing}, Nothing}, Mooncake.LazyZeroRData{DynamicPPL.Selector, Nothing}}}, Mooncake.RRuleZeroWrapper{Mooncake.LazyDerivedRule{Tuple{typeof(Base.rehash!), Dict{DynamicPPL.Selector, Nothing}, Int64}, Mooncake.DerivedRule{Tuple{typeof(Base.rehash!), Dict{DynamicPPL.Selector, Nothing}, Int64}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.CoDual{typeof(Base.rehash!), Mooncake.NoFData}, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.CoDual{Int64, Mooncake.NoFData}}, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{3}}}}, Mooncake.RRuleZeroWrapper{Mooncake.LazyDerivedRule{Tuple{typeof(Base.rehash!), Dict{DynamicPPL.Selector, Nothing}, Int64}, Mooncake.DerivedRule{Tuple{typeof(Base.rehash!), Dict{DynamicPPL.Selector, Nothing}, Int64}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.CoDual{typeof(Base.rehash!), Mooncake.NoFData}, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.CoDual{Int64, Mooncake.NoFData}}, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{3}}}}, Mooncake.LazyDerivedRule{Tuple{typeof(Base.ht_keyindex2_shorthash!), Dict{DynamicPPL.Selector, Nothing}, DynamicPPL.Selector}, Mooncake.DerivedRule{Tuple{typeof(Base.ht_keyindex2_shorthash!), Dict{DynamicPPL.Selector, Nothing}, DynamicPPL.Selector}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.CoDual{typeof(Base.ht_keyindex2_shorthash!), Mooncake.NoFData}, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.CoDual{DynamicPPL.Selector, Mooncake.NoFData}}, Mooncake.CoDual{Tuple{Int64, UInt8}, Mooncake.NoFData}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{3}}}, Mooncake.Stack{Tuple{Mooncake.var"#mutable_lgetfield_pb!!#483"{:keys, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, Mooncake.Stack{Tuple{Mooncake.RRuleWrapperPb{Mooncake.Pullback{Tuple{typeof(Base.rehash!), Dict{DynamicPPL.Selector, Nothing}, Int64}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{1}}, Mooncake.LazyZeroRData{Dict{DynamicPPL.Selector, Nothing}, Nothing}}, Mooncake.var"#mutable_lgetfield_pb!!#483"{:keys, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, Mooncake.Stack{Tuple{Mooncake.var"#mutable_lgetfield_pb!!#483"{:maxprobe, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#mutable_lgetfield_pb!!#483"{:keys, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, Mooncake.Stack{Tuple{Mooncake.var"#mutable_lgetfield_pb!!#483"{:slots, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#lmemoryrefget_adjoint#524"{MemoryRef{Mooncake.NoTangent}, Val{false}, Val{:not_atomic}}}}, Mooncake.Stack{Tuple{Mooncake.var"#mutable_lgetfield_pb!!#483"{:slots, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#lmemoryrefget_adjoint#524"{MemoryRef{Mooncake.NoTangent}, Val{false}, Val{:not_atomic}}}}, Mooncake.Stack{Tuple{Mooncake.var"#mutable_lgetfield_pb!!#483"{:slots, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#lmemoryrefget_adjoint#524"{MemoryRef{Mooncake.NoTangent}, Val{false}, Val{:not_atomic}}}}, Mooncake.Stack{Tuple{Mooncake.var"#lmemoryrefget_adjoint#524"{MemoryRef{Mooncake.NoTangent}, Val{false}, Val{:not_atomic}}}}, Mooncake.Stack{Tuple{Mooncake.var"#mutable_lgetfield_pb!!#483"{:slots, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#lmemoryrefget_adjoint#524"{MemoryRef{Mooncake.NoTangent}, Val{false}, Val{:not_atomic}}}}, Mooncake.Stack{Tuple{Mooncake.var"#setfield!_pullback#488"{:maxprobe, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}, Mooncake.NoTangent, Int64}}}, Mooncake.Stack{Tuple{Mooncake.var"#mutable_lgetfield_pb!!#483"{:count, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, Mooncake.Stack{Tuple{Mooncake.RRuleWrapperPb{Mooncake.Pullback{Tuple{typeof(Base.rehash!), Dict{DynamicPPL.Selector, Nothing}, Int64}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{1}}, Mooncake.LazyZeroRData{Dict{DynamicPPL.Selector, Nothing}, Nothing}}, Mooncake.Pullback{Tuple{typeof(Base.ht_keyindex2_shorthash!), Dict{DynamicPPL.Selector, Nothing}, DynamicPPL.Selector}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{1}}}}})(none::Mooncake.CoDual{typeof(Base.ht_keyindex2_shorthash!), Mooncake.NoFData}, none::Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, none::Mooncake.CoDual{DynamicPPL.Selector, Mooncake.NoFData})
      @ Base.Experimental ./<missing>:0
    [4] (::MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.CoDual{typeof(Base.ht_keyindex2_shorthash!), Mooncake.NoFData}, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.CoDual{DynamicPPL.Selector, Mooncake.NoFData}}, Mooncake.CoDual{Tuple{Int64, UInt8}, Mooncake.NoFData}}})(::Mooncake.CoDual{typeof(Base.ht_keyindex2_shorthash!), Mooncake.NoFData}, ::Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, ::Mooncake.CoDual{DynamicPPL.Selector, Mooncake.NoFData})
      @ MistyClosures ~/.julia/packages/MistyClosures/4rFSA/src/MistyClosures.jl:22
    [5] DerivedRule
      @ ~/.julia/packages/Mooncake/LKJK9/src/interpreter/s2s_reverse_mode_ad.jl:745 [inlined]
    [6] LazyDerivedRule
      @ ~/.julia/packages/Mooncake/LKJK9/src/interpreter/s2s_reverse_mode_ad.jl:1490 [inlined]
    [7] setindex!
      @ ./dict.jl:355 [inlined]
    [8] (::Tuple{Mooncake.Stack{Int32}, Base.RefValue{Tuple{Mooncake.LazyZeroRData{typeof(setindex!), Nothing}, Mooncake.LazyZeroRData{Dict{DynamicPPL.Selector, Nothing}, Nothing}, Mooncake.LazyZeroRData{Nothing, Nothing}, Mooncake.LazyZeroRData{DynamicPPL.Selector, Nothing}}}, Mooncake.LazyDerivedRule{Tuple{typeof(Base.ht_keyindex2_shorthash!), Dict{DynamicPPL.Selector, Nothing}, DynamicPPL.Selector}, Mooncake.DerivedRule{Tuple{typeof(Base.ht_keyindex2_shorthash!), Dict{DynamicPPL.Selector, Nothing}, DynamicPPL.Selector}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.CoDual{typeof(Base.ht_keyindex2_shorthash!), Mooncake.NoFData}, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.CoDual{DynamicPPL.Selector, Mooncake.NoFData}}, Mooncake.CoDual{Tuple{Int64, UInt8}, Mooncake.NoFData}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{3}}}, Mooncake.RRuleZeroWrapper{Mooncake.LazyDerivedRule{Tuple{typeof(Base.rehash!), Dict{DynamicPPL.Selector, Nothing}, Int64}, Mooncake.DerivedRule{Tuple{typeof(Base.rehash!), Dict{DynamicPPL.Selector, Nothing}, Int64}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.CoDual{typeof(Base.rehash!), Mooncake.NoFData}, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.CoDual{Int64, Mooncake.NoFData}}, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{3}}}}, Mooncake.Stack{Tuple{Mooncake.Pullback{Tuple{typeof(Base.ht_keyindex2_shorthash!), Dict{DynamicPPL.Selector, Nothing}, DynamicPPL.Selector}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{1}}}}, Mooncake.Stack{Tuple{Mooncake.var"#mutable_lgetfield_pb!!#483"{:age, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#setfield!_pullback#488"{:age, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}, Mooncake.NoTangent, UInt64}, Mooncake.var"#mutable_lgetfield_pb!!#483"{:keys, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#lmemoryrefset_adjoint#526"{Mooncake.CoDual{MemoryRef{DynamicPPL.Selector}, MemoryRef{Mooncake.NoTangent}}, MemoryRef{Mooncake.NoTangent}, Base.RefValue{Tuple{DynamicPPL.Selector, Mooncake.NoTangent}}, Bool, Val{false}, Val{:not_atomic}}, Mooncake.var"#mutable_lgetfield_pb!!#483"{:vals, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#isbits_lmemoryrefset!_adjoint#527"{Mooncake.CoDual{MemoryRef{Nothing}, MemoryRef{Mooncake.NoTangent}}, Val{:not_atomic}, Val{false}, Tuple{Nothing, Mooncake.NoTangent}}}}, Mooncake.Stack{Tuple{Mooncake.var"#mutable_lgetfield_pb!!#483"{:ndel, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#mutable_lgetfield_pb!!#483"{:slots, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#lmemoryrefget_adjoint#524"{MemoryRef{Mooncake.NoTangent}, Val{false}, Val{:not_atomic}}, Mooncake.var"#setfield!_pullback#488"{:ndel, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}, Mooncake.NoTangent, Int64}, Mooncake.var"#mutable_lgetfield_pb!!#483"{:slots, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#isbits_lmemoryrefset!_adjoint#527"{Mooncake.CoDual{MemoryRef{UInt8}, MemoryRef{Mooncake.NoTangent}}, Val{:not_atomic}, Val{false}, Tuple{UInt8, Mooncake.NoTangent}}, Mooncake.var"#mutable_lgetfield_pb!!#483"{:keys, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#lmemoryrefset_adjoint#526"{Mooncake.CoDual{MemoryRef{DynamicPPL.Selector}, MemoryRef{Mooncake.NoTangent}}, MemoryRef{Mooncake.NoTangent}, Base.RefValue{Tuple{DynamicPPL.Selector, Mooncake.NoTangent}}, Bool, Val{false}, Val{:not_atomic}}, Mooncake.var"#mutable_lgetfield_pb!!#483"{:vals, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#isbits_lmemoryrefset!_adjoint#527"{Mooncake.CoDual{MemoryRef{Nothing}, MemoryRef{Mooncake.NoTangent}}, Val{:not_atomic}, Val{false}, Tuple{Nothing, Mooncake.NoTangent}}, Mooncake.var"#mutable_lgetfield_pb!!#483"{:count, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#setfield!_pullback#488"{:count, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}, Mooncake.NoTangent, Int64}, Mooncake.var"#mutable_lgetfield_pb!!#483"{:age, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#setfield!_pullback#488"{:age, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}, Mooncake.NoTangent, UInt64}, Mooncake.var"#mutable_lgetfield_pb!!#483"{:idxfloor, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, Mooncake.Stack{Tuple{Mooncake.var"#setfield!_pullback#488"{:idxfloor, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}, Mooncake.NoTangent, Int64}}}, Mooncake.Stack{Tuple{Mooncake.var"#mutable_lgetfield_pb!!#483"{:keys, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#mutable_lgetfield_pb!!#483"{:count, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.var"#mutable_lgetfield_pb!!#483"{:ndel, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, Mooncake.Stack{Tuple{Mooncake.var"#mutable_lgetfield_pb!!#483"{:count, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, Mooncake.Stack{Tuple{Mooncake.var"#mutable_lgetfield_pb!!#483"{:count, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, Mooncake.Stack{Tuple{Mooncake.var"#mutable_lgetfield_pb!!#483"{:count, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, Mooncake.Stack{Tuple{Mooncake.RRuleWrapperPb{Mooncake.Pullback{Tuple{typeof(Base.rehash!), Dict{DynamicPPL.Selector, Nothing}, Int64}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{1}}, Mooncake.LazyZeroRData{Dict{DynamicPPL.Selector, Nothing}, Nothing}}}}})(none::Mooncake.CoDual{typeof(setindex!), Mooncake.NoFData}, none::Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, none::Mooncake.CoDual{Nothing, Mooncake.NoFData}, none::Mooncake.CoDual{DynamicPPL.Selector, Mooncake.NoFData})
      @ Base.Experimental ./<missing>:0
    [9] (::MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.CoDual{typeof(setindex!), Mooncake.NoFData}, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.CoDual{Nothing, Mooncake.NoFData}, Mooncake.CoDual{DynamicPPL.Selector, Mooncake.NoFData}}, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}})(::Mooncake.CoDual{typeof(setindex!), Mooncake.NoFData}, ::Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, ::Mooncake.CoDual{Nothing, Mooncake.NoFData}, ::Mooncake.CoDual{DynamicPPL.Selector, Mooncake.NoFData})
      @ MistyClosures ~/.julia/packages/MistyClosures/4rFSA/src/MistyClosures.jl:22
   [10] DerivedRule
      @ ~/.julia/packages/Mooncake/LKJK9/src/interpreter/s2s_reverse_mode_ad.jl:745 [inlined]
   [11] LazyDerivedRule
      @ ~/.julia/packages/Mooncake/LKJK9/src/interpreter/s2s_reverse_mode_ad.jl:1490 [inlined]
   [12] RRuleZeroWrapper
      @ ~/.julia/packages/Mooncake/LKJK9/src/interpreter/s2s_reverse_mode_ad.jl:253 [inlined]
   [13] tilde_assume
      @ ~/work/Turing.jl/Turing.jl/src/mcmc/gibbs.jl:57 [inlined]
   [14] (::Tuple{Mooncake.Stack{Int32}, Base.RefValue{Tuple{Mooncake.LazyZeroRData{typeof(DynamicPPL.tilde_assume), Nothing}, Mooncake.LazyZeroRData{Random.TaskLocalRNG, Nothing}, Mooncake.LazyZeroRData{Turing.Inference.GibbsContext{OrderedCollections.OrderedDict{AbstractPPL.VarName{:s, typeof(identity)}, Float64}, DynamicPPL.DefaultContext}, Nothing}, Mooncake.LazyZeroRData{DynamicPPL.Sampler{Turing.Inference.HMCDA{ADTypes.AutoMooncake{Nothing}, (), AdvancedHMC.UnitEuclideanMetric}}, Nothing}, Mooncake.LazyZeroRData{Distributions.Normal{Float64}, Nothing}, Mooncake.LazyZeroRData{AbstractPPL.VarName{:m, typeof(identity)}, Nothing}, Mooncake.LazyZeroRData{DynamicPPL.TypedVarInfo{@NamedTuple{m::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, Nothing}}}, Mooncake.LazyDerivedRule{Tuple{typeof(DynamicPPL.hasvalue), OrderedCollections.OrderedDict{AbstractPPL.VarName{:s, typeof(identity)}, Float64}, AbstractPPL.VarName{:m, typeof(identity)}}, Mooncake.DerivedRule{Tuple{typeof(DynamicPPL.hasvalue), OrderedCollections.OrderedDict{AbstractPPL.VarName{:s, typeof(identity)}, Float64}, AbstractPPL.VarName{:m, typeof(identity)}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.CoDual{typeof(DynamicPPL.hasvalue), Mooncake.NoFData}, Mooncake.CoDual{OrderedCollections.OrderedDict{AbstractPPL.VarName{:s, typeof(identity)}, Float64}, Mooncake.MutableTangent{@NamedTuple{slots::Vector{Mooncake.NoTangent}, keys::Vector{Mooncake.NoTangent}, vals::Vector{Float64}, ndel::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent, dirty::Mooncake.NoTangent}}}, Mooncake.CoDual{AbstractPPL.VarName{:m, typeof(identity)}, Mooncake.NoFData}}, Mooncake.CoDual{Bool, Mooncake.NoFData}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{3}}}, Mooncake.LazyDerivedRule{Tuple{typeof(getindex), Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, AbstractPPL.VarName{:m, typeof(identity)}}, Mooncake.DerivedRule{Tuple{typeof(getindex), Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, AbstractPPL.VarName{:m, typeof(identity)}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.CoDual{typeof(getindex), Mooncake.NoFData}, Mooncake.CoDual{Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.CoDual{AbstractPPL.VarName{:m, typeof(identity)}, Mooncake.NoFData}}, Mooncake.CoDual{Int64, Mooncake.NoFData}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{3}}}, Mooncake.RRuleZeroWrapper{Mooncake.LazyDerivedRule{Tuple{typeof(setindex!), Dict{DynamicPPL.Selector, Nothing}, Nothing, DynamicPPL.Selector}, Mooncake.DerivedRule{Tuple{typeof(setindex!), Dict{DynamicPPL.Selector, Nothing}, Nothing, DynamicPPL.Selector}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.CoDual{typeof(setindex!), Mooncake.NoFData}, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}, Mooncake.CoDual{Nothing, Mooncake.NoFData}, Mooncake.CoDual{DynamicPPL.Selector, Mooncake.NoFData}}, Mooncake.CoDual{Dict{DynamicPPL.Selector, Nothing}, Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, NTuple{4, Mooncake.NoRData}}}, Val{false}, Val{4}}}}, Mooncake.LazyDerivedRule{Tuple{typeof(DynamicPPL.getindex_internal), DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, AbstractPPL.VarName{:m, typeof(identity)}}, Mooncake.DerivedRule{Tuple{typeof(DynamicPPL.getindex_internal), DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, AbstractPPL.VarName{:m, typeof(identity)}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.CoDual{typeof(DynamicPPL.getindex_internal), Mooncake.NoFData}, Mooncake.CoDual{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, Mooncake.FData{@NamedTuple{idcs::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}, vns::Vector{Any}, ranges::Vector{Mooncake.NoTangent}, vals::Vector{Float64}, dists::Vector{Mooncake.Tangent{@NamedTuple{μ::Float64, σ::Float64}}}, gids::Vector{Mooncake.Tangent{@NamedTuple{dict::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, orders::Vector{Mooncake.NoTangent}, flags::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.MutableTangent{@NamedTuple{chunks::Vector{Mooncake.NoTangent}, len::Mooncake.NoTangent, dims::Mooncake.PossiblyUninitTangent{Mooncake.NoTangent}}}}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, Mooncake.CoDual{AbstractPPL.VarName{:m, typeof(identity)}, Mooncake.NoFData}}, Mooncake.CoDual{Vector{Float64}, Vector{Float64}}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{3}}}, Mooncake.LazyDerivedRule{Tuple{typeof(DynamicPPL.invlink_with_logpdf), DynamicPPL.TypedVarInfo{@NamedTuple{m::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, AbstractPPL.VarName{:m, typeof(identity)}, Distributions.Normal{Float64}, Vector{Float64}}, Mooncake.DerivedRule{Tuple{typeof(DynamicPPL.invlink_with_logpdf), DynamicPPL.TypedVarInfo{@NamedTuple{m::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, AbstractPPL.VarName{:m, typeof(identity)}, Distributions.Normal{Float64}, Vector{Float64}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.CoDual{typeof(DynamicPPL.invlink_with_logpdf), Mooncake.NoFData}, Mooncake.CoDual{DynamicPPL.TypedVarInfo{@NamedTuple{m::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, Mooncake.FData{@NamedTuple{metadata::@NamedTuple{m::Mooncake.FData{@NamedTuple{idcs::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}, vns::Vector{Any}, ranges::Vector{Mooncake.NoTangent}, vals::Vector{Float64}, dists::Vector{Mooncake.Tangent{@NamedTuple{μ::Float64, σ::Float64}}}, gids::Vector{Mooncake.Tangent{@NamedTuple{dict::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, orders::Vector{Mooncake.NoTangent}, flags::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.MutableTangent{@NamedTuple{chunks::Vector{Mooncake.NoTangent}, len::Mooncake.NoTangent, dims::Mooncake.PossiblyUninitTangent{Mooncake.NoTangent}}}}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, logp::Mooncake.MutableTangent{@NamedTuple{x::Mooncake.PossiblyUninitTangent{Float64}}}, num_produce::Mooncake.MutableTangent{@NamedTuple{x::Mooncake.PossiblyUninitTangent{Mooncake.NoTangent}}}}}}, Mooncake.CoDual{AbstractPPL.VarName{:m, typeof(identity)}, Mooncake.NoFData}, Mooncake.CoDual{Distributions.Normal{Float64}, Mooncake.NoFData}, Mooncake.CoDual{Vector{Float64}, Vector{Float64}}}, Mooncake.CoDual{Tuple{Float64, Float64}, Mooncake.NoFData}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tuple{Float64, Float64}}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData, Mooncake.RData{@NamedTuple{μ::Float64, σ::Float64}}, Mooncake.NoRData}}}, Val{false}, Val{5}}}, Mooncake.Stack{Tuple{Mooncake.Pullback{Tuple{typeof(DynamicPPL.hasvalue), OrderedCollections.OrderedDict{AbstractPPL.VarName{:s, typeof(identity)}, Float64}, AbstractPPL.VarName{:m, typeof(identity)}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{1}}}}, Mooncake.Stack{Tuple{Mooncake.Pullback{Tuple{typeof(getindex), Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, AbstractPPL.VarName{:m, typeof(identity)}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{1}}}}, Mooncake.Stack{Tuple{Any}}, Mooncake.Stack{Tuple{Mooncake.var"#lmemoryrefget_adjoint#524"{MemoryRef{Mooncake.Tangent{@NamedTuple{dict::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, Val{false}, Val{:not_atomic}}}}, Mooncake.Stack{Tuple{Mooncake.RRuleWrapperPb{Mooncake.Pullback{Tuple{typeof(setindex!), Dict{DynamicPPL.Selector, Nothing}, Nothing, DynamicPPL.Selector}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, NTuple{4, Mooncake.NoRData}}}, Val{false}, Val{1}}, Mooncake.LazyZeroRData{Dict{DynamicPPL.Selector, Nothing}, Nothing}}}}, Mooncake.Stack{Tuple{Mooncake.Pullback{Tuple{typeof(DynamicPPL.getindex_internal), DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, AbstractPPL.VarName{:m, typeof(identity)}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.NoRData}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData}}}, Val{false}, Val{1}}, Mooncake.Pullback{Tuple{typeof(DynamicPPL.invlink_with_logpdf), DynamicPPL.TypedVarInfo{@NamedTuple{m::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, AbstractPPL.VarName{:m, typeof(identity)}, Distributions.Normal{Float64}, Vector{Float64}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tuple{Float64, Float64}}, Tuple{Mooncake.NoRData, Mooncake.NoRData, Mooncake.NoRData, Mooncake.RData{@NamedTuple{μ::Float64, σ::Float64}}, Mooncake.NoRData}}}, Val{false}, Val{1}}}}})(none::Mooncake.CoDual{typeof(DynamicPPL.tilde_assume), Mooncake.NoFData}, none::Mooncake.CoDual{Random.TaskLocalRNG, Mooncake.NoFData}, none::Mooncake.CoDual{Turing.Inference.GibbsContext{OrderedCollections.OrderedDict{AbstractPPL.VarName{:s, typeof(identity)}, Float64}, DynamicPPL.DefaultContext}, Mooncake.FData{@NamedTuple{values::Mooncake.MutableTangent{@NamedTuple{slots::Vector{Mooncake.NoTangent}, keys::Vector{Mooncake.NoTangent}, vals::Vector{Float64}, ndel::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent, dirty::Mooncake.NoTangent}}, context::Mooncake.NoFData}}}, none::Mooncake.CoDual{DynamicPPL.Sampler{Turing.Inference.HMCDA{ADTypes.AutoMooncake{Nothing}, (), AdvancedHMC.UnitEuclideanMetric}}, Mooncake.NoFData}, none::Mooncake.CoDual{Distributions.Normal{Float64}, Mooncake.NoFData}, none::Mooncake.CoDual{AbstractPPL.VarName{:m, typeof(identity)}, Mooncake.NoFData}, none::Mooncake.CoDual{DynamicPPL.TypedVarInfo{@NamedTuple{m::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, Mooncake.FData{@NamedTuple{metadata::@NamedTuple{m::Mooncake.FData{@NamedTuple{idcs::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}, vns::Vector{Any}, ranges::Vector{Mooncake.NoTangent}, vals::Vector{Float64}, dists::Vector{Mooncake.Tangent{@NamedTuple{μ::Float64, σ::Float64}}}, gids::Vector{Mooncake.Tangent{@NamedTuple{dict::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, orders::Vector{Mooncake.NoTangent}, flags::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.MutableTangent{@NamedTuple{chunks::Vector{Mooncake.NoTangent}, len::Mooncake.NoTangent, dims::Mooncake.PossiblyUninitTangent{Mooncake.NoTangent}}}}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, logp::Mooncake.MutableTangent{@NamedTuple{x::Mooncake.PossiblyUninitTangent{Float64}}}, num_produce::Mooncake.MutableTangent{@NamedTuple{x::Mooncake.PossiblyUninitTangent{Mooncake.NoTangent}}}}}})
      @ Base.Experimental ./<missing>:0
   [15] (::MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Mooncake.CoDual{typeof(DynamicPPL.tilde_assume), Mooncake.NoFData}, Mooncake.CoDual{Random.TaskLocalRNG, Mooncake.NoFData}, Mooncake.CoDual{Turing.Inference.GibbsContext{OrderedCollections.OrderedDict{AbstractPPL.VarName{:s, typeof(identity)}, Float64}, DynamicPPL.DefaultContext}, Mooncake.FData{@NamedTuple{values::Mooncake.MutableTangent{@NamedTuple{slots::Vector{Mooncake.NoTangent}, keys::Vector{Mooncake.NoTangent}, vals::Vector{Float64}, ndel::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent, dirty::Mooncake.NoTangent}}, context::Mooncake.NoFData}}}, Mooncake.CoDual{DynamicPPL.Sampler{Turing.Inference.HMCDA{ADTypes.AutoMooncake{Nothing}, (), AdvancedHMC.UnitEuclideanMetric}}, Mooncake.NoFData}, Mooncake.CoDual{Distributions.Normal{Float64}, Mooncake.NoFData}, Mooncake.CoDual{AbstractPPL.VarName{:m, typeof(identity)}, Mooncake.NoFData}, Mooncake.CoDual{DynamicPPL.TypedVarInfo{@NamedTuple{m::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, Mooncake.FData{@NamedTuple{metadata::@NamedTuple{m::Mooncake.FData{@NamedTuple{idcs::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}, vns::Vector{Any}, ranges::Vector{Mooncake.NoTangent}, vals::Vector{Float64}, dists::Vector{Mooncake.Tangent{@NamedTuple{μ::Float64, σ::Float64}}}, gids::Vector{Mooncake.Tangent{@NamedTuple{dict::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, orders::Vector{Mooncake.NoTangent}, flags::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.MutableTangent{@NamedTuple{chunks::Vector{Mooncake.NoTangent}, len::Mooncake.NoTangent, dims::Mooncake.PossiblyUninitTangent{Mooncake.NoTangent}}}}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, logp::Mooncake.MutableTangent{@NamedTuple{x::Mooncake.PossiblyUninitTangent{Float64}}}, num_produce::Mooncake.MutableTangent{@NamedTuple{x::Mooncake.PossiblyUninitTangent{Mooncake.NoTangent}}}}}}}, Mooncake.CoDual{Tuple{Float64, Float64, DynamicPPL.TypedVarInfo{@NamedTuple{m::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}}, Tuple{Mooncake.NoFData, Mooncake.NoFData, Mooncake.FData{@NamedTuple{metadata::@NamedTuple{m::Mooncake.FData{@NamedTuple{idcs::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}, vns::Vector{Any}, ranges::Vector{Mooncake.NoTangent}, vals::Vector{Float64}, dists::Vector{Mooncake.Tangent{@NamedTuple{μ::Float64, σ::Float64}}}, gids::Vector{Mooncake.Tangent{@NamedTuple{dict::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, orders::Vector{Mooncake.NoTangent}, flags::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.MutableTangent{@NamedTuple{chunks::Vector{Mooncake.NoTangent}, len::Mooncake.NoTangent, dims::Mooncake.PossiblyUninitTangent{Mooncake.NoTangent}}}}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, logp::Mooncake.MutableTangent{@NamedTuple{x::Mooncake.PossiblyUninitTangent{Float64}}}, num_produce::Mooncake.MutableTangent{@NamedTuple{x::Mooncake.PossiblyUninitTangent{Mooncake.NoTangent}}}}}}}}})(::Mooncake.CoDual{typeof(DynamicPPL.tilde_assume), Mooncake.NoFData}, ::Mooncake.CoDual{Random.TaskLocalRNG, Mooncake.NoFData}, ::Mooncake.CoDual{Turing.Inference.GibbsContext{OrderedCollections.OrderedDict{AbstractPPL.VarName{:s, typeof(identity)}, Float64}, DynamicPPL.DefaultContext}, Mooncake.FData{@NamedTuple{values::Mooncake.MutableTangent{@NamedTuple{slots::Vector{Mooncake.NoTangent}, keys::Vector{Mooncake.NoTangent}, vals::Vector{Float64}, ndel::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent, dirty::Mooncake.NoTangent}}, context::Mooncake.NoFData}}}, ::Mooncake.CoDual{DynamicPPL.Sampler{Turing.Inference.HMCDA{ADTypes.AutoMooncake{Nothing}, (), AdvancedHMC.UnitEuclideanMetric}}, Mooncake.NoFData}, ::Mooncake.CoDual{Distributions.Normal{Float64}, Mooncake.NoFData}, ::Mooncake.CoDual{AbstractPPL.VarName{:m, typeof(identity)}, Mooncake.NoFData}, ::Mooncake.CoDual{DynamicPPL.TypedVarInfo{@NamedTuple{m::DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:m, typeof(identity)}, Int64}, Vector{Distributions.Normal{Float64}}, Vector{AbstractPPL.VarName}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}, Float64}, Mooncake.FData{@NamedTuple{metadata::@NamedTuple{m::Mooncake.FData{@NamedTuple{idcs::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}, vns::Vector{Any}, ranges::Vector{Mooncake.NoTangent}, vals::Vector{Float64}, dists::Vector{Mooncake.Tangent{@NamedTuple{μ::Float64, σ::Float64}}}, gids::Vector{Mooncake.Tangent{@NamedTuple{dict::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.NoTangent}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, orders::Vector{Mooncake.NoTangent}, flags::Mooncake.MutableTangent{@NamedTuple{slots::Memory{Mooncake.NoTangent}, keys::Memory{Mooncake.NoTangent}, vals::Memory{Mooncake.MutableTangent{@NamedTuple{chunks::Vector{Mooncake.NoTangent}, len::Mooncake.NoTangent, dims::Mooncake.PossiblyUninitTangent{Mooncake.NoTangent}}}}, ndel::Mooncake.NoTangent, count::Mooncake.NoTangent, age::Mooncake.NoTangent, idxfloor::Mooncake.NoTangent, maxprobe::Mooncake.NoTangent}}}}}, logp::Mooncake.MutableTangent{@NamedTuple{x::Mooncake.PossiblyUninitTangent{Float64}}}, num_produce::Mooncake.MutableTangent{@NamedTuple{x::Mooncake.PossiblyUninitTangent{Mooncake.NoTangent}}}}}})
      @ MistyClosures ~/.julia/packages/MistyClosures/4rFSA/src/MistyClosures.jl:22
   [16] DerivedRule
      @ ~/.julia/packages/Mooncake/LKJK9/src/interpreter/s2s_reverse_mode_ad.jl:745 [inlined]
   [17] LazyDerivedRule
      @ ~/.julia/packages/Mooncake/LKJK9/src/interpreter/s2s_reverse_mode_ad.jl:1490 [inlined]
   [18] gdemo_d
      @ ~/work/Turing.jl/Turing.jl/test/test_utils/models.jl:23 [inlined]

[ETC., THERE'S LOTS MORE]

The test passes for me locally, also on v1.11.1. To save time, I skipped running the preceding tests though, so if this is random seed dependent then that would explain why it worked for me locally.

willtebbutt commented 2 hours ago

There is something going on with the underlying Memorys here. If you look at the [rule in which the error is thrown](), you'll see that we've somehow wound up in a situation whereby the primal and fdata Memorys / MemoryRefs are out of sync with one another. I believe that it must be the case that either

  1. the two underlying Memorys are of different lengths, or
  2. the two MemoryRefs point to different locations in their respective Memorys.

Figuring out how this happened should be possible using debug mode, but I might need to update it with some checks for Memory and MemoryRefs.

mhauru commented 1 hour ago

Now managing to reproduce locally by checking out the latest commit (6f5b273dfa1d21548758d986e5710c3e72524195) from https://github.com/TuringLang/Turing.jl/pull/2328 and running

module MWE

using Distributions: Normal, sample
import Random
using StableRNGs: StableRNG
import Mooncake
using Turing

@model function gdemo_d()
    s ~ InverseGamma(2, 3)
    m ~ Normal(0, sqrt(s))
    1.5 ~ Normal(m, sqrt(s))
    2.0 ~ Normal(m, sqrt(s))
    return s, m
end

gdemo_default = gdemo_d()

adbackend = Turing.AutoMooncake(; config=nothing)
rng = StableRNG(123)
Random.seed!(12345) # particle samplers do not support user-provided `rng` yet
alg3 = Gibbs(; s=PG(20), m=HMCDA(500, 0.8, 0.25; init_ϵ=0.05, adtype=adbackend))
res3 = sample(rng, gdemo_default, alg3, 3000, discard_initial=1000)

end

with Julia v1.11.1

willtebbutt commented 1 hour ago

This will make debugging vastly easier. Thank you!