Changelog for process package
- Add
callCreateProcess - Improve Haddock
- Support being configured without fork
- Fix
@sinceannotations
- Regenerate
configurescript (#343)
- Add
System.Process.Environment.OsString. - Bumps
base >= 4.12.0.0(GHC 8.6+),filepath >= 1.4.100.0,unix >= 2.8.0.0, andWin32 >= 2.14.1.0. - Drops support for GHC < 8.6.
- Fix build with Javascript backend (#327)
- Fix detection of
posix_spawn_file_actions_addchdir[_np](#303)
- Fix command-line escaping logic on Windows when the command file ends with a space or a dot. This is a follow-up for HSEC-2024-0003.
- Migitate another manifestation of the BatBadBut vulnerability via
unescaped
%expansions. This is another follow-up for HSEC-2024-0003. (#313)
- Allow NUL to appear in arguments under POSIX. See #320. Thanks to @mmhat.
-
No longer attach finalizers to
Handles created by theSystem.Process.CommunicationHandleAPI. Instead, all file descriptors are manually closed by the API.This fixes a bug in which a file descriptor could be closed multiple times.
- Introduce
System.Process.CommunicationHandle, allowing for platform-independent inter-process communication usingHandles. - Expose
withForkWaitandignoreSigPipefromSystem.Process.Internals. - Define new internal functions
rawFdToHandleand (Windows only)rawHANDLEToHandle, exported fromSystem.Process.Common.
- Adjust command-line escaping logic on Windows to ensure that occurrences of
characters with special significance to the Windows batch interpreter are
properly escaped in arguments passed to
.batand.cmdprocesses. This addresses HSEC-2024-0003. - Fix double-closing of stdin/stdout/stderr fds with POSIX
fork/execbackend. #306 - Add support for
posix_spawn_file_actions_addchdir_np
- Fix deadlock when waiting for process completion and process jobs #273
- Support
delegate_ctlcon Windows. #278 - Drop support for
vfork#261 - Javascript backend support
- Fix potential segmentation fault on macOS #295
- Improved documentation for the
OpenExtHandleconstructor.
- Correct permissions on createPipe on Windows 234
- Ensure that both ends of pipes on Windows are created in the same mode 234
- Fixed an issue with WINIO where giving an application an inherited pipe can cause it to misbehave 245
- Set the encoding on WINIO created pipes to the local encoding as with MIO 248
- cbits/fork-exec: Don't dup2 identical fds #250
- posix: Ensure that
errnois set afterposix_spawnpfails #228 - Fix
waitForProcessnot closing process handles withdelegate_ctlc#231 - Don't use
posix_spawnon platforms where it does not reportENOENTin caes where the requested executable does not exist #224 - Ensure that
find_executablecorrectly-locates executables when a change in working directory is requested #219 - Fix capitalization error allowing
execvpeto be used when available.
posix_spawn: Don't attempt todup2identical fds #214
- Patches for the previous release
- Refactoring of POSIX process logic #208
- Add function
getCurrentPidto get the currently executing process' ID #205
- Windows: Add support for new I/O manager in GHC 8.12#177
- Deprecate use of
createPipeFdin favor ofcreatePipe - Fix MVar re-entrant problem on Windows with
terminateProcessand process jobs. See #199
- Give a usable buffer to
_pipeon Windows #182
- Windows: Fix buffer size of
QueryInformationJobObjectrequest #176
- Fix another process wait bug on Windows.
- Fix a few warnings on Windows.
- Fix several bugs on Windows where use of process jobs would result in the process being prematurely terminated. See #168.
- Fix a race condition on Windows that happens when you use process jobs and one of the child processes terminates but doesn't release its resources immediately. Control returns to the caller too soon in this scenario. See #159
- Fix a potential privilege escalation issue (or, more precisely, privileges
not being dropped when this was the user's intent) where the groups of the
spawning process's user would be incorrectly retained due to a missing call to
initgroups[#149]. - Bug fix: Prevent stripping undecodable bytes from environment variables when in a non-unicode locale. #152
- Expose
runInteractiveProcess_lockinSystem.Process.Internals#154
- Version bound bumps
- Slightly nicer error messages for internal errors
- Bug fix: On Windows ignore ERROR_ACCESS_DENIED for TerminateProcess() if the process did terminate #110
- Improve documentation of the
NoStreamdata constructor
- Bug fix: Don't leak pipes on failure #122
- Expose
cleanupProcessfromSystem.Process#130 - Drop support for GHC before 7.10.3
- Added
getPidand export of platform specificPidtype #109
- Allow async exceptions to be delivered to masked thread calling
waitForProcess#101 - Update Win32 package version to 2.6.x
- Bug fix: Don't close already closed pipes #81
- Relax version bounds of Win32 to allow 2.5.
- Add support for monitoring process tree for termination with the parameter
use_process_jobsinCreateProcesson Windows. Also added a functionterminateJobto kill entire process tree.
- New exposed
withCreateProcess - Derive
ShowandEqforCreateProcess,CmdSpec, andStdStream
- Added
createPipeFD#52- New function
createPipeFDadded which returns a POSIX File Descriptor (CInt) instead of a GHC Handle to a pipe
- New function
- Use less CPP #47
- Refactor to have separate Windows and POSIX modules internally
- Remove the broken non-GHC code paths
- Added
child_userandchild_grouptoCreateProcessfor unix. #45
- Add
StdStream(NoStream)to have standard handles closed. #13 - Support for Windows
DETACHED_PROCESSandsetsid#32 - Support for Windows
CREATE_NEW_CONSOLE#38
-
Meaningful error message when exe not found on close_fds is True
-
New functions
readCreateProcessandreadCreateProcessWithExitCode
-
Fix delegated CTRL-C handling in
createProcessin case of failed process creation. See issue #15 for more details. -
waitpidon child PID after pre-exec failure in child to prevent zombies. See also issue #14.
-
Add support for
base-4.8.0.0 -
Remove Hugs98 specific code
-
New
IsString CmdSpecinstance -
Expose documentation for
System.Process.Internals -
With GHC 7.10,
System.CmdandSystem.Processare nowSafe(when compiled with older GHC versions they are justTrustworthy) -
Expose
createProcess_function, and document behavior ofUseHandleforcreateProcess. See issue #2. -
New
System.Process.createPipeoperation. See also GHC #8943
- Update to Cabal 1.10 format
- Remove NHC specific code
- Add support for
base-4.7.0.0 - Improve
showCommandForUserto reduce redundant quoting - New functions
callProcess,callCommand,spawnProcessandspawnCommand - Implement WCE handling according to http://www.cons.org/cracauer/sigint.html
- New
delegate_ctlcfield inCreateProcessfor WCE handling - Use
ExitFailure (-signum)on Unix when a proc is terminated due to a signal. - Deprecate
module System.Cmd - On non-Windows, the child thread now comunicates any errors back to the parent thread via pipes.
- Fix deadlocks in
readProcessandreadProcessWithExitCode