Skip to content

Iterative Execution 4c#6757

Draft
gatesn wants to merge 4 commits intongates/execution-3from
ngates/execution-4c
Draft

Iterative Execution 4c#6757
gatesn wants to merge 4 commits intongates/execution-3from
ngates/execution-4c

Conversation

@gatesn
Copy link
Contributor

@gatesn gatesn commented Mar 2, 2026

Summary

Closes: #000

Testing

This was referenced Mar 2, 2026
Copy link
Contributor Author

gatesn commented Mar 2, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@gatesn gatesn mentioned this pull request Mar 2, 2026
@codspeed-hq
Copy link

codspeed-hq bot commented Mar 2, 2026

Merging this PR will degrade performance by 10.2%

❌ 1 regressed benchmark
✅ 169 untouched benchmarks
⏩ 2250 skipped benchmarks1

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation map_each[BufferMut<i32>, 128] 770.6 ns 858.1 ns -10.2%

Comparing ngates/execution-4c (2f987cf) with ngates/execution-3 (b5b1652)

Open in CodSpeed

Footnotes

  1. 2250 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@gatesn gatesn changed the title feat: migrate single-child wrappers to iterative execute (phase 4b) Iterative Execution 4c Mar 2, 2026
@gatesn gatesn force-pushed the ngates/execution-4c branch from 5fe80df to 12a70d5 Compare March 2, 2026 19:04
@gatesn gatesn added the changelog/feature A new feature label Mar 2, 2026
@gatesn gatesn force-pushed the ngates/execution-3 branch from 4223d1f to 2b9697c Compare March 2, 2026 19:19
@gatesn gatesn force-pushed the ngates/execution-4c branch 3 times, most recently from 24721b7 to d825820 Compare March 2, 2026 20:13
@gatesn gatesn force-pushed the ngates/execution-3 branch from 5cd1e99 to 6c8dcdc Compare March 2, 2026 20:13
gatesn and others added 4 commits March 2, 2026 15:43
Replace recursive child.execute() calls with ExecutionStep returns in
Slice, Filter, Masked, FoR, and ZigZag vtables. Each now checks if its
child is already in the needed form (canonical/primitive/constant) and
returns Done directly, or returns ExecuteChild(0)/ColumnarizeChild(0)
to let the scheduler handle child execution iteratively.

Also handles ConstantArray children explicitly to prevent infinite loops
in the scheduler (since constants are already columnar and won't be
re-executed). FoR decompress is split into try_fused_decompress and
apply_reference for reuse without recursive execution.

Signed-off-by: Nicholas Gates <nick@nickgates.com>

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Convert Dict, ALP-RD, DecimalByteParts, and Zstd VTable::execute
implementations to return ExecutionStep instead of recursively calling
execute on children. Each encoding checks if children are already in
the expected form (Primitive/Canonical/Constant) before proceeding,
returning ExecuteChild(n) to let the scheduler handle child execution.

Signed-off-by: Nicholas Gates <nick@nickgates.com>

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… 4d)

Convert the last two VTable::execute implementations that had recursive
execute calls. SharedVTable now checks if current array (cached or
source) is already columnar, otherwise returns ExecuteChild(0).
ZstdBuffersVTable decompresses and returns Done(inner_array), letting
the scheduler handle further execution of the decompressed result.

Signed-off-by: Nicholas Gates <nick@nickgates.com>

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gatesn gatesn force-pushed the ngates/execution-4c branch from d825820 to 2f987cf Compare March 2, 2026 20:43
@gatesn gatesn force-pushed the ngates/execution-3 branch from 6c8dcdc to b5b1652 Compare March 2, 2026 20:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/feature A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant