Skip to content

Latest commit

 

History

History
37 lines (23 loc) · 1.63 KB

File metadata and controls

37 lines (23 loc) · 1.63 KB

Imageflow Project Instructions

SIMD & Dispatch Crates

multiversion is allowed in this project for autovectorization dispatch on scalar loops (e.g., scaling.rs). Prefer the defaults provided by multiversed for new code — use multiversion only where multiversed doesn't fit.

For explicit SIMD intrinsics, use archmage (already in use for transpose.rs).

f32/f64 Clamping

Do NOT replace min(max(...)) patterns with .clamp() on floats. f32::clamp() propagates NaN, while min(max(...)) suppresses it. In image processing pipelines, NaN propagation turns a single bad pixel into a full-image corruption. The min(max(...)) pattern is intentional NaN defense.

Git Workflow

Always commit cargo fmt changes as a separate commit from code changes.

Test Commands

All integration tests live in imageflow_core/tests/integration/ as a single binary.

just test              # run all tests with nextest
just test-filter NAME  # run tests matching NAME
just test-update       # run tests, auto-accept checksums within tolerance
just test-replace      # reset all checksum baselines to current output
just test-list         # list all test names
just test-build        # compile-check tests without running

Checksum TOML files: imageflow_core/tests/visuals/checksums/ Reference images: imageflow_core/tests/visuals/checksums/images/

Known Bugs

Delayed TODOs

  • Licensing/caching module (imageflow_helpers/src/unused/): ~2300 lines of draft licensing, caching, and polling code. Currently unreferenced (no mod declaration). Needs review, modernization, and wiring into the build when ready to complete.