blaise/docs
Graeme Geldenhuys a33d5aa879 docs(streams): record Stream I/O design rationale; remove from roadmap
Adds a "Stream I/O" section to docs/language-rationale.adoc covering:
the decision (Go/Okio-inspired shape, one-direction abstract bases plus
capability interfaces), rationale (cross-language survey lessons from
Java/Go/Rust/Okio/.NET/Python), why capability interfaces sit alongside
abstract classes (TBuffer as both source and sink), UTF-8 only in v1,
alternatives rejected (single-TStream root, TFilterStream decorator,
async-from-day-one), and TODOs flagged in code (segment-pool thread
safety, CopyStream fast paths, non-identifier interface arguments).

Removes the "Formal TStream decorator hierarchy" section from
docs/future-improvements.adoc — the streams subsystem is now
implemented across phases 1-5 (releases of the past few commits).
The implementation departs from the sketched TStream/TFilterStream
shape in favour of one-direction abstract bases + capability
interfaces, for the reasons documented in the rationale.

./scripts/fixpoint.sh clean.
2026-05-15 01:10:29 +01:00
..
design.adoc fix(semantic): type-check indirect-call arguments; doc record-param ABI 2026-05-05 00:42:11 +01:00
future-improvements.adoc docs(streams): record Stream I/O design rationale; remove from roadmap 2026-05-15 01:10:29 +01:00
grammar.ebnf feat(parser): array-of-enum typed constants 2026-05-14 16:33:59 +01:00
language-rationale.adoc docs(streams): record Stream I/O design rationale; remove from roadmap 2026-05-15 01:10:29 +01:00