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

Avoid unnecessary invalidations for invoked fallbacks #45001

Closed
wants to merge 1 commit into from

Commits on Apr 16, 2022

  1. Avoid unnecessary invalidations for invoked fallbacks

    While investigating a report in https://discourse.julialang.org/t/package-load-time-regressions-in-v1-8-beta3/78875
    it became clear that some precompilation statements were not effective
    due to invalidation.  It turns out that these have the pattern
    
        f(arg::SpecificType) = invoke(f, Tuple{GenericType}, arg)
    
    When `f` gets compiled for a new subtype of `SpecificType`, the
    external cached MethodInstance gets invalidated because of the
    reliance on a less specific method.
    
    This is a hack that works around this issue for `copyto!`, but being
    able to mark calls as having been issued from an `invoke` would
    be a much better solution.
    timholy committed Apr 16, 2022
    Configuration menu
    Copy the full SHA
    bd1cfb7 View commit details
    Browse the repository at this point in the history