[GHC] #16242: Hadrian is too aggressive in rebuilding

GHC ghc-devs at haskell.org
Sat Jan 26 15:21:42 UTC 2019


#16242: Hadrian is too aggressive in rebuilding
-------------------------------------+-------------------------------------
           Reporter:  goldfire       |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Build System   |           Version:  8.6.3
  (Hadrian)                          |
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 Here's what has happened:

 1. `build` (with settings `devel2`). This did its thing successfully.

 2. Edit a comment in one file.

 3. `build test --only=blahblahblah`. I was expecting to run a test. (It
 was a new test-case, a change unrelated to the comment I fixed.)

 What happens though is that stage-1 is rebuilt, and now I'm currently
 waiting for the entire RTS to be rebuilt. And all I wanted to do is run a
 test!

 I understand why Hadrian is doing this; it's technically got the upper
 hand here. But it's very frustrating. I suppose I could have done
 `--freeze1`, but it's too late now. And, even if I didn't do `--freeze1`,
 I'm surprised that the whole RTS needs to be rebuilt. Again, I know why
 Hadrian wants to. But I miss the old `LAX_DEPENDENCIES` feature of `make`.

 So, I suppose this boils down to two requests:

 1. Restore the `LAX_DEPENDENCIES` feature. I don't know the specification
 of that feature, but my experience is that it just did the Right Thing,
 and I always had it enabled (except during validation).

 2. Have some way of just running a test, without any rebuilding.

 Somewhat separately, it might be nice to package up common idioms into
 smaller command lines. Again, individual devs can do this, but centralized
 support (especially so that these scripts can be run from a variety of
 directories) would be nice. For example, I imagine my suggestion (2) above
 will lead to `build test --no-recompilation --only=xyz`, but that's a long
 line to write!

 Thanks!

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16242>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list