[GHC] #16400: Hadrian: support shake's --lint-fsatrace feature

#16400: Hadrian: support shake's --lint-fsatrace feature -------------------------------------+------------------------------------- Reporter: davide | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Build System | Version: 8.6.3 (Hadrian) | Keywords: lint shake | Operating System: Unknown/Multiple hadrian fsatrace | Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- 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). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16400 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#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: | -------------------------------------+------------------------------------- Changes (by davide): * owner: (none) => davide -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16400#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#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/Comman... 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

#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: | -------------------------------------+------------------------------------- Changes (by snowleopard): * cc: NeilMitchell (added) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16400#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#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: | -------------------------------------+------------------------------------- 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).
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/Comman... here]. Stuck with an unexpected absolute path, shake think the file isn't needed event thought the relative path **is** needed. * What else?
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: 1. [https://github.com/jacereda/fsatrace shakeLintInside] must be set 2. 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/Comman... here]. Stuck with an unexpected absolute path, shake thinks the file isn't needed even thought the relative path **is** needed. 3. What else? -- Comment (by davide): I've added a shake PR https://github.com/ndmitchell/shake/pull/656 (this related to point 2 above). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16400#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC