3.3 KiB
3.3 KiB
ASL-CORE Patch: Block Semantics
1. Purpose
Introduce blocks into the ASL-CORE semantic model to provide a minimal foundation for:
- Artifact → block → bytes mapping
- Immutability guarantees
- Snapshot-safe references
The patch is minimal, leaving lifecycle, sealing, retention, and GC to ASL-STORE-INDEX.
2. New Core Concepts
2.1 Block
-
Definition: A block is an atomic, immutable storage unit containing a sequence of bytes.
-
Identifier:
BlockID— opaque and unique across the system. -
Properties:
- Contents are immutable once created (semantic guarantee).
- Blocks can be referenced by one or more artifacts.
- Blocks are existential; their layout, size, and packing are implementation concerns.
-
Notation:
(BlockID, offset, length)denotes a byte slice within a block.- Offset and length must refer to bytes inside the block.
- Semantic operations may reference these slices but cannot modify them.
2.2 Artifact and Block Relationship
- Each Artifact in ASL-CORE can be fully or partially contained in one or more blocks.
- Semantic mapping:
ArtifactKey → {ArtifactLocation1, ArtifactLocation2, ...}
Where each ArtifactLocation is:
ArtifactLocation = (BlockID, offset, length)
-
Guarantees:
- Determinism: Given the same ArtifactKey, the locations are always the same at the same snapshot.
- Immutability: The bytes addressed by ArtifactLocation never change.
- Snapshot consistency: If an artifact is referenced by a snapshot, the bytes remain valid for the lifetime of that snapshot.
2.3 Block Visibility and Referencing
- Blocks themselves are not directly visible in ASL-CORE; they exist as supporting storage units for artifacts.
- ArtifactKey references to blocks must only point to immutable bytes.
- Operations on artifacts cannot modify or relocate block bytes; only new artifacts can be created referencing blocks.
2.4 Minimal Invariants
- Block Immutability: Once a block exists semantically, its bytes never change.
- Artifact Integrity: ArtifactKey → ArtifactLocation mapping is stable and deterministic.
- Existence: A referenced BlockID must exist in the system at the semantic level (physical existence is store-level concern).
- Slice Validity:
(offset, length)is always within the bounds of the block.
2.5 Non-Goals of ASL-CORE Regarding Blocks
- Sealing mechanics – handled by ASL-STORE-INDEX
- Retention / GC – handled by ASL-STORE-INDEX
- Snapshot pinning or lifecycle events – store concern
- Size class, packing, or performance optimizations – store concern
3. Summary
This patch introduces:
- BlockID: opaque, unique identifier
- Blocks: immutable byte sequences, existential atoms
- ArtifactLocation:
(BlockID, offset, length)primitive to map artifacts to blocks
It does not define storage, GC, or lifecycle mechanics, leaving these to ASL-STORE-INDEX.
Semantic impact:
- Artifacts can now reference storage in a stable, deterministic, and immutable way.
- Higher layers (index, store, encoding) can build on blocks for deterministic persistence, snapshot safety, and replay without modifying ASL-CORE semantics.