Skip to Content
Cloth
DocumentationTools and ProjectsTargets and Compatibility

Targets and compatibility

Cloth’s source-level types and rules are portable. Numeric aliases do not depend on pointer width, and binary-data operations select byte order explicitly.

Outputs

Operationx86-64wasm32
Source checkingSupportedSupported
LLVM IR emissionSupportedSupported
Native executable generationSupportedNot currently supported

Structs support native lowering and compiled dependencies. Their inline storage and contained managed references are handled by the compiler and runtime.

Versioned boundaries

The current contracts are:

BoundaryVersion
Shuttle manifest schema1
Shuttle compiler process protocol2
Compiler artifact format8
Compiler ABI7
Runtime ABI12
Build receipt schema1
Toolchain metadata schema1

These versions are independent. The process protocol describes communication between tools; the artifact and ABI versions describe the compiled data and code they exchange.

Shuttle advertises and validates artifact format 8 through public capabilities and receipts. Runtime ABI 12 is compiler-owned metadata inside the opaque artifact; clothc validates it during inspection, reuse, and linking.

Rebuild older artifacts when moving to the current compiler/runtime contract. Incompatible versions must fail validation rather than being guessed or silently adapted. Source-free dependencies preserve type identity, public contracts, and the private layout information needed for correct linking and reference tracing.

Ordinary source code should use the language’s types, members, and meta operations. Internal tags, field offsets, symbol encodings, and printed type names are not portable persistence formats.