diff options
author | Bodigrim <andrew.lelechenko@gmail.com> | 2023-01-05 23:47:57 +0000 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2023-01-18 22:24:51 -0500 |
commit | 32ab07bf3d6ce45e8ea5b55e8095174a6b42a7f0 (patch) | |
tree | e96109da5044566825f9525927b34e84fbfa798f | |
parent | eb5a6b91e02b48f9171217743e3417cb33eb92e3 (diff) | |
download | haskell-32ab07bf3d6ce45e8ea5b55e8095174a6b42a7f0.tar.gz |
ghc package does not have to depend on terminfo
-rw-r--r-- | cabal.project-reinstall | 2 | ||||
-rw-r--r-- | compiler/GHC/SysTools/Terminal.hs | 29 | ||||
-rw-r--r-- | compiler/ghc.cabal.in | 7 | ||||
-rw-r--r-- | hadrian/src/Rules/ToolArgs.hs | 2 | ||||
-rw-r--r-- | hadrian/src/Settings/Packages.hs | 1 |
5 files changed, 9 insertions, 32 deletions
diff --git a/cabal.project-reinstall b/cabal.project-reinstall index aa6fc0c47e..1886bcb297 100644 --- a/cabal.project-reinstall +++ b/cabal.project-reinstall @@ -48,7 +48,7 @@ packages: ./compiler ./utils/iserv ./linters/**/*.cabal -constraints: ghc +internal-interpreter +dynamic-system-linke +terminfo, +constraints: ghc +internal-interpreter +dynamic-system-linke, ghc-bin +internal-interpreter +threaded, ghci +internal-interpreter, haddock +in-ghc-tree, diff --git a/compiler/GHC/SysTools/Terminal.hs b/compiler/GHC/SysTools/Terminal.hs index 14a39ffad6..5e20db8739 100644 --- a/compiler/GHC/SysTools/Terminal.hs +++ b/compiler/GHC/SysTools/Terminal.hs @@ -4,16 +4,11 @@ module GHC.SysTools.Terminal (stderrSupportsAnsiColors) where import GHC.Prelude -#if defined(MIN_VERSION_terminfo) -import GHC.IO (catchException) -import Data.Maybe (fromMaybe) -import System.Console.Terminfo (SetupTermError, Terminal, getCapability, - setupTermFromEnv, termColors) -import System.Posix (queryTerminal, stdError) -#elif defined(mingw32_HOST_OS) +#if !defined(mingw32_HOST_OS) +import System.IO (hIsTerminalDevice, stderr) +#else import GHC.IO (catchException) import GHC.Utils.Exception (try) --- import Data.Bits ((.|.), (.&.)) import Foreign (Ptr, peek, with) import qualified Graphics.Win32 as Win32 import qualified System.Win32 as Win32 @@ -40,18 +35,10 @@ stderrSupportsAnsiColors = unsafePerformIO stderrSupportsAnsiColors' -- | Check if ANSI escape sequences can be used to control color in stderr. stderrSupportsAnsiColors' :: IO Bool stderrSupportsAnsiColors' = do -#if defined(MIN_VERSION_terminfo) - stderr_available <- queryTerminal stdError - if stderr_available then - fmap termSupportsColors setupTermFromEnv - `catchException` \ (_ :: SetupTermError) -> pure False - else - pure False - where - termSupportsColors :: Terminal -> Bool - termSupportsColors term = fromMaybe 0 (getCapability term termColors) > 0 - -#elif defined(mingw32_HOST_OS) +#if !defined(mingw32_HOST_OS) + -- Coloured text is a part of ANSI standard, no reason to query terminfo + hIsTerminalDevice stderr +#else h <- Win32.getStdHandle Win32.sTD_ERROR_HANDLE `catchException` \ (_ :: IOError) -> pure Win32.nullHANDLE @@ -100,6 +87,4 @@ foreign import WINAPI unsafe "windows.h GetConsoleMode" c_GetConsoleMode foreign import WINAPI unsafe "windows.h SetConsoleMode" c_SetConsoleMode :: Win32.HANDLE -> Win32.DWORD -> IO Win32.BOOL -#else - pure False #endif diff --git a/compiler/ghc.cabal.in b/compiler/ghc.cabal.in index 2bb41c0fc3..8e8bafbf8a 100644 --- a/compiler/ghc.cabal.in +++ b/compiler/ghc.cabal.in @@ -46,11 +46,6 @@ Flag internal-interpreter Default: False Manual: True -Flag terminfo - Description: Build GHC with terminfo support on non-Windows platforms. - Default: True - Manual: True - Flag dynamic-system-linker Description: The system can load dynamic code. This is not the case for musl. Default: True @@ -98,8 +93,6 @@ Library if os(windows) Build-Depends: Win32 >= 2.3 && < 2.14 else - if flag(terminfo) - Build-Depends: terminfo == 0.4.* Build-Depends: unix >= 2.7 && < 2.9 GHC-Options: -Wall diff --git a/hadrian/src/Rules/ToolArgs.hs b/hadrian/src/Rules/ToolArgs.hs index 37ffbd653f..ae586c7d0d 100644 --- a/hadrian/src/Rules/ToolArgs.hs +++ b/hadrian/src/Rules/ToolArgs.hs @@ -172,7 +172,7 @@ toolTargets = [ binary , text , transformers , unlit -- # executable - ] ++ if windowsHost then [ win32 ] else [ terminfo, unix ] + ] ++ if windowsHost then [ win32 ] else [ unix ] -- | Create a mapping from files to which component it belongs to. dirMap :: Action [(FilePath, (Package, [String]))] diff --git a/hadrian/src/Settings/Packages.hs b/hadrian/src/Settings/Packages.hs index 128262a0ab..901ff10a09 100644 --- a/hadrian/src/Settings/Packages.hs +++ b/hadrian/src/Settings/Packages.hs @@ -89,7 +89,6 @@ packageArgs = do , builder (Cabal Flags) ? mconcat [ andM [expr ghcWithInterpreter, notStage0] `cabalFlag` "internal-interpreter" - , notM cross `cabalFlag` "terminfo" , ifM stage0 -- We build a threaded stage 1 if the bootstrapping compiler -- supports it. |