Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reverse mode is type-unstable in v0.12 #1401

Closed
gdalle opened this issue Apr 22, 2024 · 3 comments
Closed

Reverse mode is type-unstable in v0.12 #1401

gdalle opened this issue Apr 22, 2024 · 3 comments

Comments

@gdalle
Copy link
Contributor

gdalle commented Apr 22, 2024

I noticed the following change in gdalle/DifferentiationInterface.jl#196:

Enzyme v0.11: type-stable

(@v1.10) pkg> activate --temp
  Activating new project at `/tmp/jl_xGmbHM`

(jl_xGmbHM) pkg> add JET, Enzyme@0.11
   Resolving package versions...
    Updating `/tmp/jl_xGmbHM/Project.toml`
⌃ [7da242da] + Enzyme v0.11.20
  [c3a54625] + JET v0.8.29
    Updating `/tmp/jl_xGmbHM/Manifest.toml`
    ...

julia> using JET, Enzyme

julia> @test_opt Enzyme.gradient(Enzyme.Reverse, sum, [1.0])
Test Passed

Enzyme v0.12: type-unstable

(@v1.10) pkg> activate --temp
  Activating new project at `/tmp/jl_JGHF4T`

(jl_JGHF4T) pkg> add JET, Enzyme@0.12
   Resolving package versions...
    Updating `/tmp/jl_JGHF4T/Project.toml`
  [7da242da] + Enzyme v0.12.0
  [c3a54625] + JET v0.8.29
    Updating `/tmp/jl_JGHF4T/Manifest.toml`
    ...

julia> using JET, Enzyme

julia> @test_opt Enzyme.gradient(Enzyme.Reverse, sum, [1.0])
JET-test failed at REPL[5]:1
  Expression: #= REPL[5]:1 =# JET.@test_opt Enzyme.gradient(Enzyme.Reverse, sum, [1.0])
  ═════ 49 possible errors found ═════
  ┌ gradient(::ReverseMode{false, FFIABI, false}, f::typeof(sum), x::Vector{Float64}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:932
  │┌ active_reg_inner(::Type{Vector{Float64}}, seen::Tuple{}, world::Nothing, ::Val{true}) @ Enzyme.Compiler /home/gdalle/.julia/packages/Enzyme/MIIMf/src/compiler.jl:367
  ││┌ active_reg_inner(::Type{Vector{Float64}}, seen::Tuple{}, world::Nothing, ::Val{true}, ::Val{false}) @ Enzyme.Compiler /home/gdalle/.julia/packages/Enzyme/MIIMf/src/compiler.jl:367
  │││ captured variable `seen` detected
  ││└────────────────────
  ││┌ active_reg_inner(::Type{Vector{Float64}}, seen::Tuple{}, world::Nothing, ::Val{true}, ::Val{false}) @ Enzyme.Compiler /home/gdalle/.julia/packages/Enzyme/MIIMf/src/compiler.jl:367
  │││ captured variable `recur` detected
  ││└────────────────────
  ┌ gradient(::ReverseMode{false, FFIABI, false}, f::typeof(sum), x::Vector{Float64}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:937
  │┌ make_zero(prev::Vector{Float64}) @ EnzymeCore /home/gdalle/.julia/packages/EnzymeCore/Z0CgU/src/EnzymeCore.jl:237
  ││┌ make_zero(prev::Vector{Float64}, ::Val{false}) @ EnzymeCore /home/gdalle/.julia/packages/EnzymeCore/Z0CgU/src/EnzymeCore.jl:237
  │││┌ make_zero(::Type{Vector{Float64}}, seen::IdDict{Any, Any}, prev::Vector{Float64}, ::Val{false}) @ Enzyme.Compiler /home/gdalle/.julia/packages/Enzyme/MIIMf/src/compiler.jl:1192
  ││││ runtime dispatch detected: convert(::Vector{Float64}, %15::Any)::Vector{Float64}
  │││└────────────────────
  ┌ gradient(::ReverseMode{false, FFIABI, false}, f::typeof(sum), x::Vector{Float64}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:938
  │┌ autodiff(mode::ReverseMode{false, FFIABI, false}, f::typeof(sum), ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:287
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:166
  │││┌ same_or_one(args::Vararg{Any}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:97
  ││││ runtime dispatch detected: (%1::Any Enzyme.:(==) -1)::Any
  │││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:273
  │││┌ default_adjoint(::Type{T}) where T<:AbstractFloat @ Enzyme.Compiler /home/gdalle/.julia/packages/Enzyme/MIIMf/src/compiler.jl:5257
  ││││ runtime dispatch detected: Enzyme.Compiler.one(%1::Type{T} where T<:AbstractFloat)::AbstractFloat
  │││└────────────────────
  │││┌ default_adjoint(::Type) @ Enzyme.Compiler /home/gdalle/.julia/packages/Enzyme/MIIMf/src/compiler.jl:5256
  ││││┌ string(::String, ::Type, ::String) @ Base ./strings/io.jl:189
  │││││┌ print_to_string(::String, ::Type, ::String) @ Base ./strings/io.jl:148
  ││││││┌ print(io::IOBuffer, x::Type) @ Base ./strings/io.jl:35
  │││││││┌ show(io::IOBuffer, x::Type) @ Base ./show.jl:953
  ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:956
  │││││││││┌ show_type_name(io::IOBuffer, tn::Core.TypeName) @ Base ./show.jl:1043
  ││││││││││┌ show(io::IOBuffer, m::Module) @ Base ./show.jl:1237
  │││││││││││┌ is_root_module(m::Module) @ Base ./lock.jl:269
  ││││││││││││┌ sprint(f::typeof(show), args::String; context::Any, sizehint::Integer) @ Base ./strings/io.jl:108
  │││││││││││││┌ kwcall(::NamedTuple{(:sizehint,), <:Tuple{Integer}}, ::Type{IOBuffer}) @ Base ./iobuffer.jl:106
  ││││││││││││││┌ pairs(nt::NamedTuple) @ Base.Iterators ./iterators.jl:279
  │││││││││││││││┌ (Base.Pairs{Symbol})(data::NamedTuple, itr::Tuple{Vararg{Symbol}}) @ Base ./essentials.jl:343
  ││││││││││││││││┌ eltype(::Type{A} where A<:NamedTuple) @ Base ./namedtuple.jl:237
  │││││││││││││││││┌ nteltype(::Type{NamedTuple{names, T}} where names) where T<:Tuple @ Base ./namedtuple.jl:239
  ││││││││││││││││││┌ eltype(t::Type{<:Tuple{Vararg{E}}}) where E @ Base ./tuple.jl:208
  │││││││││││││││││││┌ _compute_eltype(t::Type{<:Tuple{Vararg{E}}} where E) @ Base ./tuple.jl:231
  ││││││││││││││││││││┌ afoldl(op::Base.var"#54#55", a::Any, bs::Vararg{Any}) @ Base ./operators.jl:544
  │││││││││││││││││││││┌ (::Base.var"#54#55")(a::Any, b::Any) @ Base ./tuple.jl:235
  ││││││││││││││││││││││┌ promote_typejoin(a::Any, b::Any) @ Base ./promotion.jl:172
  │││││││││││││││││││││││┌ typejoin(a::Any, b::Any) @ Base ./promotion.jl:127
  ││││││││││││││││││││││││ runtime dispatch detected: Base.UnionAll(%403::Any, %405::Any)::Any
  │││││││││││││││││││││││└────────────────────
  ││││││││││││││││││││┌ afoldl(op::Base.var"#54#55", a::Any, bs::Vararg{Any}) @ Base ./operators.jl:545
  │││││││││││││││││││││┌ (::Base.var"#54#55")(a::Type, b::Any) @ Base ./tuple.jl:235
  ││││││││││││││││││││││┌ promote_typejoin(a::Type, b::Any) @ Base ./promotion.jl:172
  │││││││││││││││││││││││┌ typejoin(a::Type, b::Any) @ Base ./promotion.jl:127
  ││││││││││││││││││││││││ runtime dispatch detected: Base.UnionAll(%398::Any, %400::Any)::Any
  │││││││││││││││││││││││└────────────────────
  ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:958
  │││││││││┌ show_typealias(io::IOBuffer, x::Type) @ Base ./show.jl:793
  ││││││││││┌ make_typealias(x::Type) @ Base ./show.jl:603
  │││││││││││┌ modulesof!(s::Set{Module}, x::Type) @ Base ./show.jl:578
  ││││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %20::Any)::Any
  │││││││││││└────────────────────
  │││││││││││┌ modulesof!(s::Set{Module}, x::Type) @ Base ./show.jl:579
  ││││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %35::Any)::Any
  │││││││││││└────────────────────
  │││││││││││┌ modulesof!(s::Set{Module}, x::TypeVar) @ Base ./show.jl:572
  ││││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %1::Any)::Set{Module}
  │││││││││││└────────────────────
  │││││││││┌ show_typealias(io::IOBuffer, x::Type) @ Base ./show.jl:796
  ││││││││││┌ show_typealias(io::IOBuffer, name::GlobalRef, x::Type, env::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:743
  │││││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:707
  ││││││││││││┌ show(io::IOContext{IOBuffer}, tv::TypeVar) @ Base ./show.jl:2737
  │││││││││││││┌ (::Base.var"#show_bound#566")(io::IOContext{IOBuffer}, b::Any) @ Base ./show.jl:2729
  ││││││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, b::Any)::Any
  │││││││││││││└────────────────────
  │││││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:702
  ││││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %243::Any)::Any
  │││││││││││└────────────────────
  │││││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:705
  ││││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %294::Any)::Any
  │││││││││││└────────────────────
  │││││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:710
  ││││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %192::Any)::Any
  │││││││││││└────────────────────
  ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:961
  │││││││││┌ show_datatype(io::IOBuffer, x::DataType) @ Base ./show.jl:1077
  ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1080
  │││││││││││┌ maybe_kws_nt(x::DataType) @ Base ./show.jl:1068
  ││││││││││││ runtime dispatch detected: eltype(%79::DataType)::Any
  │││││││││││└────────────────────
  ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1130
  │││││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:707
  ││││││││││││┌ show(io::IOBuffer, tv::TypeVar) @ Base ./show.jl:2737
  │││││││││││││┌ (::Base.var"#show_bound#566")(io::IOBuffer, b::Any) @ Base ./show.jl:2729
  ││││││││││││││ runtime dispatch detected: show(io::IOBuffer, b::Any)::Any
  │││││││││││││└────────────────────
  │││││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:702
  ││││││││││││ runtime dispatch detected: show(io::IOBuffer, %241::Any)::Any
  │││││││││││└────────────────────
  │││││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:705
  ││││││││││││ runtime dispatch detected: show(io::IOBuffer, %291::Any)::Any
  │││││││││││└────────────────────
  │││││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:710
  ││││││││││││ runtime dispatch detected: show(io::IOBuffer, %191::Any)::Any
  │││││││││││└────────────────────
  ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1096
  │││││││││││ runtime dispatch detected: show(io::IOBuffer, %94::Any)::Any
  ││││││││││└────────────────────
  ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1102
  │││││││││││ runtime dispatch detected: show(io::IOBuffer, %141::Any)::Any
  ││││││││││└────────────────────
  ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1106
  │││││││││││ runtime dispatch detected: show(io::IOBuffer, %162::Any)::Any
  ││││││││││└────────────────────
  ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1116
  │││││││││││ runtime dispatch detected: Base.show_at_namedtuple(io::IOBuffer, %219::Tuple, %220::DataType)::Any
  ││││││││││└────────────────────
  ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:964
  │││││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:884
  ││││││││││┌ make_typealiases(x::Union) @ Base ./show.jl:805
  │││││││││││┌ modulesof!(s::Set{Module}, x::Union) @ Base ./show.jl:578
  ││││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %3::Any)::Any
  │││││││││││└────────────────────
  │││││││││││┌ modulesof!(s::Set{Module}, x::Union) @ Base ./show.jl:579
  ││││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %17::Any)::Any
  │││││││││││└────────────────────
  │││││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:897
  ││││││││││ runtime dispatch detected: show(io::IOBuffer, %50::Any)::Any
  │││││││││└────────────────────
  │││││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:903
  ││││││││││ runtime dispatch detected: Base.show_typealias(io::IOBuffer, %133::Any, x::Union, %131::Core.SimpleVector, %132::Vector{TypeVar})::Any
  │││││││││└────────────────────
  │││││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:911
  ││││││││││ runtime dispatch detected: Base.show_typealias(io::IOBuffer, %179::Any, x::Union, %177::Core.SimpleVector, %178::Vector{TypeVar})::Any
  │││││││││└────────────────────
  ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:968
  │││││││││┌ show_delim_array(io::IOBuffer, itr::Vector{Any}, op::Char, delim::Char, cl::Char, delim_one::Bool) @ Base ./show.jl:1335
  ││││││││││┌ show_delim_array(io::IOBuffer, itr::Vector{Any}, op::Char, delim::Char, cl::Char, delim_one::Bool, i1::Int64, l::Int64) @ Base ./show.jl:1346
  │││││││││││ runtime dispatch detected: show(%4::IOContext{IOBuffer}, %41::Any)::Any
  ││││││││││└────────────────────
  ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:995
  │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1129
  ││││││││││┌ show_type_name(io::IOContext{IOBuffer}, tn::Core.TypeName) @ Base ./show.jl:1042
  │││││││││││ runtime dispatch detected: Base.isvisible(%32::Symbol, %89::Module, %83::Any)::Bool
  ││││││││││└────────────────────
  │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1096
  ││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %94::Any)::Any
  │││││││││└────────────────────
  │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1102
  ││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %144::Any)::Any
  │││││││││└────────────────────
  │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1106
  ││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %166::Any)::Any
  │││││││││└────────────────────
  │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1116
  ││││││││││ runtime dispatch detected: Base.show_at_namedtuple(io::IOContext{IOBuffer}, %225::Tuple, %226::DataType)::Any
  │││││││││└────────────────────
  │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1124
  ││││││││││ runtime dispatch detected: Base.show_at_namedtuple(io::IOContext{IOBuffer}, %268::Tuple, %273::DataType)::Any
  │││││││││└────────────────────
  ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:997
  │││││││││ runtime dispatch detected: show(%74::IOContext{IOBuffer}, %75::Any)::Any
  ││││││││└────────────────────
  │││││││┌ show(io::IOBuffer, x::Type) @ Base ./show.jl:953
  ││││││││ runtime dispatch detected: Base._show_type(io::IOBuffer, x::Type)::Nothing
  │││││││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:165
  │││ captured variable `args` detected
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:165
  │││ runtime dispatch detected: Enzyme.map(Core.Typeof, args::Tuple{Duplicated{Vector{Float64}}})::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:167
  │││ runtime dispatch detected: (%9::Any Enzyme.:(==) 0)::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:173
  │││ runtime dispatch detected: Enzyme.map(#44, args::Tuple{Duplicated{Vector{Float64}}})::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:174
  │││ runtime dispatch detected: codegen_world_age(::typeof(sum), %19::Type)::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:177
  │││ runtime dispatch detected: return_type(sum, %19::Type)::Type
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:270
  │││ runtime dispatch detected: thunk(%40::Val, ::Const{typeof(sum)}, ::Active, %5::Type, [quote]::Val{Enzyme.API.DEM_ReverseModeCombined}, %42::Val, [quote]::Val{(false, false)}, [quote]::Val{false}, [quote]::Val{false}, ::FFIABI)::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:273
  │││ runtime dispatch detected: Enzyme.Compiler.default_adjoint(%21::Type)::AbstractFloat
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:184
  │││ runtime dispatch detected: thunk(%58::Val, ::Const{typeof(sum)}, %59::Type{Duplicated{T}} where T, %5::Type, [quote]::Val{Enzyme.API.DEM_ReverseModeGradient}, %61::Val, [quote]::Val{(false, false)}, [quote]::Val{false}, [quote]::Val{true}, ::FFIABI)::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:184
  │││ runtime dispatch detected: Base.indexed_iterate(%62::Any, 1)::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:184
  │││ runtime dispatch detected: Base.indexed_iterate(%62::Any, 2, %65::Any)::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/gdalle/.julia/packages/Enzyme/MIIMf/src/Enzyme.jl:186
  │││ runtime dispatch detected: (%71::Any)[1]::Any
  ││└────────────────────
  
ERROR: There was an error during testing
@wsmoses
Copy link
Member

wsmoses commented Apr 22, 2024

@gdalle let's see if this resolves it: #1403

@gdalle
Copy link
Contributor Author

gdalle commented Apr 23, 2024

Still failing but with one less error (48 instead of 49):

(jl_SISGSX) pkg> st
Status `/tmp/jl_SISGSX/Project.toml`
  [7da242da] Enzyme v0.12.0 `https://github.com/EnzymeAD/Enzyme.jl#main`

julia> using JET, Enzyme

julia> @test_opt Enzyme.gradient(Enzyme.Reverse, sum, [1.0])
JET-test failed at REPL[13]:1
  Expression: #= REPL[13]:1 =# JET.@test_opt Enzyme.gradient(Enzyme.Reverse, sum, [1.0])
  ═════ 48 possible errors found ═════
  ┌ gradient(::ReverseMode{false, FFIABI, false}, f::typeof(sum), x::Vector{Float64}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:932
  │┌ active_reg_inner(::Type{Vector{Float64}}, seen::Tuple{}, world::Nothing, ::Val{true}) @ Enzyme.Compiler /home/guillaume/.julia/packages/Enzyme/y2lVn/src/compiler.jl:367
  ││┌ active_reg_inner(::Type{Vector{Float64}}, seen::Tuple{}, world::Nothing, ::Val{true}, ::Val{false}) @ Enzyme.Compiler /home/guillaume/.julia/packages/Enzyme/y2lVn/src/compiler.jl:367
  │││ captured variable `seen` detected
  ││└────────────────────
  ││┌ active_reg_inner(::Type{Vector{Float64}}, seen::Tuple{}, world::Nothing, ::Val{true}, ::Val{false}) @ Enzyme.Compiler /home/guillaume/.julia/packages/Enzyme/y2lVn/src/compiler.jl:367
  │││ captured variable `recur` detected
  ││└────────────────────
  ┌ gradient(::ReverseMode{false, FFIABI, false}, f::typeof(sum), x::Vector{Float64}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:937
  │┌ make_zero(prev::Vector{Float64}) @ EnzymeCore /home/guillaume/.julia/packages/EnzymeCore/Z0CgU/src/EnzymeCore.jl:237
  ││┌ make_zero(prev::Vector{Float64}, ::Val{false}) @ EnzymeCore /home/guillaume/.julia/packages/EnzymeCore/Z0CgU/src/EnzymeCore.jl:237
  │││┌ make_zero(::Type{Vector{Float64}}, seen::IdDict{Any, Any}, prev::Vector{Float64}, ::Val{false}) @ Enzyme.Compiler /home/guillaume/.julia/packages/Enzyme/y2lVn/src/compiler.jl:1190
  ││││ runtime dispatch detected: convert(::Vector{Float64}, %15::Any)::Vector{Float64}
  │││└────────────────────
  ┌ gradient(::ReverseMode{false, FFIABI, false}, f::typeof(sum), x::Vector{Float64}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:938
  │┌ autodiff(mode::ReverseMode{false, FFIABI, false}, f::typeof(sum), ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:287
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:166
  │││┌ same_or_one(args::Vararg{Any}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:97
  ││││ runtime dispatch detected: (%1::Any Enzyme.:(==) -1)::Any
  │││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:273
  │││┌ default_adjoint(T::Type) @ Enzyme.Compiler /home/guillaume/.julia/packages/Enzyme/y2lVn/src/compiler.jl:5260
  ││││┌ string(::String, ::Type, ::String) @ Base ./strings/io.jl:189
  │││││┌ print_to_string(::String, ::Type, ::String) @ Base ./strings/io.jl:148
  ││││││┌ print(io::IOBuffer, x::Type) @ Base ./strings/io.jl:35
  │││││││┌ show(io::IOBuffer, x::Type) @ Base ./show.jl:953
  ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:956
  │││││││││┌ show_type_name(io::IOBuffer, tn::Core.TypeName) @ Base ./show.jl:1043
  ││││││││││┌ show(io::IOBuffer, m::Module) @ Base ./show.jl:1237
  │││││││││││┌ is_root_module(m::Module) @ Base ./lock.jl:269
  ││││││││││││┌ sprint(f::typeof(show), args::String; context::Any, sizehint::Integer) @ Base ./strings/io.jl:108
  │││││││││││││┌ kwcall(::NamedTuple{(:sizehint,), <:Tuple{Integer}}, ::Type{IOBuffer}) @ Base ./iobuffer.jl:106
  ││││││││││││││┌ pairs(nt::NamedTuple) @ Base.Iterators ./iterators.jl:279
  │││││││││││││││┌ (Base.Pairs{Symbol})(data::NamedTuple, itr::Tuple{Vararg{Symbol}}) @ Base ./essentials.jl:343
  ││││││││││││││││┌ eltype(::Type{A} where A<:NamedTuple) @ Base ./namedtuple.jl:237
  │││││││││││││││││┌ nteltype(::Type{NamedTuple{names, T}} where names) where T<:Tuple @ Base ./namedtuple.jl:239
  ││││││││││││││││││┌ eltype(t::Type{<:Tuple{Vararg{E}}}) where E @ Base ./tuple.jl:208
  │││││││││││││││││││┌ _compute_eltype(t::Type{<:Tuple{Vararg{E}}} where E) @ Base ./tuple.jl:231
  ││││││││││││││││││││┌ afoldl(op::Base.var"#54#55", a::Any, bs::Vararg{Any}) @ Base ./operators.jl:544
  │││││││││││││││││││││┌ (::Base.var"#54#55")(a::Any, b::Any) @ Base ./tuple.jl:235
  ││││││││││││││││││││││┌ promote_typejoin(a::Any, b::Any) @ Base ./promotion.jl:172
  │││││││││││││││││││││││┌ typejoin(a::Any, b::Any) @ Base ./promotion.jl:127
  ││││││││││││││││││││││││ runtime dispatch detected: Base.UnionAll(%403::Any, %405::Any)::Any
  │││││││││││││││││││││││└────────────────────
  ││││││││││││││││││││┌ afoldl(op::Base.var"#54#55", a::Any, bs::Vararg{Any}) @ Base ./operators.jl:545
  │││││││││││││││││││││┌ (::Base.var"#54#55")(a::Type, b::Any) @ Base ./tuple.jl:235
  ││││││││││││││││││││││┌ promote_typejoin(a::Type, b::Any) @ Base ./promotion.jl:172
  │││││││││││││││││││││││┌ typejoin(a::Type, b::Any) @ Base ./promotion.jl:127
  ││││││││││││││││││││││││ runtime dispatch detected: Base.UnionAll(%398::Any, %400::Any)::Any
  │││││││││││││││││││││││└────────────────────
  ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:958
  │││││││││┌ show_typealias(io::IOBuffer, x::Type) @ Base ./show.jl:793
  ││││││││││┌ make_typealias(x::Type) @ Base ./show.jl:603
  │││││││││││┌ modulesof!(s::Set{Module}, x::Type) @ Base ./show.jl:578
  ││││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %20::Any)::Any
  │││││││││││└────────────────────
  │││││││││││┌ modulesof!(s::Set{Module}, x::Type) @ Base ./show.jl:579
  ││││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %35::Any)::Any
  │││││││││││└────────────────────
  │││││││││││┌ modulesof!(s::Set{Module}, x::TypeVar) @ Base ./show.jl:572
  ││││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %1::Any)::Set{Module}
  │││││││││││└────────────────────
  │││││││││┌ show_typealias(io::IOBuffer, x::Type) @ Base ./show.jl:796
  ││││││││││┌ show_typealias(io::IOBuffer, name::GlobalRef, x::Type, env::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:743
  │││││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:707
  ││││││││││││┌ show(io::IOContext{IOBuffer}, tv::TypeVar) @ Base ./show.jl:2737
  │││││││││││││┌ (::Base.var"#show_bound#566")(io::IOContext{IOBuffer}, b::Any) @ Base ./show.jl:2729
  ││││││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, b::Any)::Any
  │││││││││││││└────────────────────
  │││││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:702
  ││││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %243::Any)::Any
  │││││││││││└────────────────────
  │││││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:705
  ││││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %294::Any)::Any
  │││││││││││└────────────────────
  │││││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:710
  ││││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %192::Any)::Any
  │││││││││││└────────────────────
  ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:961
  │││││││││┌ show_datatype(io::IOBuffer, x::DataType) @ Base ./show.jl:1077
  ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1080
  │││││││││││┌ maybe_kws_nt(x::DataType) @ Base ./show.jl:1068
  ││││││││││││ runtime dispatch detected: eltype(%79::DataType)::Any
  │││││││││││└────────────────────
  ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1130
  │││││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:707
  ││││││││││││┌ show(io::IOBuffer, tv::TypeVar) @ Base ./show.jl:2737
  │││││││││││││┌ (::Base.var"#show_bound#566")(io::IOBuffer, b::Any) @ Base ./show.jl:2729
  ││││││││││││││ runtime dispatch detected: show(io::IOBuffer, b::Any)::Any
  │││││││││││││└────────────────────
  │││││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:702
  ││││││││││││ runtime dispatch detected: show(io::IOBuffer, %241::Any)::Any
  │││││││││││└────────────────────
  │││││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:705
  ││││││││││││ runtime dispatch detected: show(io::IOBuffer, %291::Any)::Any
  │││││││││││└────────────────────
  │││││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:710
  ││││││││││││ runtime dispatch detected: show(io::IOBuffer, %191::Any)::Any
  │││││││││││└────────────────────
  ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1096
  │││││││││││ runtime dispatch detected: show(io::IOBuffer, %94::Any)::Any
  ││││││││││└────────────────────
  ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1102
  │││││││││││ runtime dispatch detected: show(io::IOBuffer, %141::Any)::Any
  ││││││││││└────────────────────
  ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1106
  │││││││││││ runtime dispatch detected: show(io::IOBuffer, %162::Any)::Any
  ││││││││││└────────────────────
  ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1116
  │││││││││││ runtime dispatch detected: Base.show_at_namedtuple(io::IOBuffer, %219::Tuple, %220::DataType)::Any
  ││││││││││└────────────────────
  ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:964
  │││││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:884
  ││││││││││┌ make_typealiases(x::Union) @ Base ./show.jl:805
  │││││││││││┌ modulesof!(s::Set{Module}, x::Union) @ Base ./show.jl:578
  ││││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %3::Any)::Any
  │││││││││││└────────────────────
  │││││││││││┌ modulesof!(s::Set{Module}, x::Union) @ Base ./show.jl:579
  ││││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %17::Any)::Any
  │││││││││││└────────────────────
  │││││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:897
  ││││││││││ runtime dispatch detected: show(io::IOBuffer, %50::Any)::Any
  │││││││││└────────────────────
  │││││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:903
  ││││││││││ runtime dispatch detected: Base.show_typealias(io::IOBuffer, %133::Any, x::Union, %131::Core.SimpleVector, %132::Vector{TypeVar})::Any
  │││││││││└────────────────────
  │││││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:911
  ││││││││││ runtime dispatch detected: Base.show_typealias(io::IOBuffer, %179::Any, x::Union, %177::Core.SimpleVector, %178::Vector{TypeVar})::Any
  │││││││││└────────────────────
  ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:968
  │││││││││┌ show_delim_array(io::IOBuffer, itr::Vector{Any}, op::Char, delim::Char, cl::Char, delim_one::Bool) @ Base ./show.jl:1335
  ││││││││││┌ show_delim_array(io::IOBuffer, itr::Vector{Any}, op::Char, delim::Char, cl::Char, delim_one::Bool, i1::Int64, l::Int64) @ Base ./show.jl:1346
  │││││││││││ runtime dispatch detected: show(%4::IOContext{IOBuffer}, %41::Any)::Any
  ││││││││││└────────────────────
  ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:995
  │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1129
  ││││││││││┌ show_type_name(io::IOContext{IOBuffer}, tn::Core.TypeName) @ Base ./show.jl:1042
  │││││││││││ runtime dispatch detected: Base.isvisible(%32::Symbol, %89::Module, %83::Any)::Bool
  ││││││││││└────────────────────
  │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1096
  ││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %94::Any)::Any
  │││││││││└────────────────────
  │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1102
  ││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %144::Any)::Any
  │││││││││└────────────────────
  │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1106
  ││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %166::Any)::Any
  │││││││││└────────────────────
  │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1116
  ││││││││││ runtime dispatch detected: Base.show_at_namedtuple(io::IOContext{IOBuffer}, %225::Tuple, %226::DataType)::Any
  │││││││││└────────────────────
  │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1124
  ││││││││││ runtime dispatch detected: Base.show_at_namedtuple(io::IOContext{IOBuffer}, %268::Tuple, %273::DataType)::Any
  │││││││││└────────────────────
  ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:997
  │││││││││ runtime dispatch detected: show(%74::IOContext{IOBuffer}, %75::Any)::Any
  ││││││││└────────────────────
  │││││││┌ show(io::IOBuffer, x::Type) @ Base ./show.jl:953
  ││││││││ runtime dispatch detected: Base._show_type(io::IOBuffer, x::Type)::Nothing
  │││││││└────────────────────
  │││┌ default_adjoint(T::Type) @ Enzyme.Compiler /home/guillaume/.julia/packages/Enzyme/y2lVn/src/compiler.jl:5256
  ││││ runtime dispatch detected: Enzyme.Compiler.one(T::Type)::Any
  │││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:165
  │││ captured variable `args` detected
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:165
  │││ runtime dispatch detected: Enzyme.map(Core.Typeof, args::Tuple{Duplicated{Vector{Float64}}})::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:167
  │││ runtime dispatch detected: (%9::Any Enzyme.:(==) 0)::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:173
  │││ runtime dispatch detected: Enzyme.map(#58, args::Tuple{Duplicated{Vector{Float64}}})::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:174
  │││ runtime dispatch detected: codegen_world_age(::typeof(sum), %19::Type)::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:177
  │││ runtime dispatch detected: return_type(sum, %19::Type)::Type
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:270
  │││ runtime dispatch detected: thunk(%40::Val, ::Const{typeof(sum)}, ::Active, %5::Type, [quote]::Val{Enzyme.API.DEM_ReverseModeCombined}, %42::Val, [quote]::Val{(false, false)}, [quote]::Val{false}, [quote]::Val{false}, ::FFIABI)::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:184
  │││ runtime dispatch detected: thunk(%68::Val, ::Const{typeof(sum)}, %69::Type{Duplicated{T}} where T, %5::Type, [quote]::Val{Enzyme.API.DEM_ReverseModeGradient}, %71::Val, [quote]::Val{(false, false)}, [quote]::Val{false}, [quote]::Val{true}, ::FFIABI)::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:184
  │││ runtime dispatch detected: Base.indexed_iterate(%72::Any, 1)::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:184
  │││ runtime dispatch detected: Base.indexed_iterate(%72::Any, 2, %75::Any)::Any
  ││└────────────────────
  ││┌ autodiff(::ReverseMode{false, FFIABI, false}, f::Const{typeof(sum)}, ::Type{Active}, args::Duplicated{Vector{Float64}}) @ Enzyme /home/guillaume/.julia/packages/Enzyme/y2lVn/src/Enzyme.jl:186
  │││ runtime dispatch detected: (%81::Any)[1]::Any
  ││└────────────────────
  
ERROR: There was an error during testing

@wsmoses
Copy link
Member

wsmoses commented May 7, 2024

Should be fixed by #1415 please reopen if it persists

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants