Version 1.1.0
[Summary]
StormByte System is the C++26 process and environment layer of the StormByte suite.
Dependency baseline: StormByte (base) 1.1.0.
Spawn children with piped stdin/stdout/stderr, chain them, suspend/resume, and expand environment strings. POSIX and Windows stay behind one API.
Changed
- Public process behavior
- Ported System exception messages to the
StormByte::Componentformat and addedProcessCreationErrorfor process creation failures. - Added a public timed
Wait(std::chrono::milliseconds)overload; the existing untimed overload remains unchanged.
- Ported System exception messages to the
- Process pipeline internals
- Moved forwarding into the internal
Pipeabstraction while preserving buffered and future output. - Moved Process state into the private process implementation header, reducing public-header ABI exposure.
- Moved forwarding into the internal
- Dependencies and build configuration
- Updated the StormByte/base dependency to 1.1.0.
- Switched Windows release optimization handling to CMake interprocedural optimization without duplicate manual compiler/linker flags.
Fixed
- Pipe and process lifecycle
- Pipe construction now checks platform errors, normalizes UNIX descriptors, and moved pipes invalidate their source endpoints.
- Pipe reads, writes, polling, EOF handling, and descriptor binding now distinguish interruption, EOF, and failure.
- Process pipeline forwarding retains pipe ownership independently of Process lifetime, supports safe reconnection, and cancels without cross-thread descriptor closure.
- Process waiting no longer deadlocks on downstream backpressure; lifecycle joins handle unexpected thread errors without escaping
noexceptcleanup paths. - Direct writes, interrupted waits, and Windows wait failures now preserve error and ownership semantics.
- Process startup and platform handling
- UNIX startup reports
execvpfailures to the parent and throws the appropriate exception eagerly. - Windows startup quotes command-line arguments and distinguishes missing executables from other creation failures.
- Environment expansion handles missing home directories safely, expands only leading
~paths, and grows Windows buffers as needed.
- UNIX startup reports
- Regression coverage
- Added coverage for pipelines, process moves, signal termination, interrupted waits, descriptor reuse, consumer exit, direct write failures, and oversized Windows environment expansion.
- CI portability
- Fixed Windows-only Process implementation initialization.
- Made UNIX process tests resolve utilities through
PATHfor macOS portability.