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. |
|
||||
| **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. |
|
||||
| **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. |
|
||||
| **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. |
|
||||
@@ -394,13 +394,15 @@ The schema tables in section 6.9 close all remaining fields. There is
|
||||
deliberately no general `[settings]` escape hatch.
|
||||
|
||||
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:
|
||||
|
||||
```text
|
||||
product "inspect" {
|
||||
kind = "exe"
|
||||
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.
|
||||
`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.
|
||||
Non-action source inputs live only in the consumer template rather than invented
|
||||
graph nodes. The project index contains only its typed graph-snapshot digest.
|
||||
The `source-input` kind is invalid in `GraphEdgeV1`. Non-action source inputs
|
||||
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
|
||||
|
||||
@@ -2093,6 +2096,7 @@ select one explicitly:
|
||||
product "hello" {
|
||||
kind = "exe"
|
||||
root = "."
|
||||
linkage = "dynamic"
|
||||
providers = [
|
||||
{ slot = "c:zlib@1", use = "example.org/zlib#zlib-linux-aarch64" }
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user