You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Imagine we compile a circuit and save it to file and leave it for a year. This circuit has been compiled with the expectation that it will have access to certain blackbox functions, input witnesses will be laid out in a certain fashion, etc.
We then come back a year later and want to prove against this circuit. We then would have to perform trial and error to find the correct backend to prove against.
Solution
We should include some identifier to flag that the circuit expects a particular backend to avoid the potential for mystery failures/unexpected behaviour when trying to prove/verify against a different backend.
Alternatives considered
Alternatively we can leave this as is.
Additional context
The text was updated successfully, but these errors were encountered:
The output of Noir should be backend agnostic* -- at the moment, we apply optimisations inside of the evaluator specific to a backend which make this not entirely true, though there is an issue open for that here
We do need to add versioning infromation to the compiled program as the unoptimised IR can change over time, we could, as you noted, additionally add information to the optimised ACIR given a canonical format for naming backends
TomAFrench
changed the title
Include some record of which backend a CompiledProgram was compiled against
Add some form of versioning to CompiledProgramFeb 16, 2023
Problem
Imagine we compile a circuit and save it to file and leave it for a year. This circuit has been compiled with the expectation that it will have access to certain blackbox functions, input witnesses will be laid out in a certain fashion, etc.
We then come back a year later and want to prove against this circuit. We then would have to perform trial and error to find the correct backend to prove against.
Solution
We should include some identifier to flag that the circuit expects a particular backend to avoid the potential for mystery failures/unexpected behaviour when trying to prove/verify against a different backend.
Alternatives considered
Alternatively we can leave this as is.
Additional context
The text was updated successfully, but these errors were encountered: