0.22.0
- Based on
roc-lang/basic-cli 0.21.0-rc4for the new Roc compiler. - Add spawned child processes with piped stdio:
Cmd.spawn!/Cmd.spawn_grouped!return aCmd.Childwith piped stdio.
Grouped children die with the parent (PR_SET_PDEATHSIGon Linux, managed
process groups elsewhere) and can be culled withCmd.kill_grouped!, which
also runs automatically on program exit.Child.write_stdin!,Child.read_stdout!/read_stderr!(blocking exactly-N
reads, as length-prefixed protocols need),close_stdin!,wait!,poll!,
kill!.stdout/stderrare drained into buffers by background threads from
spawn time, so a chatty child never deadlocks on a full OS pipe buffer.
- Add
Tcpconnection pooling:Tcp.pool!creates a host-managed pool.max_connectionscaps total
connections (checked out+idle). At the cap,pool_acquire!waits for a
release (30s timeout ->TcpConnectErr(TimedOut)).- Streams are pool-aware: a checked-out stream that is dropped without
pool_release!frees its slot, so leaks cannot wedge the pool.
Tcp.close!shuts a socket down immediately for connections in an
unknown protocol state.
Full Changelog: 0.18.0...0.22.0
Full Changelog: 0.18.0...0.22.0