resolve compile errors
@@ -1,8 +1,9 @@
use alloc::string::{String, ToString}; use alloc::vec; use alloc::vec::Vec; +use core::marker::PhantomData; +use plonky2::plonk::circuit_data::CommonCircuitData; use plonky2::util::serialization::{Buffer, IoResult, Read, Write}; -use core::marker::PhantomData; use plonky2::field::extension::Extendable; use plonky2::hash::hash_types::RichField;@@ -241,24 +242,29 @@ high: U32Target,
_phantom: PhantomData<F>, } -impl<F: RichField + Extendable<D>, const D: usize> SimpleGenerator<F> +impl<F: RichField + Extendable<D>, const D: usize> SimpleGenerator<F, D> for SplitToU32Generator<F, D> { fn id(&self) -> String { "SplitToU32Generator".to_string() } - fn serialize(&self, dst: &mut Vec<u8>) -> IoResult<()> { + fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> { dst.write_target(self.x)?; dst.write_target_u32(self.low)?; dst.write_target_u32(self.high) } - fn deserialize(src: &mut Buffer) -> IoResult<Self> { + fn deserialize(src: &mut Buffer, _common_data: &CommonCircuitData<F, D>) -> IoResult<Self> { let x = src.read_target()?; let low = src.read_target_u32()?; let high = src.read_target_u32()?; - Ok(Self { x, low, high, _phantom: PhantomData }) + Ok(Self { + x, + low, + high, + _phantom: PhantomData, + }) } fn dependencies(&self) -> Vec<Target> {
@@ -1,8 +1,8 @@
use alloc::format; use alloc::string::{String, ToString}; use alloc::vec::Vec; -use plonky2::util::serialization::{Buffer, IoResult, Read, Write}; use core::marker::PhantomData; +use plonky2::util::serialization::{Buffer, IoResult, Read, Write}; use itertools::unfold; use plonky2::field::extension::Extendable;@@ -16,7 +16,7 @@ use plonky2::iop::target::Target;
use plonky2::iop::wire::Wire; use plonky2::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use plonky2::plonk::circuit_builder::CircuitBuilder; -use plonky2::plonk::circuit_data::CircuitConfig; +use plonky2::plonk::circuit_data::{CircuitConfig, CommonCircuitData}; use plonky2::plonk::vars::{EvaluationTargets, EvaluationVars, EvaluationVarsBase}; use plonky2::util::ceil_div_usize;@@ -91,15 +91,19 @@ fn id(&self) -> String {
format!("{self:?}") } - fn serialize(&self, dst: &mut Vec<u8>) -> IoResult<()> { + fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> { dst.write_usize(self.num_addends)?; dst.write_usize(self.num_ops) } - fn deserialize(src: &mut Buffer) -> IoResult<Self> { + fn deserialize(src: &mut Buffer, _common_data: &CommonCircuitData<F, D>) -> IoResult<Self> { let num_addends = src.read_usize()?; let num_ops = src.read_usize()?; - Ok(Self { num_addends, num_ops, _phantom: PhantomData }) + Ok(Self { + num_addends, + num_ops, + _phantom: PhantomData, + }) } fn eval_unfiltered(&self, vars: EvaluationVars<F, D>) -> Vec<F::Extension> {@@ -247,7 +251,7 @@
constraints } - fn generators(&self, row: usize, _local_constants: &[F]) -> Vec<WitnessGeneratorRef<F>> { + fn generators(&self, row: usize, _local_constants: &[F]) -> Vec<WitnessGeneratorRef<F, D>> { (0..self.num_ops) .map(|i| { WitnessGeneratorRef::new(@@ -288,24 +292,29 @@ i: usize,
_phantom: PhantomData<F>, } -impl<F: RichField + Extendable<D>, const D: usize> SimpleGenerator<F> +impl<F: RichField + Extendable<D>, const D: usize> SimpleGenerator<F, D> for U32AddManyGenerator<F, D> { fn id(&self) -> String { "U32AddManyGenerator".to_string() } - fn serialize(&self, dst: &mut Vec<u8>) -> IoResult<()> { - self.gate.serialize(dst)?; + fn serialize(&self, dst: &mut Vec<u8>, common_data: &CommonCircuitData<F, D>) -> IoResult<()> { + self.gate.serialize(dst, common_data)?; dst.write_usize(self.row)?; dst.write_usize(self.i) } - fn deserialize(src: &mut Buffer) -> IoResult<Self> { - let gate = U32AddManyGate::deserialize(src)?; + fn deserialize(src: &mut Buffer, common_data: &CommonCircuitData<F, D>) -> IoResult<Self> { + let gate = U32AddManyGate::deserialize(src, common_data)?; let row = src.read_usize()?; let i = src.read_usize()?; - Ok(Self { gate, row, i, _phantom: PhantomData }) + Ok(Self { + gate, + row, + i, + _phantom: PhantomData, + }) } fn dependencies(&self) -> Vec<Target> {
@@ -1,8 +1,8 @@
use alloc::string::{String, ToString}; use alloc::vec::Vec; use alloc::{format, vec}; -use plonky2::util::serialization::{Buffer, IoResult, Read, Write}; use core::marker::PhantomData; +use plonky2::util::serialization::{Buffer, IoResult, Read, Write}; use itertools::unfold; use plonky2::field::extension::Extendable;@@ -18,7 +18,7 @@ use plonky2::iop::target::Target;
use plonky2::iop::wire::Wire; use plonky2::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use plonky2::plonk::circuit_builder::CircuitBuilder; -use plonky2::plonk::circuit_data::CircuitConfig; +use plonky2::plonk::circuit_data::{CircuitConfig, CommonCircuitData}; use plonky2::plonk::vars::{ EvaluationTargets, EvaluationVars, EvaluationVarsBase, EvaluationVarsBaseBatch, EvaluationVarsBasePacked,@@ -93,13 +93,16 @@ fn id(&self) -> String {
format!("{self:?}") } - fn serialize(&self, dst: &mut Vec<u8>) -> IoResult<()> { + fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> { dst.write_usize(self.num_ops) } - fn deserialize(src: &mut Buffer) -> IoResult<Self> { + fn deserialize(src: &mut Buffer, _common_data: &CommonCircuitData<F, D>) -> IoResult<Self> { let num_ops = src.read_usize()?; - Ok(Self { num_ops, _phantom: PhantomData }) + Ok(Self { + num_ops, + _phantom: PhantomData, + }) } fn eval_unfiltered(&self, vars: EvaluationVars<F, D>) -> Vec<F::Extension> {@@ -249,10 +252,10 @@
constraints } - fn generators(&self, row: usize, _local_constants: &[F]) -> Vec<WitnessGeneratorRef<F>> { + fn generators(&self, row: usize, _local_constants: &[F]) -> Vec<WitnessGeneratorRef<F, D>> { (0..self.num_ops) .map(|i| { - let g: WitnessGeneratorRef<F> = WitnessGeneratorRef::new( + let g: WitnessGeneratorRef<F, D> = WitnessGeneratorRef::new( U32ArithmeticGenerator { gate: *self, row,@@ -356,7 +359,7 @@ i: usize,
_phantom: PhantomData<F>, } -impl<F: RichField + Extendable<D>, const D: usize> SimpleGenerator<F> +impl<F: RichField + Extendable<D>, const D: usize> SimpleGenerator<F, D> for U32ArithmeticGenerator<F, D> { fn id(&self) -> String {@@ -425,17 +428,22 @@ out_buffer.set_wire(wire, output_limb);
} } - fn serialize(&self, dst: &mut Vec<u8>) -> IoResult<()> { - self.gate.serialize(dst)?; + fn serialize(&self, dst: &mut Vec<u8>, common_data: &CommonCircuitData<F, D>) -> IoResult<()> { + self.gate.serialize(dst, common_data)?; dst.write_usize(self.row)?; dst.write_usize(self.i) } - fn deserialize(src: &mut Buffer) -> IoResult<Self> { - let gate = U32ArithmeticGate::deserialize(src)?; + fn deserialize(src: &mut Buffer, common_data: &CommonCircuitData<F, D>) -> IoResult<Self> { + let gate = U32ArithmeticGate::deserialize(src, common_data)?; let row = src.read_usize()?; let i = src.read_usize()?; - Ok(Self { gate, row, i, _phantom: PhantomData }) + Ok(Self { + gate, + row, + i, + _phantom: PhantomData, + }) } }
@@ -1,8 +1,9 @@
use alloc::string::{String, ToString}; use alloc::vec::Vec; use alloc::{format, vec}; +use core::marker::PhantomData; +use plonky2::plonk::circuit_data::CommonCircuitData; use plonky2::util::serialization::{Buffer, IoResult, Read, Write}; -use core::marker::PhantomData; use plonky2::field::extension::Extendable; use plonky2::field::packed::PackedField;@@ -98,16 +99,20 @@ fn id(&self) -> String {
format!("{self:?}<D={D}>") } - fn serialize(&self, dst: &mut Vec<u8>) -> IoResult<()> { + fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> { dst.write_usize(self.num_bits)?; dst.write_usize(self.num_chunks)?; Ok(()) } - fn deserialize(src: &mut Buffer) -> IoResult<Self> { + fn deserialize(src: &mut Buffer, _common_data: &CommonCircuitData<F, D>) -> IoResult<Self> { let num_bits = src.read_usize()?; let num_chunks = src.read_usize()?; - Ok(Self { num_bits, num_chunks, _phantom: PhantomData }) + Ok(Self { + num_bits, + num_chunks, + _phantom: PhantomData, + }) } fn eval_unfiltered(&self, vars: EvaluationVars<F, D>) -> Vec<F::Extension> {@@ -299,7 +304,7 @@
constraints } - fn generators(&self, row: usize, _local_constants: &[F]) -> Vec<WitnessGeneratorRef<F>> { + fn generators(&self, row: usize, _local_constants: &[F]) -> Vec<WitnessGeneratorRef<F, D>> { let gen = ComparisonGenerator::<F, D> { row, gate: self.clone(),@@ -413,7 +418,7 @@ row: usize,
gate: ComparisonGate<F, D>, } -impl<F: RichField + Extendable<D>, const D: usize> SimpleGenerator<F> +impl<F: RichField + Extendable<D>, const D: usize> SimpleGenerator<F, D> for ComparisonGenerator<F, D> { fn id(&self) -> String {@@ -529,17 +534,16 @@ );
} } - fn serialize(&self, dst: &mut Vec<u8>) -> IoResult<()> { + fn serialize(&self, dst: &mut Vec<u8>, common_data: &CommonCircuitData<F, D>) -> IoResult<()> { dst.write_usize(self.row)?; - self.gate.serialize(dst) + self.gate.serialize(dst, common_data) } - fn deserialize(src: &mut Buffer) -> IoResult<Self> { + fn deserialize(src: &mut Buffer, common_data: &CommonCircuitData<F, D>) -> IoResult<Self> { let row = src.read_usize()?; - let gate = ComparisonGate::deserialize(src)?; + let gate = ComparisonGate::deserialize(src, common_data)?; Ok(Self { row, gate }) } - } #[cfg(test)]
@@ -1,8 +1,9 @@
use alloc::string::{String, ToString}; use alloc::vec::Vec; use alloc::{format, vec}; +use core::marker::PhantomData; +use plonky2::plonk::circuit_data::CommonCircuitData; use plonky2::util::serialization::{Buffer, IoResult, Read, Write}; -use core::marker::PhantomData; use plonky2::field::extension::Extendable; use plonky2::field::types::Field;@@ -55,13 +56,16 @@ fn id(&self) -> String {
format!("{self:?}") } - fn serialize(&self, dst: &mut Vec<u8>) -> IoResult<()> { + fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> { dst.write_usize(self.num_input_limbs) } - fn deserialize(src: &mut Buffer) -> IoResult<Self> { + fn deserialize(src: &mut Buffer, _common_data: &CommonCircuitData<F, D>) -> IoResult<Self> { let num_input_limbs = src.read_usize()?; - Ok(Self { num_input_limbs, _phantom: PhantomData }) + Ok(Self { + num_input_limbs, + _phantom: PhantomData, + }) } fn eval_unfiltered(&self, vars: EvaluationVars<F, D>) -> Vec<F::Extension> {@@ -147,7 +151,7 @@
constraints } - fn generators(&self, row: usize, _local_constants: &[F]) -> Vec<WitnessGeneratorRef<F>> { + fn generators(&self, row: usize, _local_constants: &[F]) -> Vec<WitnessGeneratorRef<F, D>> { let gen = U32RangeCheckGenerator { gate: *self, row }; vec![WitnessGeneratorRef::new(gen.adapter())] }@@ -177,7 +181,7 @@ gate: U32RangeCheckGate<F, D>,
row: usize, } -impl<F: RichField + Extendable<D>, const D: usize> SimpleGenerator<F> +impl<F: RichField + Extendable<D>, const D: usize> SimpleGenerator<F, D> for U32RangeCheckGenerator<F, D> { fn id(&self) -> String {@@ -215,17 +219,16 @@ }
} } - fn serialize(&self, dst: &mut Vec<u8>) -> IoResult<()> { - self.gate.serialize(dst)?; + fn serialize(&self, dst: &mut Vec<u8>, common_data: &CommonCircuitData<F, D>) -> IoResult<()> { + self.gate.serialize(dst, common_data)?; dst.write_usize(self.row) } - fn deserialize(src: &mut Buffer) -> IoResult<Self> { - let gate = U32RangeCheckGate::deserialize(src)?; + fn deserialize(src: &mut Buffer, common_data: &CommonCircuitData<F, D>) -> IoResult<Self> { + let gate = U32RangeCheckGate::deserialize(src, common_data)?; let row = src.read_usize()?; Ok(Self { row, gate }) } - } #[cfg(test)]
@@ -1,8 +1,8 @@
use alloc::string::{String, ToString}; use alloc::vec::Vec; use alloc::{format, vec}; -use plonky2::util::serialization::{Buffer, IoResult, Read, Write}; use core::marker::PhantomData; +use plonky2::util::serialization::{Buffer, IoResult, Read, Write}; use plonky2::field::extension::Extendable; use plonky2::field::packed::PackedField;@@ -17,7 +17,7 @@ use plonky2::iop::target::Target;
use plonky2::iop::wire::Wire; use plonky2::iop::witness::{PartitionWitness, Witness, WitnessWrite}; use plonky2::plonk::circuit_builder::CircuitBuilder; -use plonky2::plonk::circuit_data::CircuitConfig; +use plonky2::plonk::circuit_data::{CircuitConfig, CommonCircuitData}; use plonky2::plonk::vars::{ EvaluationTargets, EvaluationVars, EvaluationVarsBase, EvaluationVarsBaseBatch, EvaluationVarsBasePacked,@@ -87,13 +87,16 @@ fn id(&self) -> String {
format!("{self:?}") } - fn serialize(&self, dst: &mut Vec<u8>) -> IoResult<()> { + fn serialize(&self, dst: &mut Vec<u8>, _common_data: &CommonCircuitData<F, D>) -> IoResult<()> { dst.write_usize(self.num_ops) } - fn deserialize(src: &mut Buffer) -> IoResult<Self> { + fn deserialize(src: &mut Buffer, _common_data: &CommonCircuitData<F, D>) -> IoResult<Self> { let num_ops = src.read_usize()?; - Ok(Self { num_ops, _phantom: PhantomData }) + Ok(Self { + num_ops, + _phantom: PhantomData, + }) } fn eval_unfiltered(&self, vars: EvaluationVars<F, D>) -> Vec<F::Extension> {@@ -195,7 +198,7 @@
constraints } - fn generators(&self, row: usize, _local_constants: &[F]) -> Vec<WitnessGeneratorRef<F>> { + fn generators(&self, row: usize, _local_constants: &[F]) -> Vec<WitnessGeneratorRef<F, D>> { (0..self.num_ops) .map(|i| { let g = WitnessGeneratorRef::new(@@ -279,7 +282,7 @@ i: usize,
_phantom: PhantomData<F>, } -impl<F: RichField + Extendable<D>, const D: usize> SimpleGenerator<F> +impl<F: RichField + Extendable<D>, const D: usize> SimpleGenerator<F, D> for U32SubtractionGenerator<F, D> { fn id(&self) -> String {@@ -343,19 +346,23 @@ out_buffer.set_wire(wire, output_limbs[j]);
} } - fn serialize(&self, dst: &mut Vec<u8>) -> IoResult<()> { - self.gate.serialize(dst)?; + fn serialize(&self, dst: &mut Vec<u8>, common_data: &CommonCircuitData<F, D>) -> IoResult<()> { + self.gate.serialize(dst, common_data)?; dst.write_usize(self.row)?; dst.write_usize(self.i) } - fn deserialize(src: &mut Buffer) -> IoResult<Self> { - let gate = U32SubtractionGate::deserialize(src)?; + fn deserialize(src: &mut Buffer, common_data: &CommonCircuitData<F, D>) -> IoResult<Self> { + let gate = U32SubtractionGate::deserialize(src, common_data)?; let row = src.read_usize()?; let i = src.read_usize()?; - Ok(Self { gate, row, i, _phantom: PhantomData }) + Ok(Self { + gate, + row, + i, + _phantom: PhantomData, + }) } - } #[cfg(test)]
@@ -18,7 +18,7 @@ pub trait ReadU32 {
fn read_target_u32(&mut self) -> IoResult<U32Target>; } -impl ReadU32 for Buffer { +impl ReadU32 for Buffer<'_> { #[inline] fn read_target_u32(&mut self) -> IoResult<U32Target> { Ok(U32Target(self.read_target()?))