[go: up one dir, main page]

Restructure the `ManagerRead` functions on `EnrichedCell`

Relates to RV-325.

What

This MR changes the ManagerRead interface on EnrichedCell to read the stored and the derived values separately and to disallow reading the derived value by reference. This means the derived value must now always be Copy. The new interface is roughly:

fn enriched_cell_read_stored<V>(cell: &Self::EnrichedCell<V>) -> V::E

fn enriched_cell_read_derived<V>(cell: &Self::EnrichedCell<V>) -> V::D<Self::ManagerRoot>

fn enriched_cell_ref_stored<V>(cell: &Self::EnrichedCell<V>) -> &V::E

Why

In order to facilitate supporting EnrichedCell in the proof-generating backend and in light of the discussions on a previous version of this MR !15816 (comment 2237144031).

The follow-up MR which adds support in the proof-generating backend is !15794 (merged).

Manually Testing

make -C src/riscv all

Benchmarking

No consistent change in performance was observed on the benchmark machine.

Tasks for the Author

  • Link all Linear issues related to this MR using magic words (e.g. part of, relates to, closes).
  • Eliminate dead code and other spurious artefacts introduced in your changes.
  • Document new public functions, methods and types.
  • Make sure the documentation for updated functions, methods, and types is correct.
  • Add tests for bugs that have been fixed.
  • Put in reasonable effort to ensure that CI will pass.
    • make -C src/riscv
    • dune build src/lib_riscv
    • dune build src/rust_deps
  • Benchmark performance and populate the table above if needed.
  • Write commit messages to reflect the changes they're about.
  • Self-review your changes to ensure they are high-quality.
  • Complete all of the above before assigning this MR to reviewers.
Edited by Victor Dumitrescu

Merge request reports

Loading