4.6 KiB
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.mdas 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.mdinstead 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.9to current-beta wording while preserving codes, schema, spans, expected/found values, hints, and output shape. - Add focused
reserved_generic_collection_beta15coverage and run it fromscripts/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.mdlinks todocs/language/STDLIB_API.mdfor 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-rootcheckreject 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
rgcheck for stale beta14-only current-stage phrasing across the same touched docs
- Run focused compiler checks:
cargo test --test reserved_generic_collection_beta15cargo test --test diagnostics_contractcargo test --test formattercargo test --test project_moderg -n "not supported in beta\\.9" compiler/src tests
- Do not commit, tag, push, or run release publication from this worker scope.