[GHC] #13829: ghc --make should not relink when we know the binary doesn't change

GHC ghc-devs at haskell.org
Thu Jun 15 01:11:05 UTC 2017


#13829: ghc --make should not relink when we know the binary doesn't change
-------------------------------------+-------------------------------------
           Reporter:  nh2            |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  8.0.2
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:  #13828
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 I would expect GHC not to relink after touching a file, since no actual
 program code was changed. But it does:

 {{{
 $ echo "main = return ()" > Main.hs

 $ ghc --make Main.hs
 [1 of 1] Compiling Main             ( Main.hs, Main.o )
 Linking Main ...

 $ touch Main.hs

 $ ghc --make Main.hs
 [1 of 1] Compiling Main             ( Main.hs, Main.o )
 Linking Main ...
 }}}

 I would expect that the recompilation avoidance makes GHC stop continuing
 as soon as it has noticed that the same object code (`.o` file) was
 generated as in the first build.

 Perhaps even earlier (e.g. after parsing).

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


More information about the ghc-tickets mailing list