Skip to content

Implement typed iteration and Bubble artifacts - #18

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

Implement typed iteration and Bubble artifacts#18
kleeedolinux merged 2 commits into
poplanguage:masterfrom
kleeedolinux:master

Conversation

@kleeedolinux

Copy link
Copy Markdown
Collaborator

Summary

Implement major Pop Lang 0.1.0 roadmap slices:

  • add nominal Iterable<T>, Iterator<T>, and Iteration<T> protocols;
  • add the typed growable List<T> runtime surface;
  • implement lazy Sequence.map and Sequence.filter, eager
    Sequence.fold, and materializing Sequence.collect in Pop source;
  • support generalized iteration through MIR, the interpreter, and LLVM;
  • complete constrained generic inference and specialization for functions,
    classes, interfaces, fields, and methods;
  • support source-free cross-Bubble generic specialization capsules;
  • add manifest-selected Package and Workspace checking, building, running,
    and documentation;
  • add deterministic local Package dependency resolution and canonical
    bubble.lock generation;
  • add canonical reference metadata and bounded .poplib emission/loading;
  • emit checked, deterministic documentation.xml;
  • synchronize ROADMAP.md with the verified completed slices.

Architecture traceability

  • Authorizing architecture section or ADR:
    • ADR 0053: nominal iteration, sequences, and growable lists;
    • ADR 0054: inferred constrained portable generics;
    • ADR 0055: deterministic lock and .poplib encoding;
    • ADR 0042: numeric ranges and loop control;
    • architecture sections 02, 04, 05, 12, 13, 14, 19, 21, and 22.1.
  • New or changed public contract:
    • nominal generalized iteration;
    • List<T> and portable Sequence operations;
    • inferred generic calls with exact nominal bounds;
    • portable generic reference capsules;
    • canonical bubble.lock, reference.metadata, and .poplib formats;
    • manifest-based pop check, pop build, pop run, and
      pop documentation.
  • Architecture documents, examples, or terminology updated:
    • accepted ADRs 0053, 0054, and 0055;
    • closed-design decisions and architecture index;
    • implementation roadmap, library catalog, conformance policy, and
      top-level ROADMAP.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

If a check was not run, explain why:

The Clippy command was run but remains failing in the expanded type-checking
implementation. It reports 59 warnings promoted to errors, primarily oversized
functions, wildcard imports, documentation omissions, and mechanical style
findings. These need focused refactoring rather than blanket suppression.

The .poplib directory integration test was added during the final compile-fix
pass rather than before its initial implementation, so the test-order checkbox
is intentionally left unchecked.

A Ruby-based check also confirmed that relative links under architecture/
resolve.

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.

Known limitations and follow-up work:

  • The complete base language and Standard Foundation remain release blockers.
  • Coroutines, async functions, cancellation, FFI, view lifetimes, checked
    casts, effects, and generated typed metadata adapters remain unfinished.
  • The full Pop.Standard API inventory and stabilization work remain open.
  • .poplib files can be emitted and verified, but Package linking does not yet
    consume the on-disk artifacts.
  • Registry, exact-Git, inherited Workspace dependencies, feature resolution,
    and reproducible dependency caching remain unfinished.
  • pop test, pop format, pop lint, and pop fix do not yet provide the
    complete Package/Workspace workflows.
  • Runtime production-GC and remaining release gates are still open.

Add the accepted nominal iteration, growable List, and portable
Sequence contracts across typing, HIR, MIR, the interpreter, LLVM,
and the native runtime. Complete constrained generic inference and
source-free cross-Bubble specialization without dynamic fallback.

Add deterministic Package and Workspace discovery, canonical lock
files, checked documentation output, and verified reference and
.poplib encodings. Keep ROADMAP.md synchronized with slices that now
have passing conformance coverage.
@kleeedolinux
kleeedolinux merged commit 24ee5b7 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