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

Improve the performance of GetModIfaceFromDisk in large repos and delete GetDependencies #2323

Merged
merged 17 commits into from
Nov 12, 2021

Commits on Nov 11, 2021

  1. Improve the performance of GetModIfaceFromDisk in large repos

    There are three benefits:
    1. GetModIfaceFromDisk and GhcSessionDeps no longer depend on the transitive module summaries. This means fewer edges in the build graph = smaller build graph = faster builds
    2. Avoid duplicate computations in setting up the GHC session with the dependencies of the module. Previously the total work done was O(NlogN) in the number of transitive dependencies, now it is O(N).
    3. Increased sharing of HPT and FinderCache. Ideally we should also
       share the module graphs, but the datatype is abstract, doesn't have a
       monoid instance, and cannot be coerced to something that has. We will
       need to add the Monoid instance in GHC first.
    
    On the Sigma repo:
    - the startup metric goes down by ~34%.
    - The edit metric also goes down by 15%.
    - Max residency is down by 30% in the edit benchmark.
    pepeiborra committed Nov 11, 2021
    Configuration menu
    Copy the full SHA
    5c8e999 View commit details
    Browse the repository at this point in the history
  2. format importes

    pepeiborra committed Nov 11, 2021
    Configuration menu
    Copy the full SHA
    91e544a View commit details
    Browse the repository at this point in the history
  3. clean up

    pepeiborra committed Nov 11, 2021
    Configuration menu
    Copy the full SHA
    1bcf14d View commit details
    Browse the repository at this point in the history
  4. remove stale comment

    pepeiborra committed Nov 11, 2021
    Configuration menu
    Copy the full SHA
    8555d61 View commit details
    Browse the repository at this point in the history
  5. fix build in GHC 9

    pepeiborra committed Nov 11, 2021
    Configuration menu
    Copy the full SHA
    680ff1f View commit details
    Browse the repository at this point in the history
  6. clean up

    pepeiborra committed Nov 11, 2021
    Configuration menu
    Copy the full SHA
    0019fa9 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    1739927 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    fdcb77f View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    05f67b6 View commit details
    Browse the repository at this point in the history
  10. delete GetDependencies

    pepeiborra committed Nov 11, 2021
    Configuration menu
    Copy the full SHA
    fbdda10 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    1bf410f View commit details
    Browse the repository at this point in the history
  12. Fix build in GHC 9.0

    pepeiborra committed Nov 11, 2021
    Configuration menu
    Copy the full SHA
    f2137c9 View commit details
    Browse the repository at this point in the history
  13. bump ghcide version

    pepeiborra committed Nov 11, 2021
    Configuration menu
    Copy the full SHA
    3e03be5 View commit details
    Browse the repository at this point in the history
  14. Introduce config options for the main rules

    Surfacing the performance tradeoffs in the core build rules
    pepeiborra committed Nov 11, 2021
    Configuration menu
    Copy the full SHA
    9f95dbb View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    bf2dbfa View commit details
    Browse the repository at this point in the history
  16. Fix build with GHC 9

    pepeiborra committed Nov 11, 2021
    Configuration menu
    Copy the full SHA
    9d6ba9e View commit details
    Browse the repository at this point in the history

Commits on Nov 12, 2021

  1. Fix Eval plugin

    pepeiborra committed Nov 12, 2021
    Configuration menu
    Copy the full SHA
    ef370d5 View commit details
    Browse the repository at this point in the history