Skip to content

Close the standard foundation roadmap. - #21

Merged
kleeedolinux merged 10 commits into
poplanguage:masterfrom
kleeedolinux:master
Jul 14, 2026
Merged

Close the standard foundation roadmap.#21
kleeedolinux merged 10 commits into
poplanguage:masterfrom
kleeedolinux:master

Conversation

@kleeedolinux

Copy link
Copy Markdown
Collaborator

Summary

Complete the exact ADR 0058 standard-foundation baseline.

  • Freeze the prelude, stable identities, statuses, and API baseline.
  • Keep optional values represented exclusively as T?.
  • Provide portable Sequence implementations with checked documentation and
    compiled examples.
  • Emit, verify, and round-trip deterministic .poplib artifacts during builds.
  • Synchronize the active catalog, implementation inventory, and ROADMAP section
    2.
  • Keep planned Math, Text, Bytes, resource, and task APIs outside the implemented
    baseline until their dedicated contracts are complete.

Architecture traceability

  • Authorizing architecture section or ADR:
    • ADR 0030: Native Public Standard-Library Architecture
    • ADR 0031: Public Library Tiers and Names
    • ADR 0032: Concise APIs and Explicit Cost Contracts
    • ADR 0035: Modular Base-Library Implementation
    • ADR 0053: Nominal Iteration, Sequences, and Growable Lists
    • ADR 0055: Deterministic Lock and Poplib Encoding
    • ADR 0058: Standard Foundation API Baseline
  • New or changed public contract:
    • No new stable callable API.
    • The exact bootstrap foundation and prototype boundary are now explicit.
    • Optional values use T?; no nominal Option<T> is introduced.
  • Architecture documents, examples, or terminology updated:
    • ROADMAP.md
    • architecture/16-base-libraries.md
    • architecture/22.1-core-and-portable-library-catalog.md
    • architecture/22.6-standard-library-implementation-plan.md
    • architecture/decisions/0031-public-library-tiers-and-names.md

Verification

  • Tests were added or updated before implementation where behavior changed.
  • Positive behavior is covered.
  • Negative/rejection boundaries are covered.
  • Convention, consistency, and regression coverage is present where relevant.
  • Cross-backend or differential coverage is present where relevant.
  • cargo fmt --all -- --check
  • cargo check --workspace --all-targets
  • cargo test --workspace --all-targets
  • cargo clippy --workspace --all-targets -- -D warnings

Focused checks passed for pop-standard, foundation source/HIR/MIR analysis,
.poplib round trips, Package builds, and local dependency execution.

The architecture suite passed 14 of 15 tests in the current dirty worktree. Its
only failure comes from separate uncommitted Actor/Cluster root-inventory work
and is not included in this change.

Workspace-wide check, test, and clippy were not run.

Review notes

  • No dynamic typing, runtime string lookup, broad reflection, or universal-table behavior was introduced.
  • HIR/MIR remain backend-neutral.
  • No generated artifacts, dependency caches, credentials, or editor files are included.
  • This is ready for technical review.

The broad standard-library catalog remains planned. Async/task execution remains
owned by the base-language and runtime blockers. Source-free locked dependency
selection and native implementation linking remain ordinary Package-workflow
work under ROADMAP section 4.

Move a nursery object to the mature generation as part of pin creation.\nThis guarantees a stable physical token before an unsafe foreign boundary\ncan observe the object, as required by the relocating nursery contract.\n\nAdd a regression test that forces a minor collection after pinning and\nverifies that the pinned token does not move.
Compose the relocating nursery with precise snapshot-at-the-beginning\nmarking and bounded mature sweeping. Preserve overwritten snapshot edges,\nshade late roots, pins, and newly published objects, and defer nursery\nrelocation while physical tokens remain in an active major snapshot.\n\nKeep the runtime labeled as relocation conformance until background workers,\npage/TLAB allocation, pacing, and production backend relocation support are\nproven.
Track validated region, page, and TLAB geometry in the generational\nconformance runtime. Use monomorphic page descriptors for precise layouts,\npointer-bump local Eden placement, and distinct mature, large, and pinned\ndomains.\n\nReconcile physical placement after nursery copying and promotion, remove dead\nplacements during mature sweep, and move pins to stable pinned space before\nforeign exposure. Keep production profile selection disabled until parallel\nallocation and backend relocation gates are proven.
Define the exact initial prelude and record the current public surface in a bounded, versioned API baseline. This prevents planned catalog entries and Rust-only prototypes from appearing as stable Pop APIs.\n\nResolve the trusted Sequence namespace as a low-priority prelude alias, add the accepted CancelToken identity, and cross-check baseline identities against bootstrap metadata.
Document the portable Sequence adapters with their exact generic roles, lazy or eager behavior, allocation, dispatch, and complexity contracts. Compile one embedded Pop example per public algorithm through verified HIR and MIR so documentation drift fails the foundation source suite.
Record the foundation capabilities already proven across backends and keep byte/text views, numeric helpers, resources, and tasks open until their accepted lifetime and effect contracts are implemented.
Package library objects, canonical reference metadata, checked documentation, and exact dependency hashes into a verified .poplib during pop build. This makes build output match the accepted artifact contract while leaving dependency consumption from loaded artifacts as an explicit remaining loader step.
Align the release blocker with ADR 0058's exact bootstrap boundary.
Keep planned Math, Text, Bytes, resource, and task APIs outside the
implemented baseline instead of treating catalog placement as delivery.

Remove stale nominal Option wording, record the ADR supersession, and
add a regression test that keeps baseline authority paths and roadmap
completion synchronized.
@kleeedolinux
kleeedolinux merged commit 2a3f340 into poplanguage:master Jul 14, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant