Migrate `Finder` component to `OsPath`, fixed #24616
For each module in a GHCi session, we keep alive one `ModLocation`. A `ModLocation` is fairly inefficiently packed, as `String`s are expensive in memory usage. While benchmarking the agda codebase, we concluded that we keep alive around 11MB of `FilePath`'s, solely retained by `ModLocation`. We provide a more densely packed encoding of `ModLocation`, by moving from `FilePath` to `OsPath`. Further, we migrate the full `Finder` component to `OsPath` to avoid unnecessary transformations. As the `Finder` component is well-encapsulated, this requires only a minimal amount of changes in other modules. We introduce pattern synonym for 'ModLocation' which maintains backwards compatibility and avoids breaking consumers of 'ModLocation'.
Showing
- compiler/GHC.hs 2 additions, 0 deletionscompiler/GHC.hs
- compiler/GHC/Data/OsPath.hs 29 additions, 0 deletionscompiler/GHC/Data/OsPath.hs
- compiler/GHC/Data/Strict.hs 6 additions, 1 deletioncompiler/GHC/Data/Strict.hs
- compiler/GHC/Driver/Backpack.hs 6 additions, 5 deletionscompiler/GHC/Driver/Backpack.hs
- compiler/GHC/Driver/CodeOutput.hs 2 additions, 1 deletioncompiler/GHC/Driver/CodeOutput.hs
- compiler/GHC/Driver/Config/Finder.hs 12 additions, 12 deletionscompiler/GHC/Driver/Config/Finder.hs
- compiler/GHC/Driver/Main.hs 22 additions, 18 deletionscompiler/GHC/Driver/Main.hs
- compiler/GHC/Driver/Make.hs 9 additions, 8 deletionscompiler/GHC/Driver/Make.hs
- compiler/GHC/Driver/MakeFile.hs 3 additions, 2 deletionscompiler/GHC/Driver/MakeFile.hs
- compiler/GHC/Driver/Pipeline/Execute.hs 7 additions, 6 deletionscompiler/GHC/Driver/Pipeline/Execute.hs
- compiler/GHC/Iface/Errors.hs 3 additions, 2 deletionscompiler/GHC/Iface/Errors.hs
- compiler/GHC/Unit/Finder.hs 79 additions, 76 deletionscompiler/GHC/Unit/Finder.hs
- compiler/GHC/Unit/Finder/Types.hs 13 additions, 12 deletionscompiler/GHC/Unit/Finder/Types.hs
- compiler/GHC/Unit/Module/Location.hs 72 additions, 29 deletionscompiler/GHC/Unit/Module/Location.hs
- compiler/GHC/Unit/Module/ModSummary.hs 13 additions, 0 deletionscompiler/GHC/Unit/Module/ModSummary.hs
- compiler/ghc.cabal.in 3 additions, 1 deletioncompiler/ghc.cabal.in
- ghc/ghc-bin.cabal.in 1 addition, 1 deletionghc/ghc-bin.cabal.in
- testsuite/tests/count-deps/CountDepsAst.stdout 1 addition, 0 deletionstestsuite/tests/count-deps/CountDepsAst.stdout
- testsuite/tests/count-deps/CountDepsParser.stdout 1 addition, 0 deletionstestsuite/tests/count-deps/CountDepsParser.stdout
- utils/haddock/haddock-api/src/Haddock/Interface/Create.hs 2 additions, 5 deletionsutils/haddock/haddock-api/src/Haddock/Interface/Create.hs
Loading
Please register or sign in to comment