[GHC] #16400: Hadrian: support shake's --lint-fsatrace feature
GHC
ghc-devs at haskell.org
Thu Mar 7 12:09:21 UTC 2019
#16400: Hadrian: support shake's --lint-fsatrace feature
-------------------------------------+-------------------------------------
Reporter: davide | Owner: davide
Type: bug | Status: new
Priority: normal | Milestone:
Component: Build System | Version: 8.6.3
(Hadrian) | Keywords: lint shake
Resolution: | hadrian fsatrace
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Description changed by davide:
Old description:
> Shake's `--lint-fsatrace` feature uses
> [https://github.com/jacereda/fsatrace fsatrace] to track file accesses of
> external commands. This allows for more accurate dependency linting which
> is important e.g. for caching.
>
> Hadrian already accepts the `--lint-fsatrace` command line option (it is
> passed on to shake automatically), but it currently has no effect. The
> shake options are not set correctly (In particular
> [https://github.com/jacereda/fsatrace shakeLintInside] must be set).
New description:
Shake's `--lint-fsatrace` feature uses
[https://github.com/jacereda/fsatrace fsatrace] to track file accesses of
external commands. This allows for more accurate dependency linting which
is important e.g. for caching.
Hadrian already accepts the `--lint-fsatrace` command line option (it is
passed on to shake automatically), but it currently has no effect. The
shake options are not set correctly (In particular
[https://github.com/jacereda/fsatrace shakeLintInside] must be set).
Required Changes:
* [https://github.com/jacereda/fsatrace shakeLintInside] must be set
* Out of tree build dirs don't get linted.
{{{
buildRoot -/- "lint-test" %> \out ->
let gen t f = cmd Shell "echo" t ">" (toNative f) :: Action ()
gen "x" $ out <.> "txt"
need [out <.> "txt"] -- This need should set off a lint error.
writeFile' out ""
}}}
* fsatrace gives absolute paths. Shake then tries and fails to convert
to relative paths
[https://github.com/ndmitchell/shake/blob/master/src/Development/Shake/Command.hs#L148
here]. Stuck with an unexpected absolute path, shake think the file isn't
needed event thought the relative path **is** needed.
* What else?
--
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16400#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list