[commit: ghc] master: Fix #9243 so recompilation avoidance works with -fno-code (2223e19)

git at git.haskell.org git at git.haskell.org
Sat Jan 3 20:31:39 UTC 2015


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

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/2223e196b2dc5340d70e58be011c279d381b4319/ghc

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

commit 2223e196b2dc5340d70e58be011c279d381b4319
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
    
    Summary:
    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>
    
    Test Plan: validate and new test cases
    
    Reviewers: austin
    
    Subscribers: carter, thomie
    
    Differential Revision: https://phabricator.haskell.org/D596
    
    GHC Trac Issues: #9243


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

2223e196b2dc5340d70e58be011c279d381b4319
 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 2223e196b2dc5340d70e58be011c279d381b4319


More information about the ghc-commits mailing list