diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2021-05-29 12:23:16 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-06-02 16:23:53 -0400 |
commit | 437a6ccd68f3ecda5b6a6caeac6b8c39b51815db (patch) | |
tree | e4912a138ecb815979977c51ef7185d5d805f9d3 /hadrian | |
parent | 7d8e1549b908ebb67bfa47d782914fe364e7015d (diff) | |
download | haskell-437a6ccd68f3ecda5b6a6caeac6b8c39b51815db.tar.gz |
hadrian: Speed up lint:base rule
The rule before decided to build the whole stage1 compiler, but this was
unecessary as we were just missing one header file which can be
generated directly by calling configure.
Before: 18 minutes
After: 54s
Diffstat (limited to 'hadrian')
-rw-r--r-- | hadrian/src/Rules/Lint.hs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/hadrian/src/Rules/Lint.hs b/hadrian/src/Rules/Lint.hs index c48ac51106..218dff8047 100644 --- a/hadrian/src/Rules/Lint.hs +++ b/hadrian/src/Rules/Lint.hs @@ -51,12 +51,18 @@ base = do let machDeps = "includes/MachDeps.h" let ghcautoconf = stage1Lib </> "ghcautoconf.h" let ghcplatform = stage1Lib </> "ghcplatform.h" - need ["stage1:lib:base", ghcautoconf, ghcplatform, machDeps] + -- ./configure is called here manually because we need to generate + -- HsBaseConfig.h, which is created from HsBaseConfig.h.in. ./configure + -- is usually run by Cabal which generates this file but if we do that + -- then hadrian thinks it needs to build the stage0 compiler before + -- attempting to configure. Therefore we just run it directly everytime, + -- which is slower but still faster than building the whole of stage0. + cmd_ (Cwd "libraries/base") "./configure" + need [ghcautoconf, ghcplatform, machDeps] let includeDirs = [ "includes" , "libraries/base/include" , stage1Lib - , buildDir </> "stage1/libraries/base/build/include" ] runHLint includeDirs [] "libraries/base" |