Extracts some of the more fixed behaviors of Platform into static methods, which replace some calls to CENO_PLATFORM.
Introduces a ProgramParams struct which stores the platform, the program size (no longer present in the type) and other useful params.
ProgramPrams flow from ZKVMConstraintSystem, through the CircuitBuilder, through some of the TableConfigs and into the relevant table trait methods which implement the behavior we wanted to make dynamic.
Observations:
Could instate some safeguards to use the same platform throughout the pipeline. One example: presently it's technically possible to use one platform for building the VM and another for the constraint system.
There is a default ProgramParams which is implicitly used in some constructors. This was done so as not to edit a lot of tests prematurely. While the default values should generally be compatible with the original intention of these test cases, it may be wise to remove the implicit defaults and force ourselves to choose params everywhere. This can be done in a subsequent PR.
Makes the platform dynamic:
Platform
into static methods, which replace some calls toCENO_PLATFORM
.ProgramParams
struct which stores the platform, the program size (no longer present in the type) and other useful params.ProgramPrams
flow fromZKVMConstraintSystem
, through theCircuitBuilder
, through some of theTableConfig
s and into the relevant table trait methods which implement the behavior we wanted to make dynamic.Observations:
VM
and another for the constraint system.ProgramParams
which is implicitly used in some constructors. This was done so as not to edit a lot of tests prematurely. While the default values should generally be compatible with the original intention of these test cases, it may be wise to remove the implicit defaults and force ourselves to choose params everywhere. This can be done in a subsequent PR.