Migrate `Finder` component to `OsPath`
Closes #24616 (closed)
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-encapsuled, this requires only a
minimal amount of changes in other modules.
Edited by Hannes Siebenhandl