-
Notifications
You must be signed in to change notification settings - Fork 9
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
Test fails on Julia master (1.4) #6
Comments
Thanks for bringing this up! It looks like this has to do with the way irrational constants like
As expected, the initial With julia nightly, things start in the same way, but the
I'm going to investigate further, but here are my thoughts so far:
Would you by any chance happen to know whether Julia-1.4 introduces subtle changes in the way Irrational constants are handled internally? |
FWIW, here is the Cassette-based code I used to produce the call traces above: using Cassette
Cassette.@context Ctx;
function Cassette.prehook(ctx::Ctx,
op::Any,
a::T1, b::T2) where {T1, T2}
println((op, T1, T2))
end
ctx = Ctx()
Cassette.overdub(ctx, ()->pi*2.0) |
I stepped through it with Debugger and it gives the same instructions executed until About to run: (tuple)(3.141592653589793, 2.0)
1|debug>
In promote(x, y) at promotion.jl:281
280 function promote(x, y)
281 @_inline_meta
282 px, py = _promote(x, y)
283 not_sametype((x,y), (px,py))
>284 px, py
285 end
About to run: return (3.141592653589793, 2.0)
1|debug>
In *(x, y) at promotion.jl:312
>312 *(x::Number, y::Number) = *(promote(x,y)...)
###################
# Cassette stops here #
###################
About to run: (Core._apply_iterate)(iterate, *, (3.141592653589793, 2.0))
1|debug>
In *(x, y) at float.jl:405
>405 *(x::Float64, y::Float64) = mul_float(x, y)
About to run: (Core.Intrinsics.mul_float)(3.141592653589793, 2.0)
1|debug>
In *(x, y) at float.jl:405
>405 *(x::Float64, y::Float64) = mul_float(x, y)
About to run: return 6.283185307179586
1|debug>
In *(x, y) at promotion.jl:312
>312 *(x::Number, y::Number) = *(promote(x,y)...)
About to run: return 6.283185307179586
1|debug>
6.283185307179586 So the problem is that Cassette doesn't recurse through into |
Thanks! |
Some of the tests fail with Julia master (1.4):
It would be good if we could figure out the root cause of this to see if it is a regression in Julia or what is going on.
The text was updated successfully, but these errors were encountered: