Repository navigation
TTX 0.4.0
TTX 0.4.0 establishes the Data, Semantic and Graph layers for composing independently developed systems through explicit contracts.
Main update:
The bootstrap follows a single path: load a published Storage record, validate and transfer its Query API, then negotiate an Abstract or another callable contract. Data performs representation checks and transfer, Semantic negotiates complete callable APIs, and Graph provides route navigation and UUID binding. Providers interpret their own opaque context; consumers preserve each API's supplied context and operations.
Features:
- Compile canonical representations at build time or runtime, with runtime Representation values owning their descriptor storage.
- Keep the C data records separate from the C++ interfaces while sharing their underlying descriptor arrays.
- Validate data layout, callable signatures and calling conventions before transferring a complete API record.
- Negotiate callable contracts through Query without requiring a transport session or implicit lifetime management.
- Replace the Concept layer with Graph. Abstract exposes supports, bind, resolve_route, visit_routes and get_state; typed payload operations belong to independently bound contracts.
- Establish the Abstract ABI during Semantic bootstrap, then bind Graph contracts by UUID and their agreed C records.
- Provide reserved None and Unknown results, with explicit rules distinguishing graph state from negotiation status.
- Preserve the binding location through provider-supplied get_abstract operations, including providers that compose different context layouts and operation tables.
- Keep Constant selection, Ordered visitation and Retain/Retained lifetime contracts independent. Create, Callable, Import and Export compose through the same graph model.
- Package Data, Semantic and Graph header components with shared and static libraries for Linux, Windows and WebAssembly.
- Bundle matching Perimortem dependencies: static TTX uses Perimortem's static archive, while shared TTX includes its shared runtime dependency.
- Use Core::Identity::Uuid from Perimortem 0.4.0, removing TTX's dependency on Serialization. SDK packaging uses Toolchain 0.4.1.
This release changes the public API and Abstract ABI. Consumers using the earlier Concept and transport interfaces must migrate to the Data, Semantic and Graph contracts.
Native Windows execution has not yet been validated.