Tracking issue for data-layer work. Highest blast radius of all epics: the Array/Array1/Array2 traits are foundational. Do not start code before an RFC is agreed here.
Member issues
Why grouped
#156 and #199 both reshape the core array abstractions every algorithm builds on; #249 adds an IO surface whose dependency weight and wasm story need a joint call with the data-model work. Sequencing them together prevents repeated breaking changes to the same traits.
Constraints (repo conventions)
- Keep the bespoke numeric/linalg system and its performance intact — known-answer tests must pass unchanged.
- Zero-copy access via
iterator(...) / view traits is mandatory for any new storage layout.
- Dataset serialization helpers must not trigger file writes on wasm targets.
- New dependencies need a size/feature-gate justification (
parquet is heavy — expect a dedicated optional feature).
RFC requirements
Post a short RFC comment covering: trait-level changes and their breaking-change scope, CSR coverage plan (which algorithms first), parquet feature gating, no_std impact (v0.7 roadmap).
Acceptance criteria
Tracking issue for data-layer work. Highest blast radius of all epics: the
Array/Array1/Array2traits are foundational. Do not start code before an RFC is agreed here.Member issues
[T]instead ofVec<T>in traitArrayWhy grouped
#156 and #199 both reshape the core array abstractions every algorithm builds on; #249 adds an IO surface whose dependency weight and wasm story need a joint call with the data-model work. Sequencing them together prevents repeated breaking changes to the same traits.
Constraints (repo conventions)
iterator(...)/ view traits is mandatory for any new storage layout.parquetis heavy — expect a dedicated optional feature).RFC requirements
Post a short RFC comment covering: trait-level changes and their breaking-change scope, CSR coverage plan (which algorithms first), parquet feature gating, no_std impact (v0.7 roadmap).
Acceptance criteria