
#16253: Offer a shorthand for `--skip=_build/stage$n/compiler/.dependencies.mk` -------------------------------------+------------------------------------- Reporter: sgraf | Owner: (none) Type: task | Status: new Priority: normal | Milestone: Component: Build System | Version: 8.6.3 (Hadrian) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by snowleopard):
Andrey, is the reason this is hideously expensive because `ghc -M` is hideously expensive?
There are ~500 Haskell files in the `compiler` directory, so global (i.e. per-package) dependency analysis can't be very fast, however efficiently it is implemented.
If not, then using oracles to cache the various parts of `dependencies.mk` would be the right solution.
This is what we do, but this doesn't solve the problem: right now, if you edit a single Haskell file in `compiler`, we will rerun `ghc -M` on the whole set of ~500 package files. Yes, oracles will helpfully cut the changes from propagating further, but this single `ghc -M` invocation will be slow. I think the only solution is to have a way (e.g. a new GHC flag) to run dependency analysis on a single file, without transitive exploration of all its dependencies. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16253#comment:12 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler