Skip to content

Releases: niclas-ahden/basic-cli

Release list

0.22.1

Choose a tag to compare

@github-actions github-actions released this 22 Jul 17:06

Changes

  • Compatibility with the latest compiler version.

Full Changelog: 0.22.0...0.22.1

Docs

0.22.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 09:54
50d74ed
  • Based on roc-lang/basic-cli 0.21.0-rc4 for the new Roc compiler.
  • Add spawned child processes with piped stdio:
    • Cmd.spawn! / Cmd.spawn_grouped! return a Cmd.Child with piped stdio.
      Grouped children die with the parent (PR_SET_PDEATHSIG on Linux, managed
      process groups elsewhere) and can be culled with Cmd.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/stderr are drained into buffers by background threads from
      spawn time, so a chatty child never deadlocks on a full OS pipe buffer.
  • Add Tcp connection pooling:
    • Tcp.pool! creates a host-managed pool. max_connections caps 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

Docs