slovo/.llm/BETA_15_RESERVED_GENERIC_COLLECTION_BOUNDARY_HARDENING.md

4.6 KiB

1.0.0-beta.15 Reserved Generic Collection Boundary Hardening And Collection Ledger

Status: release scope for 1.0.0-beta.15.

1.0.0-beta.15 is a docs/design and compiler-boundary hardening slice for the existing concrete collection and value-family surface. It keeps the 1.0.0-beta source language, typed core, runtime, standard-library/API surface, diagnostic output shape, diagnostic codes, diagnostic schema, benchmark metadata schema, ABI/layout behavior, compiler-known runtime names, and performance claims unchanged while rewording reserved generic/map/set diagnostic prose away from beta.9-specific text.

Scope

  • Add docs/language/COLLECTIONS.md as the collection/value-family ledger.
  • Inventory the current concrete vector, option, result, and related option/result-returning facade surfaces by linking to docs/language/STDLIB_API.md instead of duplicating generated counts.
  • Record design pressure from duplicated concrete vector, option, and result helper families.
  • Define prerequisites before executable generics, generic aliases, maps, sets, iterators, mutable vectors, and slice/view APIs can be promoted.
  • Record current unsupported diagnostics as boundary evidence, not behavior changes.
  • Centralize reserved generic/collection diagnostics for lowerer, formatter, and checker paths in compiler/src/reserved.rs.
  • Reword affected reserved-boundary snapshots from beta.9 to current-beta wording while preserving codes, schema, spans, expected/found values, hints, and output shape.
  • Add focused reserved_generic_collection_beta15 coverage and run it from scripts/release-gate.sh.
  • Update README, post-beta roadmap, language/compiler roadmaps, language spec, release notes, compiler release notes, and this release contract to introduce beta15.

Acceptance

  • Public docs name current release/stage 1.0.0-beta.15.
  • docs/language/COLLECTIONS.md links to docs/language/STDLIB_API.md for exact public helper signatures and does not duplicate generated helper counts.
  • The ledger inventories the current concrete collection/value-family surface: five concrete vector modules, concrete option families, concrete result families, and option/result-returning host/parsing facades.
  • The ledger records why repeated concrete vector/option/result facades create design pressure for later generic work.
  • The ledger defines promotion prerequisites for executable generics, generic aliases, maps, sets, iterators, mutable vectors, and slice/view APIs.
  • The docs state that current unsupported diagnostics are boundaries, that beta15 rewords only reserved-boundary diagnostic prose, and that beta15 does not change diagnostic output shape, codes, schema, spans, expected/found values, or hints.
  • Focused compiler tests prove check, fmt --check, and project-root check reject reserved generic/map/set surfaces with stage-neutral current beta wording.
  • Explicit exclusions include no source-language change, no runtime change, no stdlib/API surface change, no diagnostic output shape/code/schema change, no benchmark metadata schema change, no ABI/layout change, no performance claim, and no stable API freeze.

Explicit Non-Scope

  • no executable generics, traits, inference, monomorphization, or generic stdlib dispatch
  • no generic aliases or parameterized aliases
  • no map or set semantics
  • no iterator API
  • no mutable vector API
  • no slice/view API
  • no new compiler-known runtime names or helper symbols
  • no standard-library/API addition, removal, rename, or stable freeze
  • no diagnostic output shape, code, schema, span, expected/found, or hint change
  • no diagnostic policy change beyond reserved-boundary prose rewording
  • no benchmark metadata schema change
  • no source-language syntax, typed-core, lowering, runtime, ABI/layout, or optimizer change
  • no performance threshold or cross-machine performance claim
  • no worker-owned release publication work before controller review and gates

Expected Controller Verification

  • Run lightweight docs checks:
    • git diff --check -- README.md docs/POST_BETA_ROADMAP.md docs/language/ROADMAP.md docs/language/SPEC-v1.md docs/language/RELEASE_NOTES.md docs/language/COLLECTIONS.md .llm/BETA_15_RESERVED_GENERIC_COLLECTION_BOUNDARY_HARDENING.md
    • run an rg check for stale beta14-only current-stage phrasing across the same touched docs
  • Run focused compiler checks:
    • cargo test --test reserved_generic_collection_beta15
    • cargo test --test diagnostics_contract
    • cargo test --test formatter
    • cargo test --test project_mode
    • rg -n "not supported in beta\\.9" compiler/src tests
  • Do not commit, tag, push, or run release publication from this worker scope.