Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/rationales/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ are not architecture facts and are not reproduced here.
| [Fabric Memory And Resources](fabric-memory-and-resources.md) | [Fabric Memory](../spec-fabric-mem.md), [Fabric Resource Contract](../spec-fabric-resource-contract.md), [Fabric Boundary](../spec-fabric-boundary.md), [Fabric FIFO](../spec-fabric-fifo.md), [Fabric Switch](../spec-fabric-switch.md), [Fabric Instantiate](../spec-fabric-instantiate.md) |
| [Mapping And PnR](mapping-and-pnr.md) | [Mapping Artifact](../spec-mapping-artifact.md), [Mapping Identity](../spec-mapping-identity.md), [Mapping Memory](../spec-mapping-memory.md), [Mapping Verification](../spec-mapping-verification.md), [TechMapping Generation](../spec-tech-mapping.md), [Place And Route](../spec-pnr.md) |
| [Evaluation And DSE](evaluation-and-dse.md) | [Evaluation And DSE](../spec-dse-feedback.md), [Evaluation Metrics](../spec-evaluation-metrics.md), [External Tool Invocation](../spec-external-tool-invocation.md), [FPA Evaluation](../spec-fpa-estimation.md) |
| [ML Search](ml.md) | [ML Environment Core](../spec-ml-core-environment.md), [ML Model Core](../spec-ml-core-model.md), [ML DSE Environment](../spec-ml-dse-environment.md), [ML DSE Model Architecture](../spec-ml-dse-model-architecture.md), [ML Training Core](../spec-ml-core-training.md), [ML DSE Training](../spec-ml-dse-training.md), [ML PnR Environment](../spec-ml-pnr-environment.md), [ML PnR Model Architecture](../spec-ml-pnr-model-architecture.md), [ML PnR Training](../spec-ml-pnr-training.md) |
| [Simulation](simulation.md) | [Simulation Artifacts](../spec-simulation-artifacts.md), [DFG-sim](../spec-sim-dfg.md), [CGRA-sim](../spec-sim-cgra.md), [Simulation Comparison](../spec-sim-comparison.md) |
| [Runtime And Deployment](runtime-and-deployment.md) | [Executable Closure](../spec-executable-closure.md), [Configuration And Deployment](../spec-configuration-deployment.md), [Runtime ABI](../spec-runtime-abi.md), [Implementation Platform](../spec-implementation-platform.md) |
| [Hardware Backend](hardware-backend.md) | [RTL Lowering](../spec-rtl-lowering.md), [Hardware Implementation](../spec-hardware-implementation.md), [Implementation Platform](../spec-implementation-platform.md), [EDA Tooling](../spec-eda-tooling.md), [External Tool Invocation](../spec-external-tool-invocation.md), [FPA Evaluation](../spec-fpa-estimation.md) |
Expand Down
596 changes: 596 additions & 0 deletions docs/rationales/ml.md

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions docs/spec-adg-builder.md
Original file line number Diff line number Diff line change
Expand Up @@ -1483,6 +1483,12 @@ deterministic elaboration only. There is no generic hardware action language,
mutable candidate graph, caller-authored property bag, or DSE-only
construction path.

A caller that requires a verified candidate without an Artifact takes the
`VerifiedFabricClosure` owned by
[Finalization And Publication](spec-fabric-artifact.md#finalization-and-publication)
and does not publish it. The Builder gains no second finalization path from
that choice.

## Conformance Anchors

The stable Builder anchors are deliberately small:
Expand Down
17 changes: 17 additions & 0 deletions docs/spec-fabric-artifact.md
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,23 @@ reimported the result cannot return `FinalizedFabricRoot` or claim artifact
success. It must return the typed unavailable, invalid, incomplete, or store
failure owned by the first unsatisfied stage.

The pipeline has exactly one named intermediate. A `VerifiedFabricClosure` is
the value that exists after independent reverification and before
`ArtifactStore::put`: canonical bytes, the computed candidate
ArtifactIdentity, and the validated dependency closure, with no store object.
It is not a reduced finalization mode, because every semantic stage above has
already run and none may be skipped to reach it; it is the same derivation
observed one step before its terminal. Publication consumes a `VerifiedFabricClosure` and
returns the published `ArtifactRootReference`.

A caller that requires an Artifact publishes. A caller that only requires a
verified candidate and its exact identity, such as a search harness evaluating
a candidate it may discard, may hold the closure and publish later or never.
A `VerifiedFabricClosure` is a transient in-process value, not an Artifact
family, a persistent schema, or a second identity authority: until publication
no other owner may reference it, nothing may depend on it, and any value
derived from it is a removable projection.

Fabric failure atomicity means one root object is complete or absent; it does
not mean that the root and its dependency graph become visible in one
transaction. Dependencies are independently valid, immutable, shareable
Expand Down
34 changes: 34 additions & 0 deletions docs/spec-loom-stack.md
Original file line number Diff line number Diff line change
Expand Up @@ -751,6 +751,40 @@ identity remain Loom-owned; Loom does not maintain a gem5 patch stack or edit
the pinned submodule source. A gem5 upgrade is a separate exact dependency
change with Runtime ABI and System simulation conformance.

Ray is the one modified dependency. It is a Loom-owned fork at
`externals/ray`, and Loom does maintain its patch stack. An upgrade is a
separate exact dependency change: it selects an exact upstream Ray release,
rebases the patch stack onto it, reruns the ML environment's conformance
anchors, and atomically pins both the resulting fork commit and the upstream
release tag it was built from. Recording only the fork commit would be
insufficient, since the patch stack is the difference between the two and a
fork commit alone does not say what it is a patch stack against.

The patch adds graph-space support to the sampler and connector pipeline, which
[ML Environment Core](spec-ml-core-environment.md#rllib-environment-definition)
requires because every ML search environment's observation is a variable-size
graph. That capability is the only reason the fork exists; a patch that is not
required by a Loom-owned contract belongs upstream instead. Carrying a patch
stack is a standing cost recorded here rather than a precedent for modifying
any other pinned dependency.

The fork is admitted on a narrower footing than the others: no Artifact,
Evidence, or semantic configuration schema depends on it, so a rebase can break
training without invalidating a semantic artifact. It does reach the search
harness's own training views, which are digest-covered like any other, so a
rebase that changed their vocabulary would change a training run's identity.
That is the intended blast radius, and it is the whole of it.

Every Python runtime a search-harness document states conformance against is
pinned here to an exact version, and the pinned Ray fork is required to be
compatible with all of them. Currently that is the Gymnasium release the
[ML Environment Core](spec-ml-core-environment.md#rllib-environment-definition)
targets and the PyTorch release
[ML Model Core](spec-ml-core-model.md#module-boundary) targets. They are pinned
here rather than in the documents that consume them, so that a second ML
document adopting either does not give the stack two places to disagree about
which runtime it runs on.

## Verification Boundary

Tests protect stable semantic anchors: canonical schema and identity,
Expand Down
Loading