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 format3
Compiler ABI4
Runtime ABI2
Build receipt 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.

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.