Distribution.Compat.Process

Cabal-3.5.0.0: A framework for packaging Haskell software

Safe Haskell | Safe-Inferred
Language | Haskell2010

Distribution.Compat.Process

Contents

- Redefined functions
- Additions

Synopsis

- createProcess :: CreateProcess -> IO (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle)
- runInteractiveProcess :: FilePath -> [String] -> Maybe FilePath -> Maybe [(String, String)] -> IO (Handle, Handle, Handle, ProcessHandle)
- rawSystem :: String -> [String] -> IO ExitCode
- enableProcessJobs :: CreateProcess -> CreateProcess

# Redefined functions

createProcess :: CreateProcess -> IO (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle) Source #

`createProcess` with process jobs enabled when appropriate. See `enableProcessJobs`.

runInteractiveProcess Source #

Arguments

:: FilePath | Filename of the executable (see `RawCommand` for details)
-> [String] | Arguments to pass to the executable
-> Maybe FilePath | Optional path to the working directory
-> Maybe [(String, String)] | Optional environment (otherwise inherit)
-> IO (Handle, Handle, Handle, ProcessHandle) |

`runInteractiveProcess` with process jobs enabled when appropriate. See `enableProcessJobs`.

rawSystem :: String -> [String] -> IO ExitCode Source #

`rawSystem` with process jobs enabled when appropriate. See `enableProcessJobs`.

# Additions

enableProcessJobs :: CreateProcess -> CreateProcess Source #

Enable process jobs to ensure accurate determination of process completion in the presence of `exec(3)` on Windows.

Unfortunately the process job support is badly broken in `process` releases prior to 1.6.9, so we disable it in these versions, despite the fact that this means we may see sporatic build failures without jobs.