Closed KristofferC closed 4 years ago
Doing things manually shows that the overdub is not called?
julia> args = (*, (3.14, 2.0))
(*, (3.14, 2.0))
julia> f = iterate
iterate (generic function with 212 methods)
julia> Core._apply_iterate((args...) -> Cassette.overdub(ctx, f, args...), args...)
6.28
julia> Cassette.overdub(ctx, args[1], args[2]...)
(Core.Intrinsics.mul_float, Float64, Float64)
6.28
Ah, the args[1]
function also need to be overdubbed.
I am looking at https://github.com/triscale-innov/GFlops.jl/issues/6 again (which still fails on the newest Cassette, note that the Project compat needs to be updated to use it) and doing something like:
on 1.3 and 1.4 shows that the two last instructions
are missing on 1.4. Stepping through it in the debugger
We can see that Cassette returns when the
__apply_iterate
is called. This indicates that maybe https://github.com/jrevels/Cassette.jl/pull/158 didn't fix all instances of the problem.