docs: close Phase 0 protocol gaps
This commit is contained in:
@@ -165,7 +165,7 @@ absence of a garbage collector says nothing about version resolution.
|
|||||||
| **module** | A distributable, versioned source tree rooted by one `ww.mod`, declaring one globally stable module identity and containing zero or more packages. |
|
| **module** | A distributable, versioned source tree rooted by one `ww.mod`, declaring one globally stable module identity and containing zero or more packages. |
|
||||||
| **project** | The module or standalone package selected by the user's current command, including its declared products. |
|
| **project** | The module or standalone package selected by the user's current command, including its declared products. |
|
||||||
| **workspace** | A local, non-published set of module-identity-to-directory overlays described by `ww.work`. It changes location, never identity. |
|
| **workspace** | A local, non-published set of module-identity-to-directory overlays described by `ww.work`. It changes location, never identity. |
|
||||||
| **dependency** | A typed directed edge: package import, generated-input edge, tool edge, native-provider edge, runtime edge, or ordered link edge. The edge kind is never implicit. |
|
| **dependency** | A typed directed edge: package import, generated-input edge, tool edge, native-provider edge, runtime edge, ordered link edge, or source-input edge. A source-input edge is content-rooted and has no producer action; it is valid in template/final action inputs but never in `GraphEdgeV1`. The edge kind is never implicit. |
|
||||||
| **target/platform descriptor** | A canonical architecture/platform/ABI/object/CPU/runtime description. An action labels descriptors by role: execution `B`, product `H`, and optional compiler-output `T`. A target triple is only a short lookup name. |
|
| **target/platform descriptor** | A canonical architecture/platform/ABI/object/CPU/runtime description. An action labels descriptors by role: execution `B`, product `H`, and optional compiler-output `T`. A target triple is only a short lookup name. |
|
||||||
| **artifact** | An immutable byte string or canonical directory tree produced by an action and named by a content digest. Materialized files are copies or links, not the artifact's identity. |
|
| **artifact** | An immutable byte string or canonical directory tree produced by an action and named by a content digest. Materialized files are copies or links, not the artifact's identity. |
|
||||||
| **toolchain** | An immutable descriptor and content closure containing the compiler, action protocol, export/ABI versions, target descriptors, resource files, runtime implementations, and pinned assembler/linker/archive tools. |
|
| **toolchain** | An immutable descriptor and content closure containing the compiler, action protocol, export/ABI versions, target descriptors, resource files, runtime implementations, and pinned assembler/linker/archive tools. |
|
||||||
@@ -394,13 +394,15 @@ The schema tables in section 6.9 close all remaining fields. There is
|
|||||||
deliberately no general `[settings]` escape hatch.
|
deliberately no general `[settings]` escape hatch.
|
||||||
|
|
||||||
The root `main` package is the default executable product, named after the
|
The root `main` package is the default executable product, named after the
|
||||||
module's last segment. Libraries need no product declaration to be imported.
|
module's last segment, with explicit normalized linkage `dynamic` and runtime
|
||||||
|
`hosted`. Libraries need no product declaration to be imported.
|
||||||
Additional or non-default outputs are explicit:
|
Additional or non-default outputs are explicit:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
product "inspect" {
|
product "inspect" {
|
||||||
kind = "exe"
|
kind = "exe"
|
||||||
root = "cmd/inspect"
|
root = "cmd/inspect"
|
||||||
|
linkage = "dynamic"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -1280,8 +1282,9 @@ digest. `GraphSnapshotV1` tags are 1 schema, 2 logical root, 3 sorted
|
|||||||
4 optional typed action-record digest, and 5 optional typed action-result digest.
|
4 optional typed action-record digest, and 5 optional typed action-result digest.
|
||||||
`GraphEdgeV1` tags are 1 consumer node ID, 2 consumer input slot, 3 producer node
|
`GraphEdgeV1` tags are 1 consumer node ID, 2 consumer input slot, 3 producer node
|
||||||
ID, 4 producer output name, and 5 edge kind; edges sort by that five-field tuple.
|
ID, 4 producer output name, and 5 edge kind; edges sort by that five-field tuple.
|
||||||
Non-action source inputs live only in the consumer template rather than invented
|
The `source-input` kind is invalid in `GraphEdgeV1`. Non-action source inputs
|
||||||
graph nodes. The project index contains only its typed graph-snapshot digest.
|
live only in the consumer template rather than invented graph nodes. The project
|
||||||
|
index contains only its typed graph-snapshot digest.
|
||||||
|
|
||||||
#### Target, toolchain, native, interface, and handoff records
|
#### Target, toolchain, native, interface, and handoff records
|
||||||
|
|
||||||
@@ -2093,6 +2096,7 @@ select one explicitly:
|
|||||||
product "hello" {
|
product "hello" {
|
||||||
kind = "exe"
|
kind = "exe"
|
||||||
root = "."
|
root = "."
|
||||||
|
linkage = "dynamic"
|
||||||
providers = [
|
providers = [
|
||||||
{ slot = "c:zlib@1", use = "example.org/zlib#zlib-linux-aarch64" }
|
{ slot = "c:zlib@1", use = "example.org/zlib#zlib-linux-aarch64" }
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user