-
Notifications
You must be signed in to change notification settings - Fork 243
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: Document gate savings around no_predicates #5657
base: master
Are you sure you want to change the base?
Conversation
🚀 Deployed on https://678fe65714c3ad2f90a6935b--noir-docs.netlify.app |
@@ -149,6 +161,17 @@ Use ` if is_unconstrained() { /`, to conditionally execute code if being called | |||
|
|||
Unless you're well into the depth of gate optimization, this advanced section can be ignored. | |||
|
|||
### `#[no_predicates]` over for "pure" functions |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure about advertising no_predicates
yet as for unexperienced developers it is a bit more dangerous and less obvious about what is happening. @jfecher what do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I put this in the advanced section with plenty of caveats.
Whilst the start is more general to help devs new to Noir start to appreciate what optimisations do/don't look like, the Advanced section is caveated ( the line above). I'll make this a warning.
The contents below came up as a question in slack (by a more advanced ecosystem dev), they happened to refer to the form of predicates in passing.
e0de8d7
to
3e44738
Compare
if/loop tip separated into #6806 |
Peak Memory Sample
|
Compilation Report
|
@vezenovm is any of this still relevant or should I just close this? |
* master: chore: add if/loop tip (separate from no-predicate noir-lang#5657) (noir-lang#6806) chore: move implementation of print foreign call into `nargo` (noir-lang#6865) chore: document format strings (noir-lang#6920) chore: add `rollup_root` and `rollup_block_merge` to tracked protocol circuits (noir-lang#6903) fix: consistent file_id across installation paths (noir-lang#6912) fix: bigint builtins are foreigns (noir-lang#6892) fix: remove unnecessary cast in bit-shift (noir-lang#6890) chore: Release Noir(1.0.0-beta.1) (noir-lang#6622) chore: Add `Instruction::Noop` (noir-lang#6899) chore: remove malformed functions from brillig reports (noir-lang#6898) chore: clean up gates reports script (noir-lang#6896) chore: move empty programs to `compile_success_empty` (noir-lang#6891) feat: add a warning when using unsafe blocks without safety comments (noir-lang#6860) chore: quick docs fix for noir-lang#6839 (noir-lang#6840) chore: Avoid duplicate Not instructions during flattening (noir-lang#6886) chore: Use smallvec for instruction results (noir-lang#6877) chore(ci): Display times in compilation and execution reports only with seconds (noir-lang#6880) feat: flatten nested if-else statements with equivalent conditions (noir-lang#6875) chore(ci): Take averages for compilation and execution report of small programs (noir-lang#6874) fix: don't deduplicate binary math of unsigned types (noir-lang#6848)
* master: (47 commits) chore: delete a bunch of dead code from `noirc_evaluator` (#6939) feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (#6882) chore: Bump arkworks to version `0.5.0` (#6871) feat(ssa): Hoist add and mul binary ops using known induction variables (#6910) chore: fix warning (#6927) chore(ci): Memory reports for execution (#6907) chore: use ssa parser in flattening pass tests (#6868) feat(LSP): suggest trait methods from where clauses (#6915) feat: warn on trait method visibility (#6923) feat!: Switch to using `jsonrpsee` for foreign calls; refactor `run_test`; foreign call layering (#6849) chore: add rollup circuits to memory reports (#6897) chore: remove unused dependency (#6922) chore: add if/loop tip (separate from no-predicate #5657) (#6806) chore: move implementation of print foreign call into `nargo` (#6865) chore: document format strings (#6920) chore: add `rollup_root` and `rollup_block_merge` to tracked protocol circuits (#6903) fix: consistent file_id across installation paths (#6912) fix: bigint builtins are foreigns (#6892) fix: remove unnecessary cast in bit-shift (#6890) chore: Release Noir(1.0.0-beta.1) (#6622) ...
Compilation Memory Report
|
Execution Memory Report
|
Execution Report
|
@noir-lang/developerrelations |
FYI @noir-lang/developerrelations on Noir doc changes. |
No description provided.