refactor(ir): compact structured array families#326
Conversation
Signed-off-by: James Goppert <james.goppert@gmail.com>
MSL Quality Gate SummaryGenerated by
Deltas compare numerator/denominator against the resolved MSL quality baseline. CI Gate SnapshotThese are the baseline-relative MSL stats checked by CI; IC progress is contextual unless simulation successes regress, and speed metrics are informational only.
CI gate details
Package Pass Rates
Per-package pass rates
MLS Contract Coverage
Trace Accuracy vs OMC
Speed vs OMCCompilation and simulation are reported separately for the 184 trace-agreeing models with valid timings on both tools. Aggregate speed summary
Speed breakdownWhere rumoca's time goes
Speed by system sizeTable 1 — Total (model → simulated results)Rumoca = front-end compile + Solve-IR/JIT build + integration; OMC =
Per-model speedup: min 0.11, median 4.77, max 9.84. Table 2 — Compilation (build-to-runnable)Rumoca = front-end compile + Solve-IR/JIT build; OMC =
Per-model speedup: min 0.19, median 5.47, max 9.82. Table 3 — Simulation (integration only)Rumoca =
Per-model speedup: min 0.00, median 1.83, max 90.81. Top 10 slowest modelsTop 10 slowest rumoca compilation modelsTrace-agreeing models ranked by rumoca time.
Top 10 slowest rumoca simulation modelsTrace-agreeing models ranked by rumoca time.
Additional Artifacts
|
Branch Naming
array-native-compileris descriptive and has noagent/prefix.Summary
equation_countsvectors in Flat and DAE structured families with one uniformequations_per_pointvalue. The DAE JSON schema moves from version 7 to 8.extents, ordinal strides, ordinal/tuple conversion, corner ordinals, and exact lazy iteration) so compact paths no longer need to enumerate a Cartesian domain.Spec / MLS Alignment
rumoca-coreowns shared structured-domain algebra; Flat/DAE own family representation; flatten owns family construction; structural owns incidence derivation; Solve owns tensor preservation/fallback reporting; codegen consumes the versioned DAE shape.Risk and Design Notes
cargo-public-apireports 32 added and 3 removed items, including public struct fields and the deliberate replacement ofequation_counts.Testing
nix develop -c cargo fmt --check: pass.nix develop -c cargo clippy --workspace --all-targets --all-features -- -D warnings: pass.nix develop -c nix shell nixpkgs#libxml2 -c cargo test --workspace: pass. The ordinary dev shell initially exposed two GALEC test failures becausexmllintwas absent; supplyinglibxml2made the complete workspace suite pass.nix develop -c cargo doc --workspace --no-deps: pass.DoublePendulumandSpringWithMass.modelica_modelssemantic gates were not run locally because this PR does not change MLS semantics.Code Size Budget (required)
The positive growth is the reusable checked domain algebra, stable preservation report, and regressions that prove large-domain behavior without enumeration. The first compression pass removed the recursive Cartesian tuple builder, per-point family vectors and remapping vectors, codegen's sequence-field parser, and structural tuple/set-based extent recovery. The next compression milestone is the review's separate compressed incidence/matching/BLT redesign; it should consume the new measurements rather than introduce a parallel scalar/tensor ownership path. No separate tracking issue is created by this draft.
Reviewer Checklist
fmt,clippy -D warnings, workspace tests, docs).#[allow(clippy::...)]added outside generated code.git commit -s) with noCo-Authored-Bytrailer.