Skip to content

Recompilation avoidance in GHC 9.4 conflicts with recompilation avoidance in HLS #3450

Closed
@wz1000

Description

@wz1000

We added very fine grained recompilation avoidance to HLS in #2316. With that change, a module using TH is recompiled if the hash of the Core of any of the modules it uses in a splice changes.

However, we still use GHC's recompilation avoidance by way of the checkOldIface function, which handles all the other recompilation avoidance cases which don't involve Template Haskell.

GHC 9.4 also added a similar finer grained recompilation avoidance scheme, in that it will recompile a module using TH if the hash of the source of any modules it uses in a splice changes. This is weaker than what we have in HLS, and as such we may end up recompiling when we didn't need to before.

Possible solution: Filter out the UsageHomeModuleInterface entries added to usages by GHCs recompilation checker.

Metadata

Metadata

Assignees

No one assigned

    Labels

    GHCissues with particular GHC versionstype: bugSomething isn't right: doesn't work as intended, documentation is missing/outdated, etc..

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions