Closed leolara closed 1 month ago
Even, better SBPIR
renamed to SBPIRLegacy
and a copy of SBPIR becomes SBPIRMachine
that we will be able to modify SBPIRMachine a lot, and create a new plonkish compiler.
Eventually this will end up removing the SuperCircuits that are not that good design, but we inherited from zkEVM.
Implemented in #284
We need to start the path that allows multiple machines. This is a complex refactoring, and from the SBPIR on we will build new compiler to the plonkish IR. But this is not in this task.
We should allow the main compiler src -> SBPIR to return several machines.
For that I would:
compiler::compile
function tocompiler::compile_legacy
andcompiler::CompilerResult
tocompiler::CompilerResultLegacy
. We need this so the previous examples and tests keep working. It should be easy with a refactoring tool like in vscode.sbpir::SBPIR
tosbpir::SBPIRMachine
.sbpir::SBPIR
that contains a hashmap of uuid -> SBPIRMachine and another hashmap from identifier -> uuid.compiler::compile
that can take a source code with several machines and returns a newcompiler::CompilerResult
that contains the newsbpir::SBPIR