Skip to content

Expand the portable Pop.Standard foundation - #22

Merged
kleeedolinux merged 1 commit into
masterfrom
library/standard-foundation
Jul 14, 2026
Merged

Expand the portable Pop.Standard foundation#22
kleeedolinux merged 1 commit into
masterfrom
library/standard-foundation

Conversation

@serene1491

Copy link
Copy Markdown
Contributor

Summary

Expand the first executable Pop.Standard foundation with direct, portable
Pop implementations for common sequence and integer operations.

This change adds 22 Pop.Sequence operations and seven Pop.Math
operations, removes their duplicate Rust prototypes, records append-only API
identities, and documents evaluation, allocation, overflow, and laziness
contracts. The APIs remain explicitly marked as prototypes and do not enlarge
the fixed ADR 0058 prelude.

The compiler now emits portable generic specialization capsules containing only
reachable private classes and methods, and remaps statement-form indirect
callees during specialization. This makes the portable algorithms usable across
Bubble boundaries without leaking unrelated private declarations.

The change also repairs duplicate ADR identities introduced by merged work,
places Actor and Cluster in the public ecosystem catalog, and adds one
machine-readable public-root inventory.

Architecture traceability

  • Authorizing architecture section or ADR: ADR 0058 and ADRs 0061 through 0067, built on ADRs 0030, 0031, 0032, 0053, and 0054.
  • New or changed public contract: Pop.Sequence gains inspection, aggregation, visitation, lazy bounds, concatenation, and checked integer aggregate prototypes; Pop.Math gains direct integer math prototypes. Generic specialization capsules include only transitively reachable private data.
  • Architecture documents, examples, or terminology updated: Public library catalogs, implementation plan, roadmap, closed decisions, API examples, API baseline, Actor/Cluster placement, ADR index, and renamed ADR references are synchronized.

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

If a check was not run, explain why:

All listed commands were run. Clippy remains red on seven warnings in the
preexisting generational collector code under
crates/runtime/collector/src/generational/. None of the three reported
files differs from origin/master; this PR does not broaden its standard
library scope with an unrelated GC refactor.

Additional passing validation:

  • cargo build --workspace --all-targets
  • focused API-baseline and foundation-source tests
  • MIR interpreter and LLVM sequence/math conformance tests
  • architecture conformance tests (21 tests)
  • Markdown relative-link validation
  • ADR identity and stale-reference validation
  • public-root catalog uniqueness and tier/status consistency
  • multiline XML documentation scan
  • merge-conflict marker scan
  • git diff --check

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 new library declarations are executable prototypes, not stable-release
compatibility promises. Broader numeric generics remain intentionally deferred
until Pop Lang has accepted nominal numeric protocols and floating-point
ordering/reproducibility contracts. The C backend remains experimental and was
not made a parity gate.

Add ordinary Pop implementations for common Sequence and integer Math
operations, with checked documentation, API identities, and cross-backend
coverage. Keep the additions outside the fixed prelude and expose their
allocation and evaluation contracts explicitly.

Restrict portable generic specialization capsules to reachable private data
and remap indirect callees during specialization so the new algorithms work
across Bubble boundaries without leaking unrelated declarations.

Synchronize merged ADR identities and place Actor and Cluster in the public
library catalog so architecture validation has one unambiguous inventory.
@kleeedolinux
kleeedolinux merged commit e4c6e74 into 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.

2 participants