-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Precompile correct invoke-targets #46907
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
invoke
is followed by loading a package that adds new specializations for theinvoke
d function. An example is LowRankApprox.jl, where FillArrays adds a specialization tounique
whichinvoke
sunique
for an arbitraryitr
. CC @jishnub.This also allows one to setintersections=false
so that one can compute matching methods forinvoke
calls.