Skip to content

Introduce Materialization class and optimize pipeline operations.#44

Merged
gustavofreze merged 2 commits intomainfrom
feature/develop
Apr 16, 2026
Merged

Introduce Materialization class and optimize pipeline operations.#44
gustavofreze merged 2 commits intomainfrom
feature/develop

Conversation

@gustavofreze
Copy link
Copy Markdown
Member

No description provided.

Copilot AI review requested due to automatic review settings April 16, 2026 13:59
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces a Materialization cache for eager pipelines to support deferred evaluation and reuse of computed results across terminal calls, while updating docs and tests to reflect the intended “fused pass” execution model.

Changes:

  • Added Internal\Materialization and refactored EagerPipeline to rely on it for cached terminal access.
  • Expanded/adjusted complexity and evaluation-strategy documentation (Collectible, Pipeline, README).
  • Added test coverage for multi-predicate filtering and reducing over chained operations (eager + lazy).

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
tests/LazyCollectionTest.php Adds tests for multiple filter predicates and reduce over chained ops (lazy).
tests/EagerCollectionTest.php Adds tests for multiple filter predicates and reduce over chained ops (eager).
src/Internal/Pipeline.php Updates complexity documentation for pipeline operations.
src/Internal/Operations/Transforming/Segment.php Inlines trailing-buffer slicing logic (removes private helper).
src/Internal/Operations/Transforming/Filter.php Simplifies predicate compilation logic.
src/Internal/Materialization.php New cached materialization helper for eager evaluation.
src/Internal/EagerPipeline.php Refactors eager pipeline to use Materialization.
src/Collection.php Routes some terminal operations directly through pipeline->process(); simplifies iterator.
src/Collectible.php Updates interface docs with revised complexity/evaluation model.
composer.json Updates dev dependency PHPUnit version.
README.md Reformats docs and updates evaluation strategy explanation.
Makefile Adds show-outdated target and includes it in help output.

Comment thread src/Internal/EagerPipeline.php
Comment thread src/Internal/Pipeline.php
Comment thread src/Internal/Materialization.php
Comment thread README.md
Comment thread src/Collectible.php
@gustavofreze gustavofreze merged commit f181ef9 into main Apr 16, 2026
10 checks passed
@gustavofreze gustavofreze deleted the feature/develop branch April 16, 2026 14:08
gustavofreze added a commit that referenced this pull request Apr 16, 2026
github-actions bot added a commit that referenced this pull request Apr 16, 2026
gustavofreze added a commit that referenced this pull request Apr 16, 2026
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