refactor(dfir_rs): use slotmap SecondaryMap for metrics#2810
refactor(dfir_rs): use slotmap SecondaryMap for metrics#2810MingweiSamuel wants to merge 2 commits intomainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Refactors DFIR runtime metrics to use slotmap::SecondaryMap keyed by dfir_lang graph IDs, removing the previous raw-index conversion approach and aligning generated/runtime code around full slotmap key reconstruction.
Changes:
- Replace
SecondarySlotVec<SubgraphTag/_>&SecondarySlotVec<HandoffTag/_>indfir_rs::scheduled::metricswithSecondaryMap<GraphSubgraphId/_>&SecondaryMap<GraphNodeId/_>, and makedfir_langa non-optionaldfir_rsdependency (plus re-exports for generated code). - Update DFIR Lang operator codegen to avoid the state API in favor of local captured state and introduce
OperatorWriteOutput::write_tick_endfor'tickpersistence resets; removenext_stratumand simplify graph visualization labels (no “stratum N”). - Update telemetry and many graph snapshot expectations, add an inline test for mutual
defer_tick, and refresh compile-fail stderr outputs.
Reviewed changes
Copilot reviewed 239 out of 239 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| hydro_test/src/local/snapshots/chat_app_replay.snap | Snapshot update: subgraph labels simplified (remove stratum text). |
| hydro_test/src/local/snapshots/chat_app_no_replay.snap | Snapshot update: graph structure/labels adjusted to new graph writing behavior. |
| hydro_lang/src/telemetry/emf.rs | Emit slotmap IDs using Debug formatting for EMF dimensions. |
| dfir_rs/tests/surface_inline.rs | Add test covering mutual defer_tick back-edges/toposort handling. |
| dfir_rs/tests/snapshots/surface_unique__unique_tick_push@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_unique__unique_tick_push@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_unique__unique_tick_pull@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_unique__unique_tick_pull@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_unique__unique_static_push@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_unique__unique_static_push@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_unique__unique_static_pull@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_unique__unique_static_pull@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_unique__unique@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_unique__unique@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_stratum__tick_loop_3@graphvis_mermaid.snap | Snapshot update reflecting removed stratum labels and graph shape changes. |
| dfir_rs/tests/snapshots/surface_stratum__tick_loop_2@graphvis_mermaid.snap | Snapshot update reflecting removed stratum labels and graph shape changes. |
| dfir_rs/tests/snapshots/surface_stratum__tick_loop_2@graphvis_dot.snap | Snapshot update reflecting removed stratum labels and graph shape changes. |
| dfir_rs/tests/snapshots/surface_stratum__tick_loop_1@graphvis_mermaid.snap | Snapshot update reflecting removed stratum labels and graph shape changes. |
| dfir_rs/tests/snapshots/surface_stratum__tick_loop_1@graphvis_dot.snap | Snapshot update reflecting removed stratum labels and graph shape changes. |
| dfir_rs/tests/snapshots/surface_stratum__subgraph_stratum_consolidation@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_stratum__subgraph_stratum_consolidation@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_stratum__difference_b@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_stratum__difference_b@graphvis_dot.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_stratum__difference_a@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_stratum__difference_a@graphvis_dot.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_stratum__defer_lazy@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_stratum__defer_lazy@graphvis_dot.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_sort__sort_by_key@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_sort__sort_by_key@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_sort__sort@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_sort__sort@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__state_unused@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__state_unused@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__state@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__state@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__reduce_singleton_push@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__reduce_singleton_push@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__reduce_singleton@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__reduce_singleton@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__multi_tick@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__multi_tick@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__fold_singleton_push@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__fold_singleton_push@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__fold_singleton@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__fold_singleton@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__fold_cross@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_singleton__fold_cross@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_short_circuit_state__resolve_futures_cross_singleton@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_short_circuit_state__resolve_futures_cross_singleton@graphvis_dot.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_scheduling__tick_loop@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_scheduling__tick_loop@graphvis_dot.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_scheduling__stratum_loop@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_scheduling__stratum_loop@graphvis_dot.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_scheduling__persist_stratum_run_available@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_scheduling__persist_stratum_run_available@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_scheduling__persist_stratum_run_async@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_scheduling__persist_stratum_run_async@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_scheduling__nospin_issue_961@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_scheduling__nospin_issue_961@graphvis_dot.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_scan__scan_tick@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_scan__scan_tick@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_scan__scan_static@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_scan__scan_static@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_scan__scan_push@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_scan__scan_push@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_reduce_keyed__reduce_keyed_tick@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_reduce_keyed__reduce_keyed_tick@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_reduce_keyed__reduce_keyed_static@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_reduce_keyed__reduce_keyed_static@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_reduce_keyed__reduce_keyed_infer_basic@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_reduce_keyed__reduce_keyed_infer_basic@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_reduce__reduce_tick@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_reduce__reduce_tick@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_reduce__reduce_sum@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_reduce__reduce_sum@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_reduce__reduce_static@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_reduce__reduce_static@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_persist__persist_push@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_persist__persist_push@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_persist__persist_pull@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_persist__persist_pull@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_persist__persist_mut_keyed@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_persist__persist_mut_keyed@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_persist__persist_mut@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_persist__persist_mut@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_persist__persist_basic@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_persist__persist_basic@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_persist__persist@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_persist__persist@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_multiset_delta__multiset_delta@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_multiset_delta__multiset_delta@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_lattice_bimorphism_persist_insertion__cartesian_product_multi_tick_tee@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_lattice_bimorphism_persist_insertion__cartesian_product_multi_tick_tee@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_lattice_bimorphism_persist_insertion__cartesian_product_multi_tick_identity@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_lattice_bimorphism_persist_insertion__cartesian_product_multi_tick_identity@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_lattice_bimorphism_persist_insertion__cartesian_product_multi_tick@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_lattice_bimorphism_persist_insertion__cartesian_product_multi_tick@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_lattice_bimorphism__join@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_lattice_bimorphism__join@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_lattice_bimorphism__cartesian_product_tick_state@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_lattice_bimorphism__cartesian_product_tick_state@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_lattice_bimorphism__cartesian_product_1401@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_lattice_bimorphism__cartesian_product_1401@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_lattice_bimorphism__cartesian_product@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_lattice_bimorphism__cartesian_product@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_join__tick_tick@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_join__tick_static@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_join__static_tick@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_join__static_static@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_forwardref__forwardref_basic_middle@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_forwardref__forwardref_basic_middle@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_forwardref__forwardref_basic_forward@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_forwardref__forwardref_basic_forward@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_forwardref__forwardref_basic_backward@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_forwardref__forwardref_basic_backward@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_fold_keyed__fold_keyed_typed_basic@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_fold_keyed__fold_keyed_typed_basic@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_fold_keyed__fold_keyed_tick@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_fold_keyed__fold_keyed_tick@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_fold_keyed__fold_keyed_static@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_fold_keyed__fold_keyed_static@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_fold_keyed__fold_keyed_infer_basic@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_fold_keyed__fold_keyed_infer_basic@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_fold__fold_tick@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_fold__fold_tick@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_fold__fold_static_join@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_fold__fold_static_join@graphvis_dot.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_fold__fold_static@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_fold__fold_static@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_fold__fold_sort@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_fold__fold_sort@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_examples__example_surface_flows_3_ports.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_examples__example_4_neighbors.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_difference__diff_timing@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_difference__diff_timing@graphvis_dot.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_difference__diff_static@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_difference__diff_static@graphvis_dot.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_difference__diff_multiset_timing@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_difference__diff_multiset_timing@graphvis_dot.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_difference__diff_multiset_tick_static@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_difference__diff_multiset_tick_static@graphvis_dot.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_difference__diff_multiset_static_tick@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_difference__diff_multiset_static_tick@graphvis_dot.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_difference__diff_multiset_static@graphvis_mermaid.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_difference__diff_multiset_static@graphvis_dot.snap | Snapshot update reflecting new graph structure/labels. |
| dfir_rs/tests/snapshots/surface_defer_signal__basic_2@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_defer_signal__basic_2@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_cross_singleton__basic@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_cross_singleton__basic@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_context__context_ref@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_context__context_ref@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_codegen__recv_expr@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_codegen__recv_expr@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_codegen__basic_union@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_codegen__basic_union@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_codegen__basic_3@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_codegen__basic_3@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_codegen__basic_2@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_codegen__basic_2@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_book__surface_flows_1@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_book__surface_flows_1@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_async__echo@graphvis_mermaid.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/snapshots/surface_async__echo@graphvis_dot.snap | Snapshot update for new subgraph labeling. |
| dfir_rs/tests/compile-fail-stable/surface_negative_loop.stderr | Update expected compile-fail diagnostic output. |
| dfir_rs/tests/compile-fail-stable/surface_inline_cycle.stderr | Update expected compile-fail diagnostic output. |
| dfir_rs/src/scheduled/mod.rs | Remove legacy handoff ID tag/type; simplify subgraph ID doc. |
| dfir_rs/src/scheduled/metrics.rs | Switch metrics keying/storage to SecondaryMap with graph IDs; adjust tests accordingly. |
| dfir_rs/src/lib.rs | Re-export dfir_lang and slotmap for generated code usage. |
| dfir_rs/Cargo.toml | Make dfir_lang non-optional dependency; adjust meta feature accordingly. |
| dfir_macro/src/lib.rs | Avoid panicking on partitioning failure; provide fallback mermaid string. |
| dfir_lang/src/process_singletons.rs | Update singleton substitution to borrow from RefCell directly (no context state API). |
| dfir_lang/src/graph/ops/unique.rs | Switch from state API usage to local set + tick-end reset handling. |
| dfir_lang/src/graph/ops/source_file.rs | Delegate to source_stream with updated OperatorWriteOutput destructuring. |
| dfir_lang/src/graph/ops/scan_async_blocking.rs | Replace state API with local RefCell + tick-end reset for tick persistence. |
| dfir_lang/src/graph/ops/resolve_futures.rs | Replace state API storage with local futures queue variable. |
| dfir_lang/src/graph/ops/repeat_n.rs | Replace state API with local RefCell<Vec<_>> state. |
| dfir_lang/src/graph/ops/reduce_no_replay.rs | Replace state API with local RefCell<Option<_>> + tick-end reset. |
| dfir_lang/src/graph/ops/reduce_keyed.rs | Replace state API with local RefCell<HashMap<..>> + tick-end reset. |
| dfir_lang/src/graph/ops/reduce.rs | Replace state API with local RefCell<Option<_>> + tick-end reset. |
| dfir_lang/src/graph/ops/prefix.rs | Replace state API with local RefCell<Vec<_>> state. |
| dfir_lang/src/graph/ops/persist_mut_keyed.rs | Replace state API with local map state in codegen. |
| dfir_lang/src/graph/ops/persist_mut.rs | Replace state API with local sparse vec state in codegen. |
| dfir_lang/src/graph/ops/persist.rs | Replace state API with local RefCell<Vec<_>> state in codegen. |
| dfir_lang/src/graph/ops/next_stratum.rs | Remove next_stratum operator definition. |
| dfir_lang/src/graph/ops/multiset_delta.rs | Replace state API with local RefCell<HashMap<_>> + tick swap logic updates. |
| dfir_lang/src/graph/ops/mod.rs | Add write_tick_end to OperatorWriteOutput; derive serde traits for DelayType; remove next_stratum from operator list. |
| dfir_lang/src/graph/ops/lattice_reduce.rs | Propagate new write_tick_end field when delegating to reduce. |
| dfir_lang/src/graph/ops/lattice_bimorphism.rs | Remove state API access; use direct references to state handles. |
| dfir_lang/src/graph/ops/join_fused_rhs.rs | Forward new write_tick_end while delegating to join_fused_lhs. |
| dfir_lang/src/graph/ops/join_fused_lhs.rs | Update join state generation to local storage + tick-end resets. |
| dfir_lang/src/graph/ops/join_fused.rs | Update join state generation to local storage + tick-end resets. |
| dfir_lang/src/graph/ops/fold_no_replay.rs | Replace state API with local RefCell + tick-end reset. |
| dfir_lang/src/graph/ops/fold_keyed.rs | Replace state API with local RefCell<HashMap<_>> + tick-end reset. |
| dfir_lang/src/graph/ops/fold.rs | Replace state API with local RefCell + tick-end reset. |
| dfir_lang/src/graph/ops/enumerate.rs | Replace state API counter with local range + tick-end reset. |
| dfir_lang/src/graph/ops/difference.rs | Forward write_tick_end while delegating to anti_join. |
| dfir_lang/src/graph/ops/dest_sink_serde.rs | Delegate to dest_sink with updated OperatorWriteOutput destructuring. |
| dfir_lang/src/graph/ops/dest_file.rs | Delegate to dest_sink with updated OperatorWriteOutput destructuring. |
| dfir_lang/src/graph/ops/defer_tick.rs | Update operator docs to remove mention of next_stratum. |
| dfir_lang/src/graph/ops/defer_signal.rs | Replace state API buffer with local vector in codegen. |
| dfir_lang/src/graph/ops/cross_singleton.rs | Replace state API singleton storage with local option + tick-end reset. |
| dfir_lang/src/graph/ops/chain_first_n.rs | Delegate to union with updated OperatorWriteOutput destructuring. |
| dfir_lang/src/graph/ops/assert_eq.rs | Replace state API index cell with local Cell. |
| dfir_lang/src/graph/ops/_lattice_join_fused_join.rs | Forward write_tick_end when delegating to join_fused. |
| dfir_lang/src/graph/ops/_lattice_fold_batch.rs | Replace state API lattice state with local value. |
| dfir_lang/src/graph/graph_write.rs | Simplify subgraph writer API and remove stratum from graph labels. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| write_prologue_after, | ||
| write_iterator, | ||
| write_iterator_after, | ||
| .. | ||
| } = (super::dest_sink::DEST_SINK.write_fn)(&wc, diagnostics)?; |
There was a problem hiding this comment.
DEST_FILE delegates to DEST_SINK and currently uses .. when destructuring/returning OperatorWriteOutput, which can drop delegated fields such as write_tick_end. Please destructure and forward all fields explicitly to avoid losing delegated behavior when new fields are added.
| /// * `resolved_idents` - The context `StateHandle` varnames that correspond 1:1 and in the same | ||
| /// order as the singleton references within `tokens` (found in-order via [`preprocess_singletons`]). | ||
| /// | ||
| /// Generates borrowing code ([`std::cell::RefCell::borrow_mut`]). Use | ||
| /// [`postprocess_singletons_handles`] for just the `StateHandle`s. | ||
| /// Generates borrowing code ([`std::cell::RefCell::borrow`]). Use | ||
| /// [`postprocess_singletons_handles`] for just the raw idents. |
There was a problem hiding this comment.
postprocess_singletons docs say resolved_idents are context StateHandle varnames, but the implementation now expects raw idents that support borrow() (e.g., RefCell<T>). Please update the parameter docs to match the new codegen contract to avoid misleading future changes.
| let OperatorWriteOutput { | ||
| write_prologue: write_prologue_stream, | ||
| write_prologue_after, | ||
| write_iterator, | ||
| write_iterator_after, | ||
| .. | ||
| } = (super::source_stream::SOURCE_STREAM.write_fn)(&wc, diagnostics)?; |
There was a problem hiding this comment.
This delegating operator destructures OperatorWriteOutput using .., which can silently drop newly-added fields (e.g., write_tick_end) from the delegated operator. Please bind and forward all fields explicitly so tick-end cleanup/reset code isn't lost.
| let OperatorWriteOutput { | ||
| write_prologue, | ||
| write_prologue_after, | ||
| write_iterator, | ||
| write_iterator_after, | ||
| .. | ||
| } = (super::dest_sink::DEST_SINK.write_fn)(wc, diagnostics)?; |
There was a problem hiding this comment.
This delegating operator destructures OperatorWriteOutput with .., which can drop fields such as write_tick_end coming from DEST_SINK. Please destructure and forward all fields explicitly to preserve delegated behavior as OperatorWriteOutput evolves.
| let OperatorWriteOutput { | ||
| write_prologue, | ||
| write_prologue_after, | ||
| write_iterator, | ||
| write_iterator_after, | ||
| .. | ||
| } = (super::union::UNION.write_fn)(wc, diagnostics)?; |
There was a problem hiding this comment.
This delegating operator destructures OperatorWriteOutput with .., which can silently drop fields (notably write_tick_end) from the delegated UNION operator. Please bind/forward all fields explicitly so any tick-end code from the delegate is preserved.
90035bb to
608f194
Compare
fbd9d9f to
98963dd
Compare
…m slot_vec tags Replace custom `SecondarySlotVec<SubgraphTag, _>` and `SecondarySlotVec<HandoffTag, _>` in DfirMetrics with `slotmap::SecondaryMap<GraphSubgraphId, _>` and `SecondaryMap<GraphNodeId, _>` from dfir_lang. This eliminates the `slotmap_raw_idx` conversion hack in codegen — keys are now reconstructed via `slotmap::KeyData::from_ffi()` which preserves the full key (including version), not just the raw index. Make `dfir_lang` a non-optional dependency of `dfir_rs` (it was already always compiled via `dfir_macro`). Re-export `dfir_lang` and `slotmap` from `dfir_rs` for use in generated code. Remove `HandoffTag` and `HandoffId` from `scheduled/mod.rs` (no longer needed). Update `hydro_lang/src/telemetry/emf.rs` to use `Debug` formatting for slotmap keys instead of `Display`. Co-authored-by: Infinity 🤖 <infinity@hydro.run> PR: #2810
Remove the `slotmap_key_ffi` helper and inline `key.data().as_ffi()` at each call site. This makes the symmetry with the generated `KeyData::from_ffi(ffi).into()` more visible. Co-authored-by: Infinity 🤖 <infinity@hydro.run> PR: #2810
3f07d0e to
c56d8d8
Compare
140ed85 to
b09925b
Compare
c56d8d8 to
37ebe2e
Compare
b09925b to
d7b8591
Compare
af90c89 to
094abd4
Compare
13ed945 to
53de2d8
Compare
…m slot_vec tags Replace custom `SecondarySlotVec<SubgraphTag, _>` and `SecondarySlotVec<HandoffTag, _>` in DfirMetrics with `slotmap::SecondaryMap<GraphSubgraphId, _>` and `SecondaryMap<GraphNodeId, _>` from dfir_lang. This eliminates the `slotmap_raw_idx` conversion hack in codegen — keys are now reconstructed via `slotmap::KeyData::from_ffi()` which preserves the full key (including version), not just the raw index. Make `dfir_lang` a non-optional dependency of `dfir_rs` (it was already always compiled via `dfir_macro`). Re-export `dfir_lang` and `slotmap` from `dfir_rs` for use in generated code. Remove `HandoffTag` and `HandoffId` from `scheduled/mod.rs` (no longer needed). Update `hydro_lang/src/telemetry/emf.rs` to use `Debug` formatting for slotmap keys instead of `Display`. Co-authored-by: Infinity 🤖 <infinity@hydro.run> PR: #2810
Remove the `slotmap_key_ffi` helper and inline `key.data().as_ffi()` at each call site. This makes the symmetry with the generated `KeyData::from_ffi(ffi).into()` more visible. Co-authored-by: Infinity 🤖 <infinity@hydro.run> PR: #2810
53de2d8 to
5c872dd
Compare
STACK #2801
Replace custom
SecondarySlotVec<SubgraphTag, _>andSecondarySlotVec<HandoffTag, _>in DfirMetrics withslotmap::SecondaryMap<GraphSubgraphId, _>andSecondaryMap<GraphNodeId, _>from dfir_lang.This eliminates the
slotmap_raw_idxconversion hack in codegen —keys are now reconstructed via
slotmap::KeyData::from_ffi()whichpreserves the full key (including version), not just the raw index.
Make
dfir_langa non-optional dependency ofdfir_rs(it was alreadyalways compiled via
dfir_macro). Re-exportdfir_langandslotmapfrom
dfir_rsfor use in generated code.Update
hydro_lang/src/telemetry/emf.rsto useDebugformatting forslotmap keys instead of
Display.