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
As we have moved to get Brillig generation up-to-date in the new SSA refactor we have been simply matching against raw strings when executing a circuit to verify whether foreign calls have been working. We should have a cleaner method of specifying which builtin oracle nargo truly does support out of the box.
Happy Case
The oracles nargo supports should have their own enumeration and silo'd implementations similar to intrinsics that live inside of the compiler. These will be intrinsics in the same sense but supported by nargo. Other callers of the Noir compiler (like acvm-simulator) would specify which oracle builtins they would like to support natively inside Rust on their own.
Alternatives Considered
Possibly in the future we can have one unified acvm-simulator, but this would have to be coordinated with the tooling team. For now though there is certain functionality that would be good to have immediately and thus is easiest to put inside nargo for the time being (such as logging and printlns). It would be good to brainstorm a strategy for unifying useful features across callers like logging. Nargo and acvm-simulator should be able to share the same logging implementation for example.
Additional Context
No response
Would you like to submit a PR for this Issue?
No
Support Needs
No response
The text was updated successfully, but these errors were encountered:
I'm going to assign this to myself as I am going to be taking on a general logging refactor that uses Brillig foreign calls. Making an enumeration in nargo for Brillig foreign calls as part of that makes sense
vezenovm
changed the title
feat(nargo): Cleanup Brillig foreign calls supported natively
feat(nargo): Cleanup Brillig foreign calls matching w/ an enum
Jul 11, 2023
Problem
As we have moved to get Brillig generation up-to-date in the new SSA refactor we have been simply matching against raw strings when executing a circuit to verify whether foreign calls have been working. We should have a cleaner method of specifying which builtin oracle nargo truly does support out of the box.
Happy Case
The oracles nargo supports should have their own enumeration and silo'd implementations similar to intrinsics that live inside of the compiler. These will be intrinsics in the same sense but supported by nargo. Other callers of the Noir compiler (like acvm-simulator) would specify which oracle builtins they would like to support natively inside Rust on their own.
Alternatives Considered
Possibly in the future we can have one unified
acvm-simulator
, but this would have to be coordinated with the tooling team. For now though there is certain functionality that would be good to have immediately and thus is easiest to put inside nargo for the time being (such as logging and printlns). It would be good to brainstorm a strategy for unifying useful features across callers like logging. Nargo andacvm-simulator
should be able to share the same logging implementation for example.Additional Context
No response
Would you like to submit a PR for this Issue?
No
Support Needs
No response
The text was updated successfully, but these errors were encountered: