Skip to content

feat: iterative execution for SparseArray#7711

Open
joseph-isaacs wants to merge 5 commits intodevelopfrom
ji/iter-exe-sparse
Open

feat: iterative execution for SparseArray#7711
joseph-isaacs wants to merge 5 commits intodevelopfrom
ji/iter-exe-sparse

Conversation

@joseph-isaacs
Copy link
Copy Markdown
Contributor

@joseph-isaacs joseph-isaacs commented Apr 29, 2026

ensures sparse array is executed iteratively.
see #7674

- Add #[array_slots] macro for SparseSlots
- Add SparseParts struct + OwnedExt trait for into_parts(self)
- require_child! indices => Primitive, values => AnyCanonical
- execute_sparse takes SparseParts with resolved patches
- Inner functions (varbin, lists, fixed_size_list) take &Patches + &SparseArray for validity

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented Apr 29, 2026

Merging this PR will degrade performance by 10.6%

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

⚡ 3 improved benchmarks
❌ 1 regressed benchmark
✅ 1194 untouched benchmarks

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

Performance Changes

Mode Benchmark BASE HEAD Efficiency
WallTime runend[10M_i32_runlen_10] 195.1 µs 161.2 µs +21.05%
WallTime dynamic_dispatch_u32[10M] 169 µs 117.8 µs +43.48%
WallTime dynamic_dispatch_u32[10M] 161.8 µs 110.6 µs +46.3%
Simulation bitwise_not_vortex_buffer_mut[128] 246.1 ns 275.3 ns -10.6%

Comparing ji/iter-exe-sparse (c86df60) with develop (c73dbb2)

Open in CodSpeed

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
@joseph-isaacs joseph-isaacs marked this pull request as ready for review April 30, 2026 14:18
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>

# Conflicts:
#	encodings/sparse/src/canonical.rs
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
@joseph-isaacs joseph-isaacs added the changelog/feature A new feature label Apr 30, 2026
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
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