fix: add new BrilligFunctionUnsatisfiedConstrain resolution error variant#6
Merged
anaPerezGhiglia merged 7 commits intofix/debugger-brillig-assertion-failfrom Jul 3, 2024
Conversation
to avoid unnecessary changes
|
Thank you for your contribution to the Noir language. Please do not force push to this branch after the Noir team have started review of this PR. Doing so will only delay us merging your PR as we will need to start the review process from scratch. Thanks for your understanding. |
BrilligFunctionUnsatisfiedConstrain resolution error variantBrilligFunctionUnsatisfiedConstrain resolution error variant
mverzilli
approved these changes
Jul 3, 2024
5 tasks
anaPerezGhiglia
added a commit
that referenced
this pull request
Jul 3, 2024
…ariant (#6) * Convert BrilligSolver Trap failure into `BrilligFunctionUnsatisfiedConstrain` error * extract extract_failure_payload function to improve readability * Changed the variant checking on ACVM.map_brillig_error from OpcodeResolutionError::BrilligFunctionFailed to OpcodeResolutionError::BrilligFunctionUnsatisfiedConstrain * return ownership of the solver to brillig context when the debugger fails due to `BrilligFunctionUnsatisfiedConstrain`
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
this is an alternate solution to #5
it has more effects outside the scope of the debugger, but it feels more accurate
Description
When an assertion fails on Brillig mode, the debugger fails to indicate the user where the program failed
while when running on ACIR mode it provides enough information 👇

Summary
Context
assertconstraints are translated as "jump to trap" if the condition is not met when running in Brillig modeChanges
OpcodeResolutionError::BrilligFunctionUnsatisfiedConstrainto represent failed constraints on BrilligTrapfailureACVM.map_brillig_errorfromOpcodeResolutionError::BrilligFunctionFailedtoOpcodeResolutionError::BrilligFunctionUnsatisfiedConstrainsince assertion errors will now fail with the latterBrilligFunctionFailedfor the other casesObservations
TODO:should we return the solver ownership to the brillig context in all Err scenarios>?Documentation
Check one:
PR Checklist
cargo fmton default settings.