Expand the portable Pop.Standard foundation - #22
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Expand the first executable
Pop.Standardfoundation with direct, portablePop implementations for common sequence and integer operations.
This change adds 22
Pop.Sequenceoperations and sevenPop.Mathoperations, 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
ActorandClusterin the public ecosystem catalog, and adds onemachine-readable public-root inventory.
Architecture traceability
Pop.Sequencegains inspection, aggregation, visitation, lazy bounds, concatenation, and checked integer aggregate prototypes;Pop.Mathgains direct integer math prototypes. Generic specialization capsules include only transitively reachable private data.Verification
cargo fmt --all -- --checkcargo check --workspace --all-targetscargo test --workspace --all-targetscargo clippy --workspace --all-targets -- -D warningsIf 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 reportedfiles differs from
origin/master; this PR does not broaden its standardlibrary scope with an unrelated GC refactor.
Additional passing validation:
cargo build --workspace --all-targetsgit diff --checkReview notes
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.