core-cpp 0.1.0
The first release: the shared C++23 foundation of the Contour Terminal projects, in namespace
core, replacing the copies of the same code that contour, endo, fastcached and tuidu each carry.
What it is made of. Imported, and recorded file by file in
.agent/reference/provenance.md (see Imported below for each
import and what changed on the way in): contour at 6777ff05014f8ff163b071e8b0e942830119db80
(crispy's generic half, src/coro, src/net; 110 files), endo at
f774a210ce989e5947b8f61d715068b1dc96088c (the generic half of src/platform and src/tui; 212
files), and fastcached at 0708dd54dc7ee72622c8c0783c2bd4a06f0e9b21 (its async and networking
layer; 103 files, plus 8 at three earlier commits). 97 files were written here.
The merged design. contour's coroutine and networking layer and fastcached's are one design
now, not two side by side: one EventLoop with a five-step turn and a six-step teardown over an
injected IoBackend (poll, epoll, kqueue, an I/O completion port as the Windows default, WFMO kept
one release, and a host-driven backend for WebAssembly); one park table and one deadline mechanism;
one frame-free, stop-aware socket contract with one read and one write operation per socket; one
TLS layer; one socket-error table per platform; and fastcached's ownership rules for parked work,
teardown and cancellation. The rules and the fastcached issue behind each are
Coroutines and lifetimes; the threading guarantees are
Threading.
Breaking, for the projects that carried a copy. contour, endo, fastcached and tuidu each meet the breaks of the copies they carry. Every break, with its migration, is under Breaking in the 0.1.0 section of CHANGELOG.md. tools/migrate/renames.json and the codemods beside it apply the mechanical renames.
Assets. core-cpp-v0.1.0-vendor.tar.gz is the vendoring file set exported by cmake/CoreCppVendor.cmake, for consumers that vendor without git (see Vendoring). SHA256SUMS covers it.