v0.5.39
Pre-release
Pre-release
- Improvements and refactoring to I/O APIs.
- Added asynchronous API surface.
- This currently just wraps the synchronous APIs; full asynchronous support may be a future possibility.
- Pooling of
System.Threading.Tasks.ValueTask
instances is used where possible.
- Added cancellation token support throughout all APIs.
- This currently only performs actual cancellation for read operations, not write operations.
- Added a
Resumed
event toSystem.VirtualTerminal
for handlingSIGCONT
. - Added a new
System.TerminalControl
API for acquiring exclusive terminal control. - Refactored exception types.
- Moved
TerminalException
fromSystem
toSystem.IO
and changed base type toSystem.IO.IOException
. - Added new
System.IO.TerminalNotAttachedException
which derives fromSystem.IO.TerminalException
. - Added new
System.IO.TerminalConfigurationException
which derives fromSystem.IO.TerminalException
.
- Moved
- Renamed
Reader
andWriter
properties onSystem.IO.TerminalReader
andSystem.IO.TerminalWriter
toTextReader
andTextWriter
, respectively. - Removed superfluous I/O API surface (e.g. methods that perform formatting).
- Moved
Instance
property fromSystem.SystemVirtualTerminal
toSystem.Terminal
and renamed it toSystem
. - Changed core methods on
System.IO.TerminalReader
andSystem.IO.TerminalWriter
to have Unix-like semantics.- Number of bytes written is now returned rather being an
out
parameter. - An exception must only be thrown if zero bytes were processed.
- Number of bytes written is now returned rather being an
- Added asynchronous API surface.
- Improvements to control sequence construction.
System.Text.Control.ControlBuilder
now uses an interpolated string handler to efficiently append interpolated strings.- Added
DECSCNM
support. - Added
Null
method toSystem.Text.Control.ControlBuilder
. - Added some missing C0 control constants to
System.Text.Control.ControlConstants
. - Changed C0 control constants in
System.Text.Control.ControlConstants
to be typed aschar
. - Reduced allocations a bit in
System.Text.Control.ControlSequences
.
- Various platform-specific driver improvements.
- Suppress suspension by
SIGTTOU
while switching to cooked mode on Unix. - Set
TOSTOP
bit when switching to raw mode on Unix. - Fixed some cases where the value of
errno
was fetched too late on Unix. - Revert console modes if flushing the input buffer fails on Windows.
- Suppress suspension by
- Improvements to the process APIs.
- Added
Refresh
andSendSignal
methods toSystem.Diagnostics.TerminalProcess
. - Exposed various properties available on the underlying
System.Diagnostics.Process
.
- Added
- Changed
System.Diagnostics.TerminalTraceListener
to take aTerminalWriter
instance. - Optimized various areas of the library to avoid bounds checks on spans and arrays.