summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBodigrim <andrew.lelechenko@gmail.com>2023-01-05 23:47:57 +0000
committerMarge Bot <ben+marge-bot@smart-cactus.org>2023-01-18 22:24:51 -0500
commit32ab07bf3d6ce45e8ea5b55e8095174a6b42a7f0 (patch)
treee96109da5044566825f9525927b34e84fbfa798f
parenteb5a6b91e02b48f9171217743e3417cb33eb92e3 (diff)
downloadhaskell-32ab07bf3d6ce45e8ea5b55e8095174a6b42a7f0.tar.gz
ghc package does not have to depend on terminfo
-rw-r--r--cabal.project-reinstall2
-rw-r--r--compiler/GHC/SysTools/Terminal.hs29
-rw-r--r--compiler/ghc.cabal.in7
-rw-r--r--hadrian/src/Rules/ToolArgs.hs2
-rw-r--r--hadrian/src/Settings/Packages.hs1
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.