[commit: ghc] ghc-7.10: Fix #9243 so recompilation avoidance works with -fno-code (c2c6f64)

git at git.haskell.org git at git.haskell.org
Fri Jan 9 18:36:07 UTC 2015


Repository : ssh://git@git.haskell.org/ghc

On branch  : ghc-7.10
Link       : http://ghc.haskell.org/trac/ghc/changeset/c2c6f64bc46cac42d24806e5663c8a93920568d8/ghc

>---------------------------------------------------------------

commit c2c6f64bc46cac42d24806e5663c8a93920568d8
Author: Edward Z. Yang <ezyang at cs.stanford.edu>
Date:   Sat Dec 27 10:50:01 2014 -0800

    Fix #9243 so recompilation avoidance works with -fno-code
    
    Where we track timestamps of object files, also track timestamps
    for interface files.  When -fno-code -fwrite-interface is enabled, use
    the interface file timestamp as an extra check to see if the files are
    up-to-date.  We had to apply this logic to one-shot and make modes.
    
    This fix would be good to merge into 7.10; it makes using -fno-code
    -fwrite-interface for flywheel type checking usable.
    
    Signed-off-by: Edward Z. Yang <ezyang at cs.stanford.edu>
    
    Addresses #9243
    
    (cherry picked from commit 2223e196b2dc5340d70e58be011c279d381b4319)


>---------------------------------------------------------------

c2c6f64bc46cac42d24806e5663c8a93920568d8
 compiler/main/DriverPipeline.hs                    | 19 +++++++---
 compiler/main/GhcMake.hs                           | 40 ++++++++++++++++++++--
 compiler/main/HscTypes.hs                          |  4 +++
 testsuite/.gitignore                               |  4 +++
 testsuite/tests/driver/recomp001/Makefile          |  1 -
 testsuite/tests/driver/{recomp001 => retc001}/A.hs |  0
 .../tests/driver/{recomp001 => retc001}/B1.hs      |  0
 .../tests/driver/{recomp001 => retc001}/B2.hs      |  0
 testsuite/tests/driver/{recomp001 => retc001}/C.hs |  0
 testsuite/tests/driver/retc001/Makefile            | 24 +++++++++++++
 testsuite/tests/driver/retc001/all.T               |  5 +++
 .../recomp001.stderr => retc001/retc001.stderr}    |  0
 testsuite/tests/driver/retc001/retc001.stdout      |  7 ++++
 .../tests/driver/{recomp002 => retc002}/Makefile   |  6 ++--
 testsuite/tests/driver/{recomp002 => retc002}/Q.hs |  2 --
 testsuite/tests/driver/{recomp002 => retc002}/W.hs |  2 --
 .../tests/driver/{recomp002 => retc002}/W.hs-boot  |  2 --
 .../tests/driver/{recomp001 => retc002}/all.T      |  4 +--
 .../recomp002.stderr => retc002/retc002.stderr}    |  0
 testsuite/tests/driver/retc002/retc002.stdout      |  3 ++
 testsuite/tests/driver/{recomp003 => retc003}/A.hs |  1 -
 .../tests/driver/{recomp003 => retc003}/Makefile   | 12 ++++---
 .../tests/driver/{recomp003 => retc003}/all.T      |  4 +--
 testsuite/tests/driver/retc003/retc003.stdout      |  3 ++
 24 files changed, 117 insertions(+), 26 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc c2c6f64bc46cac42d24806e5663c8a93920568d8


More information about the ghc-commits mailing list