chore: Document gate savings around no_predicates#5657
Conversation
|
🚀 Deployed on https://6840603e2b557c006a285f89--noir-docs.netlify.app |
|
|
||
| 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.
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.
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
|
* 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 |
774b972 to
20f03b5
Compare
|
FYI @noir-lang/developerrelations on Noir doc changes. |
No description provided.