diff options
author | Sebastian Graf <sebastian.graf@kit.edu> | 2020-07-03 18:32:36 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2020-09-02 15:54:55 -0400 |
commit | bfab2a30be5cc68e7914c3f6bb9ae4ad33283ffc (patch) | |
tree | 9a8bd4f265617bd9af4a2dbe588664965b0b31c3 /compiler/GHC/SysTools.hs | |
parent | b4edcde70160820dd23c53d9019f895930e2c0e7 (diff) | |
download | haskell-bfab2a30be5cc68e7914c3f6bb9ae4ad33283ffc.tar.gz |
Turn on -XMonoLocalBinds by default (#18430)
And fix the resulting type errors.
Co-authored-by: Krzysztof Gogolewski <krz.gogolewski@gmail.com>
Metric Decrease:
parsing001
Diffstat (limited to 'compiler/GHC/SysTools.hs')
-rw-r--r-- | compiler/GHC/SysTools.hs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/compiler/GHC/SysTools.hs b/compiler/GHC/SysTools.hs index f3b4f4cc87..57d1757fe9 100644 --- a/compiler/GHC/SysTools.hs +++ b/compiler/GHC/SysTools.hs @@ -138,15 +138,17 @@ lazyInitLlvmConfig :: String -> IO LlvmConfig lazyInitLlvmConfig top_dir = unsafeInterleaveIO $ do -- see Note [LLVM configuration] - targets <- readAndParse "llvm-targets" mkLlvmTarget - passes <- readAndParse "llvm-passes" id - return $ LlvmConfig { llvmTargets = targets, llvmPasses = passes } + targets <- readAndParse "llvm-targets" + passes <- readAndParse "llvm-passes" + return $ LlvmConfig { llvmTargets = fmap mkLlvmTarget <$> targets, + llvmPasses = passes } where - readAndParse name builder = + readAndParse :: Read a => String -> IO a + readAndParse name = do let llvmConfigFile = top_dir </> name llvmConfigStr <- readFile llvmConfigFile case maybeReadFuzzy llvmConfigStr of - Just s -> return (fmap builder <$> s) + Just s -> return s Nothing -> pgmError ("Can't parse " ++ show llvmConfigFile) mkLlvmTarget :: (String, String, String) -> LlvmTarget |