mirror of
https://github.com/powdr-labs/powdr.git
synced 2026-04-20 03:03:25 -04:00
This PR turns the `FixedLookup` into a "normal" machine, i.e., it implements the `Machine` trait. This removes special handling of the fixed lookup in various places. Changes: - `Machine::take_witness_col_values` now takes a reference to `MutableState`, similar to `Machine::process_plookup`. With this, machines can still call other machines machines while finalizing. This is needed because some machines appear to call the fixed lookup when finalizing. - To handle this correctly, I changed the code such that: - Machines are finalized in the order in which they appear in the machines list (`FixedLookup` is the last machine) - When finalizing, machines can access all *following* machines, but not the once before, as they are already finalized. `FixedLookup` is still a weird machine, which is responsible to many sets of fixed columns (i.e., several ASM-machines) which might not even have the same length. But that can be fixed in a separate PR.