Improve compilation time
- Dominant language
- Haskell
- Stars
- 400
- Forks
- 145
- PR merge metrics
- No merged PRs in 30d
Description
I was wondering if it is possible to improve the compilation time for `vector`. On my machine, compiling it from scratch currently takes about 1.5 minutes (1 m 35 s), which I feel like is too long. For comparison, `containers` takes 45 seconds and `unordered-containers` takes 23 seconds. Yes, I know, cabal caches the build, but it's still annoying (you still have to compile it when switching to a new GHC version, contributing to `vector`, in CI, when non-Haskell people want to install a tool using `vector`,...).
Some ideas that might help to decrease compilation time:
* disable implicit fusion (#457)
* split `vector` into several smaller packages (e.g. `vector-core`, `vector-storable`, `vector-unboxed`), so that users only have to depend on the parts they actually use (`vector` would stay the same, so people could just keep using it)
* don't use `-O2` (find out which flags significantly improve performance and only enable those)
* reduce inlining (this is probably hard without also reducing performance)
* avoid redefinitions for specialization (this would be a breaking change, but idk how big the impact would be)
I'm curious how realistic you find my ideas and if you have other ideas to improve compilation time.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.