0x0LearnReferenceLibraries0x0.jmp0x1b.com

ABI Value Layouts

abi/value-layouts.tsv is the required ABI v1 value-layout schema for runtime

values. The ABI v1 core layout promotion covers Option, Result, Map,

Bytes, and Error in lib/core. The ABI v1 runtime descriptor layout covers

the host and application value families that cross runtime, framework, actor,

Live, process, socket, and hardware evidence boundaries.

ABI 0.1 remains the executable and object marker. ABI v1 is the value-layout

family used by core runtime values. The schema keeps executable/object ABI

markers and value-layout versions separate so runtime, core library, backend,

and documentation work cannot drift.

Schema

Each row in abi/value-layouts.tsv contains:

core library code.

Required Rows

Value ABI v1 tag Current status
Unit 0 implemented in ABI 0.1 as payload 0, tag 0.
Bool 1 implemented in ABI 0.1 by sharing tag 1 with I64.
I64 2 implemented in ABI 0.1 by sharing tag 1 with Bool.
Text 3 implemented in ABI 0.1 as NUL-terminated UTF-8 text.
List 4 implemented in ABI 0.1 as cons nodes.
Option 5 implemented by lib/core/option.0x0 as (list 5 "some" value) or (list 5 "none").
Result 6 implemented by lib/core/result.0x0 as (list 6 "ok" value) or (list 6 "err" error).
Map 7 implemented by lib/core/map.0x0 as (list 7 "map" entries).
Bytes 8 implemented by lib/core/bytes.0x0 as (list 8 "bytes" raw-list).
Error 9 implemented by lib/core/error.0x0 as (list 9 "error" code message cause context).
Path 10 implemented as (list 10 "path" text kind normalized) for validated filesystem and package paths.
Handle 11 implemented as (list 11 "handle" capability id state) for linear runtime-owned generic handles.
Protocol 12 implemented as (list 12 "protocol" name version state trace) for checked protocol/session state.
Actor 13 implemented as (list 13 "actor" node name message-type) for local typed actor references.
RemoteActor 14 implemented as (list 14 "remote-actor" node address capabilities) for distributed actor references.
Live 15 implemented as (list 15 "live" session route revision payload) for generic Live runtime state and frames.
ProcessHandle 16 implemented as (list 16 "process-handle" pid status stdio) for subprocess runtime ownership.
SocketHandle 17 implemented as (list 17 "socket-handle" endpoint mode state) for socket runtime ownership.
RuntimeError 18 implemented as (list 18 "runtime-error" code message capability context) for capability-aware runtime failures.
HardwareEvidence 19 implemented as (list 19 "hardware-evidence" target artifact digest proof) for hardware and assurance evidence.

ABI v1 Core Layout Gate

make abi-v1-layout-check verifies the ABI v1 core layout promotion:

implemented-v1-core;

same through public helpers.

ABI v1 Runtime Descriptor Layout Gate

Runtime descriptor values are ABI v1 tagged-list families that carry a numeric

layout tag plus a public descriptor name. Existing source-facing names such as

ActorRef, LiveTemplateRender, process descriptors, socket descriptors, and

hardware proof records remain public payload names where their modules expose

them; the ABI schema owns the canonical family tag, ownership, and validation

failure family.

make abi-layout-check verifies that all runtime descriptor rows are present in

abi/value-layouts.tsv, use implemented-v1-runtime-descriptor, have unique

tags, and are documented here. Runtime capability, actor, distributed, Live,

process, socket, and hardware gates then validate behavior against those

families through their own focused checks.

Gate

make abi-layout-check validates the schema, required rows, docs, release

notes, compatibility matrix, roadmap progress, and ADR/RFC records without

building compiler artifacts.

make abi-v1-layout-check validates implemented core layout behavior and runs

the ABI v1 runtime smoke fixture.