-
-
Couldn't load subscription status.
- Fork 5.7k
Precompile correct invoke-targets #46907
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
Conversation
45b8a84 to
a2ddf28
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Normally this is handled for invoke cases by calling jl_gf_invoke_lookup_worlds, since it is not typically that logical to return a list of things equal to some other thing, as there can only be zero or one of them.
This fixes backedge-based invalidation when a precompiled `invoke` is followed by loading a package that adds new specializations for the `invoke`d method. An example is LowRankApprox.jl, where FillArrays adds a specialization to `unique`.
a2ddf28 to
f6badbd
Compare
|
Thanks! I stripped out the changes to |
This comment was marked as outdated.
This comment was marked as outdated.
This fixes backedge-based invalidation when a precompiled `invoke` is followed by loading a package that adds new specializations for the `invoke`d method. An example is LowRankApprox.jl, where FillArrays adds a specialization to `unique`.
This fixes backedge-based invalidation when a precompiled `invoke` is followed by loading a package that adds new specializations for the `invoke`d method. An example is LowRankApprox.jl, where FillArrays adds a specialization to `unique`. (cherry picked from commit 698beed)
This fixes backedge-based invalidation when a precompiled
invokeis followed by loading a package that adds new specializations for theinvoked function. An example is LowRankApprox.jl, where FillArrays adds a specialization touniquewhichinvokesuniquefor an arbitraryitr. CC @jishnub.This also allows one to setintersections=falseso that one can compute matching methods forinvokecalls.