• Andrey Mokhov's avatar
    Hadrian: Fix untracked dependencies · 1dad4fc2
    Andrey Mokhov authored
    This is a preparation for #16295: https://ghc.haskell.org/trac/ghc/ticket/16295
    
    This commit mostly focuses on getting rid of untracked dependencies,
    which prevent Shake's new `--shared` feature from appropriately caching
    build rules.
    
    There are three different solutions to untracked dependencies:
    
    * Track them! This is the obvious and the best approach, but in some
      situations we cannot use it, for example, because a build rule creates
      files whose names are not known statically and hence cannot be
      specified as the rule's outputs.
    
    * Use Shake's `produces` to record outputs dynamically, within the rule.
    
    * Use Shake's `historyDisable` to disable caching for a particular build
      rule. We currently use this approach only for `ghc-pkg` which mutates
      the package database and the file `package.cache`.
    
    These two tickets are fixed as the result:
    
    Ticket #16271: ​https://ghc.haskell.org/trac/ghc/ticket/16271
    
    Ticket #16272: ​https://ghc.haskell.org/trac/ghc/ticket/16272 (this one
    is fixed only partially: we correctly record the dependency, but we
    still copy files into the RTS build tree).
    1dad4fc2
Name
Last commit
Last update
..
cfg Loading commit data...
doc Loading commit data...
src Loading commit data...
.ghci Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
LICENSE Loading commit data...
README.md Loading commit data...
appveyor.yml Loading commit data...
build.bat Loading commit data...
build.cabal.bat Loading commit data...
build.cabal.sh Loading commit data...
build.sh Loading commit data...
build.stack.bat Loading commit data...
build.stack.nix.sh Loading commit data...
build.stack.sh Loading commit data...
cabal.project Loading commit data...
circle.yml Loading commit data...
hadrian.cabal Loading commit data...
stack.yaml Loading commit data...