diff options
author | Sebastian Graf <sebastian.graf@kit.edu> | 2020-07-03 18:32:36 +0200 |
---|---|---|
committer | Krzysztof Gogolewski <krzysztof.gogolewski@tweag.io> | 2020-09-01 17:33:36 +0200 |
commit | 2c906b385b4c6453c72260c87aaa48cb11c40098 (patch) | |
tree | 68f5ca6e3dae2927825358a2022fd0e4b6cba02e /compiler/GHC/SysTools.hs | |
parent | 4517a38215eb72a4824c72d97377b9325059bf55 (diff) | |
download | haskell-wip/mono-local-binds.tar.gz |
Turn on -XMonoLocalBinds by default (#18430)wip/mono-local-binds
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 |