0.33.0 (2024-08-06)
- parse block and if statements independently of expressions in statements (#5634)
- frontend: Restrict numeric generic types to unsigned ints up to
u32
(#5581)
- acir_gen: Width aware ACIR gen addition (#5493) (85fa592)
- Add
FunctionDefinition::parameters
,FunctionDefinition::return_type
andimpl Eq for Quoted
(#5681) (d52fc05) - Add
std::meta::type_of
andimpl Eq for Type
(#5669) (0503956) - Add
TraitDefinition::as_trait_constraint()
(#5541) (0943223) - Add
Type::as_struct
(#5680) (ade69a9) - Add
Type::is_field
andType::as_integer
(#5670) (939357a) - Add
Type
methods:as_tuple
,as_slice
,as_array
,as_constant
,is_bool
(#5678) (604fa0d) - Add a compile-time hash map type (#5543) (c6e5c4b)
- Add a limited form of arithmetic on generics (#5625) (0afb680)
- Add parameter to call_data attribute (#5599) (e8bb341)
- Allow inserting LSP inlay type hints (#5620) (b33495d)
- Avoid heap allocs when going to/from field (AztecProtocol/aztec-packages#7547) (daad75c)
- Derive
Ord
andHash
in the stdlib; addstd::meta::make_impl
helper (#5683) (38397d3) - Don't eagerly error on cast expressions (#5635) (0ca5d9d)
- Implement
poseidon2_permutation
in comptime interpreter (#5590) (89dfbbf) - Implement
Value::Type
in comptime interpreter (#5593) (4c3bf97) - Implement
zeroed
in the interpreter (#5540) (ff8ca91) - Implement closures in the comptime interpreter (#5682) (9e2a323)
- Implement format strings in the comptime interpreter (#5596) (fd7002c)
- Integrate new proving systems in e2e (AztecProtocol/aztec-packages#6971) (daad75c)
- Let filenames in errors be relative to the current dir if possible (#5642) (f656681)
- Let LSP work will with code generated by macros (#5665) (8122624)
- LSP closing brace hints (#5686) (2b18151)
- LSP hover now includes "Go to" links (#5677) (d466d49)
- LSP inlay parameter hints (#5553) (822fe2c)
- LSP inlay type hints on lambda parameters (#5639) (80128ff)
- Make Brillig do integer arithmetic operations using u128 instead of Bigint (AztecProtocol/aztec-packages#7518) (daad75c)
- noir_js: Expose UltraHonk and integration tests (#5656) (4552b4f)
- Remove 'comptime or separate crate' restriction on comptime code (#5609) (1cddf42)
- Resolve arguments to attributes (#5649) (e139002)
- ssa: Simple serialization of unoptimized SSA to file (#5679) (07ea107)
- Sync from noir (AztecProtocol/aztec-packages#7432) (daad75c)
- Sync from noir (AztecProtocol/aztec-packages#7444) (daad75c)
- Sync from noir (AztecProtocol/aztec-packages#7454) (daad75c)
- Sync from noir (AztecProtocol/aztec-packages#7512) (daad75c)
- Sync from noir (AztecProtocol/aztec-packages#7577) (daad75c)
- Sync from noir (AztecProtocol/aztec-packages#7583) (daad75c)
- Turbofish in struct pattern (#5616) (b3c408b)
- Turbofish operator in struct constructor (#5607) (106abd7)
- Turbofish operator on path segments (#5603) (0bb8372)
- Typing return values of embedded_curve_ops (AztecProtocol/aztec-packages#7413) (daad75c)
- 'cannot eval non-comptime global' error (#5586) (0a987c7)
NoMatchingImplFound
in comptime code only (#5617) (28211a3)- Add trailing extra arguments for backend in gates_flamegraph (AztecProtocol/aztec-packages#7472) (daad75c)
- Allow calling a trait method with paths that don't consist of exactly two segments (#5577) (88c0a40)
- Allow trailing comma when parsing where clauses (#5594) (75bfe13)
- Allow using Self for function calls (#5629) (b7e4f42)
- Correct span for prefix operator (#5624) (5824785)
- Correctly track sources for open LSP documents (#5561) (9e61e97)
- Derive generic types (#5674) (19e58a9)
- Don't panic when a macro fails to resolve (#5537) (6109ddc)
- Elaborate struct & trait annotations in the correct module (#5643) (d0a957b)
- Error on duplicate struct field (#5585) (3aed671)
- Error on incorrect generic count for impl and type alias (#5623) (1f5d000)
- Error on trait impl generics count mismatch (#5582) (da3d607)
- Error on unbound generics in structs (#5619) (efef6b4)
- Filter comptime globals (#5538) (2adc6ac)
- Fix
uhashmap
test name (#5563) (d5de83f) - Fix occurs check (#5535) (51dd529)
- Fix where clause issue in items generated from attributes (#5673) (9a8cfc9)
- frontend: Disallow signed numeric generics (#5572) (2b4853e)
- frontend: Error for when impl is stricter than trait (#5343) (ece033f)
- frontend: Restrict numeric generic types to unsigned ints up to
u32
(#5581) (b85e764) - Let a trait impl that relies on another trait work (#5646) (e00c370)
- Let std::unsafe::zeroed() work for slices (#5592) (7daee20)
- Let trait calls work in globals (#5602) (c02a6f6)
- Let unary traits work at comptime (#5507) (aa62d8a)
- Lookup trait constraints methods in composite types (#5595) (cec6390)
- Parse block and if statements independently of expressions in statements (#5634) (9341113)
- Revert "feat: Sync from noir (AztecProtocol/aztec-packages#7512)" (AztecProtocol/aztec-packages#7558) (daad75c)
- Run macros within comptime contexts (#5576) (df44919)
- Speed up LSP (#5650) (e5f1b36)
- ssa: More robust array deduplication check (#5547) (dd89b90)
- Switch verify proof to arrays (#5664) (c1ed9fb)
- Type_of for pointer types (#5536) (edb3810)
- Workaround from_slice with nested slices (#5648) (6310a55)
0.32.0 (2024-07-18)
- constant inputs for blackbox (AztecProtocol/aztec-packages#7222)
- error on too large integer value (#5371)
- rename struct-specific TypeDefinition -> StructDefinition (#5356)
- frontend: Explicit numeric generics and type kinds (#5155)
mod.nr
entrypoint (#5039) (076fe0a)static_assert
builtin (#5342) (ef44270)- Add
map
,fold
,reduce
,any
, andall
for slices (#5331) (03e25b4) - Add CLI argument for debugging comptime blocks (#5192) (0b74a18)
- Add comptime support for
modulus_*
compiler builtins (#5530) (5bbce79) - Add debug codelens action (#5474) (6bcdac4)
- Add fuzzer for Noir programs (#5251) (e100017)
- Add gate profiler for noir circuits (AztecProtocol/aztec-packages#7004) (083070e)
- Add more slice methods to the stdlib (#5424) (4020e77)
- Add opcodes flamegraph and refactor gates flamegraph (AztecProtocol/aztec-packages#7282) (32029f9)
- Add support for fieldable in events (AztecProtocol/aztec-packages#7310) (3f71169)
- Add support for usage of
super
in import paths (#5502) (256509e) - Add support for wildcard types (#5275) (7445efb)
- Add TraitConstraint type (#5499) (30cb65a)
- Add unquote function (#5497) (2947aba)
- Allow arguments to attribute functions (#5494) (a33cafc)
- Allow comptime attributes on traits & functions (#5496) (b59a29e)
- Apply
no_predicates
in stdlib (#5454) (24d26c0) - Build releases for
aarch64-unknown-linux-gnu
target (#5289) (f35614a) - Build simple dictionary from inspecting ACIR program (#5264) (508e677)
- Constant inputs for blackbox (AztecProtocol/aztec-packages#7222) (fb97bb9)
- Detect subgraphs that are completely independent from inputs or outputs (#5402) (7ea83a9)
- Disable nargo color output if stderr is tty (#5346) (554dd6b)
- Error on too large integer value (#5371) (0c4fffa)
- frontend: Explicit numeric generics and type kinds (#5155) (d4e03d0)
- frontend: Where clause on impl (#5320) (cf938bc)
- Handle ACIR calls in the debugger (#5051) (0541568)
- Implement comptime support for
array_len
builtin (#5272) (c91186a) - Implement comptime support for
as_slice
builtin (#5276) (9db65d8) - Implement trait dispatch in the comptime interpreter (#5376) (8aa5b2e)
- Insert trait impls into the program from type annotations (#5327) (efdd818)
- Let
should_fail_with
check that the failure reason contains the expected message (#5319) (cb9db55) - Let LSP always work in a Noir workspace if there's any (#5461) (e0d7833)
- Lsp "find all references" (#5395) (ce1994c)
- Lsp "go to definition" for modules (#5406) (3e7f1f2)
- LSP document symbol (#5532) (1fabcde)
- LSP hover (#5491) (010c835)
- LSP inlay hints for let and global (#5510) (43f5b8d)
- Lsp rename struct (#5380) (ee8b0cd)
- Lsp rename/find-all-references for globals (#5415) (fa9b444)
- Lsp rename/find-all-references for local variables (#5439) (bb6913a)
- Lsp rename/find-all-references for struct members (#5443) (a6d213d)
- Lsp rename/find-all-references for traits (#5409) (bf3a75a)
- Lsp rename/find-all-references for type aliases (#5414) (24c621f)
- lsp: Allow function rename (#4294) (3d86dc6)
- Make macros operate on token streams instead of AST nodes (#5301) (7689d59)
- nargo: Default expression width field in
Nargo.toml
(#5505) (dea6b32) - optimization: Deduplicate more instructions (#5457) (c47242a)
- Prefix operator overload trait dispatch (#5423) (a3bb09e)
- Remove duplicated array reads at constant indices (#5445) (82a67a0)
- Remove redundant
EnableSideEffects
instructions (#5440) (e153ecb) - Rename struct-specific TypeDefinition -> StructDefinition (#5356) (7ffccf7)
- Run
comptime
code from annotations on a type definition (#5256) (6cbe6a0) - Skip reading values immediately after it being written into an array (#5449) (141ecdd)
- stdlib: Update stdlib to use explicit numeric generics (#5306) (8456185)
- Sync from aztec-packages (#5347) (47b621f)
- Sync from aztec-packages (#5377) (7b77bbf)
- Sync from noir (AztecProtocol/aztec-packages#7257) (32029f9)
- Sync from noir (AztecProtocol/aztec-packages#7288) (322f863)
- Sync from noir (AztecProtocol/aztec-packages#7308) (322f863)
- Sync from noir (AztecProtocol/aztec-packages#7332) (3f71169)
- Sync from noir (AztecProtocol/aztec-packages#7352) (98e72ac)
- Sync from noir (AztecProtocol/aztec-packages#7392) (fb97bb9)
- Sync from noir (AztecProtocol/aztec-packages#7400) (fb97bb9)
- Unquote multiple items from annotations (#5441) (be8eac6)
- Use runtime loops for brillig array initialization (#5243) (0bd22bb)
- Account for the expected kind when resolving turbofish generics (#5448) (82c335d)
- Add more thorough check for whether a type is valid when passing it from constrained code to unconstrained code (#5009) (318314d)
- Address compiler warnings coming from stdlib (#5351) (758a905)
- Allow importing notes from other contracts and inject them in the macros (AztecProtocol/aztec-packages#7349) (98e72ac)
- Avoid duplicating constant arrays (#5287) (3ef3645)
- Avoid panic in type system (#5332) (52d48ff)
- Avoid unnecessarily splitting expressions with multiplication terms with a shared term (#5291) (19884f1)
- Change panic to error in interpreter (#5446) (d44f882)
- Complete call stacks with no_predicates (#5418) (df73fe2)
- Correct range for overlfowing/underflowing integer assignment (#5416) (30c50f5)
- Correctly detect signed/unsigned integer overflows/underflows (#5375) (0603bd3)
- docs: Fix broken docs link to gihtub (#5398) (70ebf60)
- Don't benchmark the "prove" command as it doesn't exist anymore (#5323) (3bb3b03)
- Don't lazily elaborate functions (#5282) (0ea608f)
- Don't panic when using undefined variables in the interpreter (#5381) (94d209a)
- Don't type error when calling certain trait impls in the interpreter (#5471) (299703c)
- Error on empty function bodies (#5519) (6a7f593)
- Error when a local function is called in a comptime context (#5334) (7cd4a4d)
- Fix incorrect return type being applied to stdlib functions
modulus_be_bytes()
,modulus_be_bits()
, etc. (#5278) (91a9b72) - Fix issue with unresolved results (#5453) (c4154cb)
- Fix tokenization of unquoted types in macros (#5326) (6673c8b)
- Fix usage of
#[abi(tag)]
attribute with elaborator (#5298) (64dd48a) - Go to definition from
use
statement (#5390) (53bae3b) - Go to definition from aliased use (#5396) (90b135c)
- Handle struct with nested arrays in oracle return values (#5244) (a30814f)
- ICE when using a comptime let variable in runtime code (#5391) (9fb7e4d)
- Ignore calls to
Intrinsic::AsWitness
during brillig codegen (#5350) (9c11fd2) - Implement generic functions in the interpreter (#5330) (d8b9870)
- Included argshash computation in public call_interfaces and cleanup (AztecProtocol/aztec-packages#7354) (98e72ac)
- Lsp find struct reference in return locations and paths (#5404) (e1bcb73)
- Lsp hover wasn't always working (#5515) (951e821)
- Lsp struct rename/reference difference (#5411) (580c16d)
- Move BigInt modulus checks to runtime in brillig (#5374) (741d339)
- Mutability in the comptime interpreter (#5517) (8cab4ac)
- nargo_fmt: Account for spaces before the generic list of a function (#5303) (ec728dd)
- Never panic in LSP inlay hints (#5534) (6b11445)
- Prevent
no_predicates
from removing predicates in calling function (#5452) (66244b6) - Remove compile-time error for invalid indices (#5466) (323e0c9)
- Remove panics in the interpreter when a builtin fails to type check (#5382) (c8161c8)
- Replace expects in interpreter with errors (#5383) (ac738b2)
- Replace panic in monomorphization with an error (#5305) (49e1b0c)
- Replace std::HashMap with FxHashMap to fix frontend indeterminism (#5385) (9501495)
- Revert PR #5449 (#5548) (a213c15)
- Run macro processors in the elaborator (#5472) (89642c2)
- Runtime brillig bigint id assignment (#5369) (a8928dd)
- Skip emission of brillig calls which will never be executed (#5314) (b859ef9)
- Truncate flamegraph text to the right (AztecProtocol/aztec-packages#7333) (3f71169)
- Update
in_contract
flag before handling function metadata in elaborator (#5292) (4c4ea2d) - Use proper serialization in
AbiValue
(#5270) (d08b7b9)
0.31.0 (2024-06-17)
- remove
dep::
prefix (#4946) - remove
distinct
keyword (#5219) - remove
param_witnesses
andreturn_witnesses
from ABI (#5154) - add session id to foreign call RPC requests (#5205)
- restrict noir word size to u32 (#5180)
- separate proving from
noir_js
(#5072) - switch
bb
over to read ACIR from nargo artifacts (AztecProtocol/aztec-packages#6283) - specify databus arrays for BB (AztecProtocol/aztec-packages#6239)
- stdlib: eddsa function using turbofish (#5050)
pxe.addNullifiedNote(...)
(AztecProtocol/aztec-packages#6948) (7de19f5)- Activate return_data in ACIR opcodes (#5080) (c9fda3c)
- Add
as_witness
builtin function in order to constrain a witness to be equal to a variable (#4641) (faf5bd8) - Add
set
andset_unchecked
methods toVec
andBoundedVec
(#5241) (1849389) - Add BoundedVec::map (#5250) (da1549c)
- Add intrinsic to get if running inside an unconstrained context (#5098) (281ebf2)
- Add native rust implementation of schnorr signature verification (#5053) (fab1c35)
- Add session id to foreign call RPC requests (#5205) (14adafc)
- Consider block parameters in variable liveness (#5097) (e4eb5f5)
- experimental: Implement macro calls & splicing into
Expr
values (#5203) (d9b4712) - Implement println in the comptime interpreter (#5197) (7f08343)
- Implement turbofish operator (#3542) (226724e)
- Make ACVM generic across fields (#5114) (70f374c)
- Move abi demonomorphizer to noir_codegen and use noir_codegen in protocol types (AztecProtocol/aztec-packages#6302) (436bbda)
- Move to_radix to a blackbox (AztecProtocol/aztec-packages#6294) (436bbda)
- nargo: Hidden option to show contract artifact paths written by
nargo compile
(AztecProtocol/aztec-packages#6131) (ff67e14) - Place return value witnesses directly after function arguments (#5142) (1252b5f)
- Private Kernel Recursion (AztecProtocol/aztec-packages#6278) (436bbda)
- Proper padding in ts AES and constrained AES in body and header computations (AztecProtocol/aztec-packages#6269) (436bbda)
- Remove
dep::
prefix (#4946) (d6d0ae2) - Remove conditional compilation of
bn254_blackbox_solver
(#5058) (9420d7c) - Remove external blackbox solver from acir simulator (AztecProtocol/aztec-packages#6586) (a40a9a5)
- Replace stdlib poseidon implementation with optimized version (#5122) (11e98f3)
- Restrict noir word size to u32 (#5180) (bdb2bc6)
- Separate proving from
noir_js
(#5072) (c93c738) - Separate runtimes of SSA functions before inlining (#5121) (69eca9b)
- Specify databus arrays for BB (AztecProtocol/aztec-packages#6239) (436bbda)
- Standardize pedersen functions to return
EmbeddedCurvePoint
(#5190) (3b85b36) - stdlib: Eddsa function using turbofish (#5050) (7936262)
- Support casting in globals (#5164) (6d3e732)
- Switch
bb
over to read ACIR from nargo artifacts (AztecProtocol/aztec-packages#6283) (436bbda) - Sync from noir (AztecProtocol/aztec-packages#6280) (436bbda)
- Sync from noir (AztecProtocol/aztec-packages#6332) (436bbda)
- Sync from noir (AztecProtocol/aztec-packages#6573) (436bbda)
- Sync from noir (AztecProtocol/aztec-packages#6986) (7de19f5)
- ToRadix BB + avm transpiler support (AztecProtocol/aztec-packages#6330) (436bbda)
- Add support for nested arrays returned by oracles (#5132) (f846879)
- Apply self type from generic trait constraint before instantiating identifiers (#5087) (2b4755c)
- Auto dereference trait methods in the elaborator (#5124) (56c1a85)
- Check for public args in aztec functions (AztecProtocol/aztec-packages#6355) (436bbda)
- Disable
if
optimization (#5240) (a2816db) - elaborator: Fix duplicate methods error (#5225) (87a1d8e)
- elaborator: Fix regression introduced by lazy-global changes (#5223) (fde432a)
- elaborator: Invert unconstrained check (#5176) (967c0fa)
- elaborator: Lazily elaborate globals (#5191) (9c99a97)
- Error for allocate instructions in acir-gen (#5200) (58c7532)
- experimental elaborator: Avoid calling
add_generics
twice on trait methods (#5108) (7d8c0a3) - experimental elaborator: Clear generics after elaborating type aliases (#5136) (b0a7d0b)
- experimental elaborator: Fix
impl Trait
when--use-elaborator
is selected (#5138) (7ea5962) - experimental elaborator: Fix definition kind of globals and tuple patterns with
--use-elaborator
flag (#5139) (a140dec) - experimental elaborator: Fix duplicate
resolve_type
on self type and don't leak a trait impl's generics (#5102) (db561e2) - experimental elaborator: Fix frontend tests when
--use-elaborator
flag is specified (#5145) (d6122eb) - experimental elaborator: Fix global values used in the elaborator (#5135) (e73cdbb)
- experimental elaborator: Fix globals which use function calls (#5172) (ab0b1a8)
- experimental elaborator: Fix panic in the elaborator (#5082) (ffcb410)
- experimental elaborator: Only call
add_generics
once (#5091) (f5d2946) - Fix panic in
get_global_let_statement
(#5177) (b769b01) - frontend: Call trait method with mut self from generic definition (#5041) (89846cf)
- frontend: Correctly monomorphize turbofish functions (#5049) (fd772e7)
- frontend: Resolve object types from method calls a single time (#5131) (3afe023)
- Temporarily revert to_radix blackbox (AztecProtocol/aztec-packages#6304) (436bbda)
- Use plain integer addresses for opcodes in DAP disassembly view (#4941) (d43ba1b)
- Use predicate for curve operations (#5076) (145b909)
- Wrapping in signed division (#5134) (29baeb4)
- Remove
distinct
keyword (#5219) (1d62c59) - Remove
param_witnesses
andreturn_witnesses
from ABI (#5154) (21562ae)
0.30.0 (2024-05-20)
- remove
Opcode::Brillig
from ACIR (AztecProtocol/aztec-packages#5995) - AES blackbox (AztecProtocol/aztec-packages#6016)
multi_scalar_mul
blackbox func (AztecProtocol/aztec-packages#6097) (73a635e)variable_base_scalar_mul
blackbox func (AztecProtocol/aztec-packages#6039) (73a635e)- Add
Not
trait to stdlib (#4999) (95d4d13) - Add
std::ops::Neg
trait to stdlib (07930d4) - Add native rust implementations of pedersen functions (#4871) (fb039f7)
- Add support for u16/i16 (#4985) (e43661d)
- AES blackbox (AztecProtocol/aztec-packages#6016) (73a635e)
- Do not return databus returndata, keep it private. (#5023) (a5b7df1)
- Dynamic assertion payloads v2 (AztecProtocol/aztec-packages#5949) (73a635e)
- Implement
From
array trait forBoundedVec
(#4927) (bf491dc) - Implement
ops
traits onu16
/i16
(#4996) (8b65663) - Implement
std::ops::Sub
onEmbeddedCurvePoint
(07930d4) - Increase default expression width to 4 (#4995) (f01d309)
- Parsing non-string assertion payloads in noir js (AztecProtocol/aztec-packages#6079) (73a635e)
- Remove query to backend to get expression width (#4975) (e5f356b)
- Set aztec private functions to be recursive (AztecProtocol/aztec-packages#6192) (73a635e)
- Compute the correct slice length when coercing from a literal array of complex types (#4986) (f3f1150)
- Defer overflow checks for unsigned integers to acir-gen (#4832) (b577761)
- Fix no predicates for brillig with intermediate functions (#5015) (9c6de4b)
- Fixed several vulnerabilities in U128, added some tests (#5024) (e5ab24d)
- Ignore no_predicates in brillig functions (#5012) (b541e79)
- Set index and value to 0 for array_get with predicate (#4971) (c49d3a9)
- Remove
Opcode::Brillig
from ACIR (AztecProtocol/aztec-packages#5995) (73a635e)
0.29.0 (2024-05-03)
- use
distinct
return value witnesses by default (#4951) - Bit shift is restricted to u8 right operand (#4907)
- Add
#[inline(tag)]
attribute and codegen (#4913) (1ec9cdc) - Add de-sugaring for
impl Trait
in function parameters (#4919) (8aad2e4) - Add variable size sha256 (#4920) (dbfca58)
- Bit shift is restricted to u8 right operand (#4907) (c4b0369)
- Complex outputs from acir call (#4952) (2e085b9)
- experimental:
comptime
globals (#4918) (8a3c7f1) - Handle
BrilligCall
opcodes in the debugger (#4897) (b380dc4) - Handle
no_predicates
attribute (#4942) (0ce04d3) - Handle empty response foreign calls without an external resolver (#4959) (0154bde)
- Optimize array sets in if conditions (alternate version) (#4716) (a87c655)
- Use
distinct
return value witnesses by default (#4951) (5f1b584)
- Ban self-referential structs (#4883) (800f670)
- Discard ref counts during unrolling (#4923) (91062db)
- Ensure where clauses propagated to trait default definitions (#4894) (aaac0f6)
- Move remove_if_else pass after second inlining (#4976) (96fb3e9)
- Nested array equality (#4903) (0cf2e2a)
- Require for all foldable functions to use distinct return (#4949) (d4c6806)
- Use annotated type when checking declaration (#4966) (f7fa696)
0.28.0 (2024-04-24)
- Add
as_array
and remove_slice
variants of hash functions (#4675) - reserve keyword
super
(#4836) - contract interfaces and better function calls (AztecProtocol/aztec-packages#5687)
- change backend width to 4 (AztecProtocol/aztec-packages#5374)
- Use fixed size arrays in black box functions where sizes are known (AztecProtocol/aztec-packages#5620)
- trap with revert data (AztecProtocol/aztec-packages#5732)
- acir: BrilligCall opcode (AztecProtocol/aztec-packages#5709)
- remove fixed-length keccak256 (AztecProtocol/aztec-packages#5617)
- storage_layout and
#[aztec(storage)]
(AztecProtocol/aztec-packages#5387) - acir: Add predicate to call opcode (AztecProtocol/aztec-packages#5616)
- contract_abi-exports (AztecProtocol/aztec-packages#5386)
- acir_gen: Brillig stdlib (#4848) (0c8175c)
- acir: Add predicate to call opcode (AztecProtocol/aztec-packages#5616) (2bd006a)
- acir: BrilligCall opcode (AztecProtocol/aztec-packages#5709) (0f9ae0a)
- Add
min
andmax
functions to the stdlib (#4839) (6cfb328) - Add
NARGO_FOREIGN_CALL_TIMEOUT
environment variable (#4780) (791f1c8) - Add comptime Interpreter (#4821) (5992436)
- Add return values to aztec fns (AztecProtocol/aztec-packages#5389) (2bd006a)
- Allow numeric generics to non inlined ACIR functions (#4834) (9cc03a4)
- avm: Integrate AVM with initializers (AztecProtocol/aztec-packages#5469) (2bd006a)
- Brillig heterogeneous memory cells (AztecProtocol/aztec-packages#5608) (305bcdc)
- Brillig pointer codegen and execution (AztecProtocol/aztec-packages#5737) (0f9ae0a)
- Change backend width to 4 (AztecProtocol/aztec-packages#5374) (0f9ae0a)
- Contract interfaces and better function calls (AztecProtocol/aztec-packages#5687) (0f9ae0a)
- Contract_abi-exports (AztecProtocol/aztec-packages#5386) (2bd006a)
- experimental: Add
comptime
keyword (#4840) (4dfd7f0) - Get last mock oracles params (#4789) (1d96937)
- Impl of missing functionality in new key store (AztecProtocol/aztec-packages#5750) (0f9ae0a)
- Implement
Eq
trait onBoundedVec
(#4830) (6cefe16) - Lalrpop lexer prototype (#4656) (25ad018)
- nargo: Handle call stacks for multiple Acir calls (#4711) (5b23171)
- Narrow ABI encoding errors down to target problem argument/field (#4798) (e412e6e)
- Proving the rollup circuits (AztecProtocol/aztec-packages#5599) (5b352d6)
- Reserve keyword
super
(#4836) (d5028a6) - Restore hashing args via slice for performance (AztecProtocol/aztec-packages#5539) (2bd006a)
- Simplify
BoundedVec::eq
(#4838) (3d33a33) - simulator: Fetch return values at circuit execution (AztecProtocol/aztec-packages#5642) (305bcdc)
- Split
backend_barretenburg
into prover and verifier classes (#4769) (ce1e662) - Storage_layout and
#[aztec(storage)]
(AztecProtocol/aztec-packages#5387) (2bd006a) - Sync from noir (AztecProtocol/aztec-packages#5572) (2bd006a)
- Sync from noir (AztecProtocol/aztec-packages#5619) (2bd006a)
- Sync from noir (AztecProtocol/aztec-packages#5697) (305bcdc)
- Sync from noir (AztecProtocol/aztec-packages#5725) (5b352d6)
- Sync from noir (AztecProtocol/aztec-packages#5794) (0f9ae0a)
- Sync from noir (AztecProtocol/aztec-packages#5814) (0f9ae0a)
- Sync from noir (AztecProtocol/aztec-packages#5935) (1b867b1)
- Sync from noir (AztecProtocol/aztec-packages#5955) (1b867b1)
- Sync from noir (AztecProtocol/aztec-packages#5999) (1b867b1)
- Trap with revert data (AztecProtocol/aztec-packages#5732) (0f9ae0a)
- Unroll loops iteratively (#4779) (f831b0b)
- Use fixed size arrays in black box functions where sizes are known (AztecProtocol/aztec-packages#5620) (0f9ae0a)
- Variable length returns (AztecProtocol/aztec-packages#5633) (305bcdc)
- ArrayGet and Set are not pure (#4783) (90ee479)
- Avoid huge unrolling in hash_args (AztecProtocol/aztec-packages#5703) (305bcdc)
- Catch panics from EC point creation (e.g. the point is at infinity) (#4790) (645dba1)
- Don't reuse brillig with slice arguments (AztecProtocol/aztec-packages#5800) (0f9ae0a)
- experimental: Skip over comptime functions in scan pass (#4893) (f267d42)
- Fix curve parameters for bigints (#4900) (5985e42)
- Fix panic when returning a zeroed unit value (#4797) (2ea9292)
- Issue 4682 and add solver for unconstrained bigintegers (#4729) (e4d33c1)
- Primary_message typo in errors.rs (AztecProtocol/aztec-packages#5646) (5b352d6)
- Proper field inversion for bigints (#4802) (b46d0e3)
- Reset the noir-gates-diff report on master (#4878) (50bc325)
- Update noir-gates-diff commit to use master reference report (#4891) (4a3ffb7)
- Add
as_array
and remove_slice
variants of hash functions (#4675) (8e39706) - Remove fixed-length keccak256 (AztecProtocol/aztec-packages#5617) (305bcdc)
0.27.0 (2024-04-10)
- Brillig typed memory (AztecProtocol/aztec-packages#5395)
- acir_gen: Fold attribute at compile-time and initial non inlined ACIR (AztecProtocol/aztec-packages#5341) (a0f7474)
- acvm_js: Execute program (#4694) (386f6d0)
- acvm: Execute multiple circuits (AztecProtocol/aztec-packages#5380) (a0f7474)
- Add
remove_enable_side_effects
SSA pass (#4224) (94952db) - Allow slices to brillig entry points (#4713) (62423d5)
- Brillig typed memory (AztecProtocol/aztec-packages#5395) (0bc18c4)
- docs: Documenting noir codegen (#4454) (24f6d85)
- Improve nargo check cli with --override flag and feedback for existing files (#4575) (5e7fbd4)
- Improve optimisations on range constraints (#4690) (96b8110)
- Improve SSA type-awareness in EQ and MUL instructions (#4691) (669f1a0)
- nargo: Multiple circuits info for binary programs (#4719) (50d2735)
- "Types in a binary operation should match, but found T and T" (#4648) (30c9f31)
- acvm: Mark outputs of Opcode::Call solvable (#4708) (8fea405)
- Correct ICE panic messages in brillig
convert_black_box_call
(#4761) (f3eee6c) - Error when a type variable is unbound during monomorphization instead of defaulting to Field (#4674) (03cdba4)
- Field comparisons (#4704) (079cb2a)
- Impl search no longer selects an impl if multiple are applicable (#4662) (0150600)
- Last use analysis & make it an SSA pass (#4686) (0d3d5fd)
- Slice coercions (#4640) (c0bae17)
- ssa: Accurate constant type for slice dummy data in flattening (#4661) (b87654e)
- ssa: Do not use get_value_max_num_bits when we want pure type information (#4700) (b55a580)
- ssa: Fix slice intrinsic handling in the capacity tracker (#4643) (1b50ce1)
- Unknown slice lengths coming from as_slice (#4725) (f21129e)
- Update commit for noir-gates-diff (#4773) (a9766c5)
0.26.0 (2024-03-25)
- acir: Program and witness stack structure (AztecProtocol/aztec-packages#5149)
- automatic NoteInterface and NoteGetterOptions auto select (AztecProtocol/aztec-packages#4508)
- separating out array and slice types in the AST (#4504)
- Acir call opcode (AztecProtocol/aztec-packages#4773)
- Support contracts with no constructor (AztecProtocol/aztec-packages#5175)
- Remove open keyword from Noir (AztecProtocol/aztec-packages#4967)
- Acir call opcode (AztecProtocol/aztec-packages#4773) (c3c9e19)
- acir: Program and witness stack structure (AztecProtocol/aztec-packages#5149) (13eb71b)
- Add
break
andcontinue
in unconstrained code (#4569) (f2f827d) - Add
nargo compile --watch
command (#4464) (44e60b6) - Add as_slice builtin function, add execution test (#4523) (6a9ea35)
- Add checks for bit size consistency on brillig gen (#4542) (f3243b7)
- Add CMOV instruction to brillig and brillig gen (AztecProtocol/aztec-packages#5308) (13eb71b)
- Add experimental
quote
expression to parser (#4595) (4c3a30b) - Add more impls on Option (#4549) (4cf700b)
- Add specific error for attempting
string[x] = ".."
(#4611) (ff95fd9) - Allow usage of noir
#[test]
syntax in stdlib (#4553) (a8b7cdb) - Automatic NoteInterface and NoteGetterOptions auto select (AztecProtocol/aztec-packages#4508) (13eb71b)
- avm: Brillig CONST of size > u128 (AztecProtocol/aztec-packages#5217) (c3c9e19)
- Brillig IR refactor (AztecProtocol/aztec-packages#5233) (c3c9e19)
- Check initialization arguments in constructors (AztecProtocol/aztec-packages#5144) (d4213a0)
- Check initializer msg.sender matches deployer from address preimage (AztecProtocol/aztec-packages#5222) (c3c9e19)
- Initial Earthly CI (AztecProtocol/aztec-packages#5069) (c3c9e19)
- Integrated native ACVM (AztecProtocol/aztec-packages#4903) (a6016b4)
- Make brillig-gen more AVM-friendly (AztecProtocol/aztec-packages#5091) (a6016b4)
- New brillig field operations and refactor of binary operations (AztecProtocol/aztec-packages#5208) (c3c9e19)
- Optimize sha2 implementation (#4441) (80373d6)
- RC optimization pass (#4560) (dfa5126)
- Remove curly braces with fmt (#4529) (fe9a437)
- Separating out array and slice types in the AST (#4504) (9a241f9)
- Signed integer division and modulus in brillig gen (AztecProtocol/aztec-packages#5279) (c3c9e19)
- Support contracts with no constructor (AztecProtocol/aztec-packages#5175) (c3c9e19)
- Sync from noir (AztecProtocol/aztec-packages#5234) (c3c9e19)
- Sync from noir (AztecProtocol/aztec-packages#5286) (c3c9e19)
- Visible aliases for nargo commands (#4453) (773cf19)
- acir_gen: More granular element sizes array check (#4528) (f93d16e)
- Added error messages for passing oracles and references from unconstrained to constrained functions (#4570) (265bd8b)
- Allow non-integer globals to reference struct methods (#4490) (00d6494)
- Dynamic assert messages in brillig (#4531) (e24d3fc)
- Evaluate operators in globals in types (#4537) (c8aa16b)
- Make
nargo
the default binary for cargo run (#4554) (de4986e) - Signed integer comparisons in brillig (#4579) (938d5e8)
- ssa: Use accurate type during SSA AsSlice simplficiation (#4610) (0473497)
- Substitute generics when checking the field count of a type (#4547) (eeeebac)
- Remove open keyword from Noir (AztecProtocol/aztec-packages#4967) (a6016b4)
0.25.0 (2024-03-11)
- Internal as a macro (AztecProtocol/aztec-packages#4898)
- reserve
unchecked
keyword (#4432) - Remove empty value from bounded vec (#4431)
- Ban Fields in for loop indices and bitwise ops (#4376)
- Bump msrv to 1.73.0 (#4406)
- ci: Bump MSRV to 1.72.1 and enforce that ACVM can be published using updated lockfile (#4385)
- Restrict bit sizes (#4235)
- move noir out of yarn-project (AztecProtocol/aztec-packages#4479)
- note type ids (AztecProtocol/aztec-packages#4500)
- Add eddsa_poseidon_to_pub function to stdlib with test + docs (#4473) (00d2c32)
- Add HashMap to the stdlib (#4242) (650ffc5)
- Add option to set max memory for bb.js (#4227) (8a6b131)
- Add overflow and underflow checks for unsigned integers in brillig (#4445) (21fc4b8)
- Add poseidon2 opcode implementation for acvm/brillig, and Noir (#4398) (10e8292)
- Added cast opcode and cast calldata (AztecProtocol/aztec-packages#4423) (78ef013)
- Allow type aliases to reference other aliases (#4353) (c44ef14)
- Backpropagate constants in ACIR during optimization (#3926) (aad0da0)
- ci: Use wasm-opt when compiling wasm packages (#4334) (e382921)
- DAP Preflight and debugger compilation options (#4185) (e0ad0b2)
- Expose separate functions to compile programs vs contracts in
noir_wasm
(#4413) (7cd5fdb) - Internal as a macro (AztecProtocol/aztec-packages#4898) (5f57ebb)
- Note type ids (AztecProtocol/aztec-packages#4500) (78ef013)
- Restrict bit sizes (#4235) (1048f81)
- Run tests in parallel in
nargo test
(#4484) (761734e) - Skip redundant range checks in brillig (#4460) (cb4c1c5)
- Sync from aztec-packages (#4483) (fe8f277)
- Track stack frames and their variables in the debugger (#4188) (ae1a9d9)
- TypeVariableKind for just Integers (#4118) (c956be8)
- Update error message when trying to load workspace as dependency (#4393) (d2585e7)
- acir: Array dynamic flatten (#4351) (b2aaeab)
- acir: Use types on dynamic arrays (#4364) (ba2c541)
- Add
follow_bindings
to followType::Alias
links (#4521) (b94adb9) - Add handling to
noir_wasm
for projects without dependencies (#4344) (4982251) - Allow type aliases in main (#4505) (8a5359c)
- Ban Fields in for loop indices and bitwise ops (#4376) (601fd9a)
- Brillig range check with consistent bit size (#4357) (ea47d4a)
- Build noir_codegen when publishing (#4448) (cb1ceee)
- Consistent bit size for truncate (#4370) (dcd7a1e)
- Correct formatting for databus visibility types (#4423) (cd796de)
- Correct invalid brillig codegen for
EmbeddedCurvePoint.add
(#4382) (5051ec4) - docs: Update install versions (#4396) (b283637)
- docs: Update noirjs_app for 0.23 (#4378) (f77f702)
- Enforce matching types of binary ops in SSA (#4391) (70866ae)
- Fix brillig slowdown when assigning arrays in loops (#4472) (2a53545)
- flake: Stop flake.nix removing ignored-tests.txt (#4455) (ebaf05a)
- Force src impl for == on slices (#4507) (1691274)
- Handling of gh deps in noir_wasm (#4499) (1d65370)
- Iterative flattening pass (#4492) (33c1ef7)
- Noir test incorrect reporting (AztecProtocol/aztec-packages#4925) (5f57ebb)
- Only add
.nr
files to file manager (#4380) (8536c7c) - Remove panic when generic array length is not resolvable (#4408) (00ab3db)
- Remove print from monomorphization pass (#4417) (27c66b3)
- ssa: Handle mergers of slices returned from calls (#4496) (f988d02)
- Use correct type for numeric generics (#4386) (0a1d109)
- Variables from trait constraints being permanently bound over when used within a trait impl (#4450) (ac60ef5)
- Bump msrv to 1.73.0 (#4406) (b5e5c30)
- ci: Bump MSRV to 1.72.1 and enforce that ACVM can be published using updated lockfile (#4385) (2fc95d2)
- Move noir out of yarn-project (AztecProtocol/aztec-packages#4479) (78ef013)
- Remove empty value from bounded vec (#4431) (b9384fb)
- Reserve
unchecked
keyword (#4432) (9544813)
0.24.0 (2024-02-12)
- rename bigint_neg into bigint_sub (AztecProtocol/aztec-packages#4420)
- Add expression width into acir (AztecProtocol/aztec-packages#4014)
- init storage macro (AztecProtocol/aztec-packages#4200)
- acir: Move
is_recursive
flag to be part of the circuit definition (AztecProtocol/aztec-packages#4221) - Sync commits from
aztec-packages
(#4144)
- Add bit size to const opcode (AztecProtocol/aztec-packages#4385) (158c8ce)
- Add brillig array index check (#4127) (c29f85f)
- Add definitions for From and Into traits to Noir prelude (#4169) (4421ce4)
- Add expression width into acir (AztecProtocol/aztec-packages#4014) (158c8ce)
- Add instrumentation for tracking variables in debugging (#4122) (c58d691)
- Add option to print monomorphized program (#4119) (80f7e29)
- Add support for overriding expression width (#4117) (c8026d5)
- Add warnings for usage of restricted bit sizes (#4234) (0ffc38b)
- Allow bitshifts to be represented in SSA for brillig (#4301) (d86ff1a)
- Allow brillig to read arrays directly from memory (AztecProtocol/aztec-packages#4460) (158c8ce)
- Allow globals to refer to any expression (#4293) (479330e)
- Allow nested arrays and vectors in Brillig foreign calls (AztecProtocol/aztec-packages#4478) (158c8ce)
- Allow variables and stack trace inspection in the debugger (#4184) (bf263fc)
- avm: Back in avm context with macro - refactor context (AztecProtocol/aztec-packages#4438) (158c8ce)
- aztec-nr: Initial work for aztec public vm macro (AztecProtocol/aztec-packages#4400) (158c8ce)
- Deallocate stack items at the instruction level (#4339) (8f024a8)
- Disable constraint bubbling pass (#4131) (9ba2de6)
- Disable unused variable checks on low-level and oracle functions (#4179) (8f70e57)
- Evaluation of dynamic assert messages (#4101) (c284e01)
- Improve Error Handling for Cargo in Bootstrap Script (#4211) (3a90849)
- Init storage macro (AztecProtocol/aztec-packages#4200) (158c8ce)
- lsp: Goto type reference for Struct (#4091) (d56cac2)
- Move bounded_vec into the noir stdlib (#4197) (c50621f)
- Multiply first to allow more ACIR gen optimizations (#4201) (882639d)
- Option expect method (#4219) (8e042f2)
- Perform constraints on uncasted values if they are the same type (#4303) (816fa85)
- Remove predicate from
sort
intrinsic function (#4228) (d646243) - Remove replacement of boolean range opcodes with
AssertZero
opcodes (#4107) (dac0e87) - Replace bitwise ANDs used for truncation with
Instruction::Truncate
(#4327) (eb67ff6) - Replace modulo operations with truncations where possible (#4329) (70f2435)
- Separate compilation and expression narrowing in
nargo
interface (#4100) (62a4e37) - Simplify all unsigned constant NOT instructions (#4230) (fab4a6e)
- Sync commits from
aztec-packages
(#4144) (0205d3b) - Use constraint information to perform constant folding (#4060) (9a4bf16)
- Accurate tracking of slice capacities across blocks (#4240) (7420dbb)
- Allow function calls in global definitions (#4320) (0dc205c)
- Allow performing bitwise NOT on unsigned integers (#4229) (b3ddf10)
- Apply generic arguments from trait constraints before instantiating identifiers (#4121) (eb6fc0f)
- Apply range constraints to return values from unconstrained functions (#4217) (3af2a89)
- Apply trait constraints from method calls (#4152) (68c5486)
- Better errors for missing
fn
keyword (#4154) (057c208) - Check for tests in all packages before failing due to an unsatisfied test filter (#4114) (1107373)
- Clean error when attemping to return a slice from Brillig to ACIR (#4280) (bcad4ec)
- Correct result when assigning shared arrays in unconstrained code (#4210) (bdd8a96)
- docs: Codegen docs before cutting a new version (#4183) (2914310)
- Ensure that destination register is allocated when moving between registers in brillig gen (#4316) (ca0a56e)
- Ensure that unconstrained entrypoint functions don't generate constraints (#4292) (fae4ead)
- From field with constant values (#4226) (593916b)
- lsp: Crash when file not in workspace (#4146) (cf7130f)
- lsp: Replace panics with errors (#4209) (26e9618)
- Maintain correct type when simplifying
x ^ x
(#4082) (9d83c2b) - Message formatting for assert statement (#4323) (3972ead)
- Prevent debugger crashing on circuits with no opcodes (#4283) (2e32845)
- Prevent declarations of blackbox functions outside of the stdlib (#4177) (9fb6b09)
- Remove panic from
init_log_level
inacvm_js
(#4195) (2e26530) - Respect order in bubble up for redundant asserts (#4109) (189aa48)
- Revert "correct result when assigning shared arrays" and added regression test (#4333) (05e78b3)
- Save the data bus to the current function before generating others (#4047) (0a5bd4f)
- Simplify constant assert messages into
ConstrainError::Static
(#4287) (fd15052) - Ssa typing for array & slice indexes (#4278) (4074bab)
- Ssa typing for assign_lvalue_index (#4289) (37f149c)
- SSA typing for right shifts (#4302) (41ee1aa)
- Ssa typing of make_offset (#4277) (e4378ee)
- Track graphs of item dependencies to find dependency cycles (#4266) (61eabf1)
- Type check ACIR mutable reference passed to brillig (#4281) (7e139de)
- Update array method type signatures in the docs (#4178) (7c0a955)
- Zero out input to
to_radix
calls if inactive (#4116) (3f5bad3)
- acir: Move
is_recursive
flag to be part of the circuit definition (AztecProtocol/aztec-packages#4221) (158c8ce) - Rename bigint_neg into bigint_sub (AztecProtocol/aztec-packages#4420) (158c8ce)
0.23.0 (2024-01-22)
- Ban nested slices (#4018)
- Breaking changes from aztec-packages (#3955)
- Rename Arithmetic opcode to AssertZero (#3840)
- remove circuit methods from noir_wasm (#3869)
- Add
assert_max_bit_size
method toField
(#4016) (bc9a44f) - Add
noir-compiler
checks toaztec_macros
(#4031) (420a5c7) - Add a
--force
flag to force a full recompile (#4054) (27a8e68) - Add dependency resolver for
noir_wasm
and implementFileManager
for consistency with native interface (#3891) (c29c7d7) - Add foreign call support to
noir_codegen
functions (#3933) (e5e52a8) - Add MVP
nargo export
command (#3870) (fbb51ed) - Add support for codegenning multiple functions which use the same structs in their interface (#3868) (1dcfcc5)
- Added efficient field comparisons for bn254 (#4042) (1f9cad0)
- Assert maximum bit size when creating a U128 from an integer (#4024) (8f9c7e4)
- Avoid unnecessary range checks by inspecting instructions for casts (#4039) (378c18e)
- Breaking changes from aztec-packages (#3955) (5be049e)
- Bubble up
Instruction::Constrain
s to be applied as early as possible. (#4065) (66f5cdd) - Cached LSP parsing (#4083) (b4f724e)
- Comparison for signed integers (#3873) (bcbd49b)
- Decompose
Instruction::Cast
to have an explicit truncation instruction (#3946) (35f18ef) - Decompose
Instruction::Constrain
into multiple more basic constraints (#3892) (51cf9d3) - Docker testing flow (#3895) (179c90d)
- Extract parsing to its own pass and do it in parallel (#4063) (569cbbc)
- Implement
Eq
trait on curve points (#3944) (abf751a) - Implement DAP protocol in Nargo (#3627) (13834d4)
- Implement generic traits (#4000) (916fd15)
- Implement Operator Overloading (#3931) (4b16090)
- lsp: Cache definitions for goto requests (#3930) (4a2140f)
- lsp: Goto global (#4043) (15237b3)
- lsp: Goto struct member inside Impl method (#3918) (99c2c5a)
- lsp: Goto trait from trait impl (#3956) (eb566e2)
- lsp: Goto trait method declaration (#3991) (eb79166)
- lsp: Goto type alias (#4061) (dc83385)
- lsp: Goto type definition (#4029) (8bb4ddf)
- lsp: Re-add code lens feature with improved performance (#3829) (8f5cd6c)
- Optimize array ops for arrays of structs (#4027) (c9ec0d8)
- Optimize logic gate ACIR-gen (#3897) (926460a)
- Prefer
AcirContext
-native methods for performing logic operations (#3898) (0ec39b8) - Remove range constraints from witnesses which are constrained to be constants (#3928) (afe9c7a)
- Remove truncation from brillig casts (#3997) (857ff97)
- Remove truncations which can be seen to be noops using type information (#3953) (cc3c2c2)
- Remove unnecessary predicate from
Lt
instruction (#3922) (a63433f) - Simplify chains of casts to be all in terms of the original
ValueId
(#3984) (2384d3e) - Simplify multiplications by
0
or1
in ACIR gen (#3924) (e58844d) - Support for u128 (#3913) (b4911dc)
- Support printing more types (#4071) (f5c4632)
- Sync
aztec-packages
(#4011) (fee2452) - Sync commits from
aztec-packages
(#4068) (7a8f3a3) - Use singleton
WasmBlackBoxFunctionSolver
innoir_js
(#3966) (10b28de)
- Acir gen doesn't panic on unsupported BB function (#3866) (34fd978)
- Allow abi encoding arrays of structs from JS (#3867) (9b713f8)
- Allow abi encoding tuples from JS (#3894) (f7fa181)
- Allow ast when macro errors (#4005) (efccec3)
- Allow lsp to run inside of a docker container (#3876) (2529977)
- Bit-shifts for signed integers (#3890) (6ddd98a)
- Checks for cyclic dependencies (#3699) (642011a)
- debugger: Crash when stepping through locations spanning multiple lines (#3920) (223e860)
- Don't fail if no tests and the user didn't provide a pattern (#3864) (decbd0f)
- Fix advisory issue in cargo-deny (#4077) (19baea0)
- Fixing dark mode background on the CTA button (#3882) (57eae42)
- Fixup exports from
noir_wasm
(#4022) (358cdd2) - Handle multiple imports in the same file (#3903) (219423e)
- Hoist constraints on inputs to top of program (#4076) (447aa34)
- Implement missing codegen for
BlackBoxFunc::EcdsaSecp256r1
in brillig (#3943) (2c5eceb) - Improve
nargo test
output (#3973) (3ab5ff4) - Make
constant_to_radix
emit a slice instead of an array (#4049) (5cdb1d0) - Operator overloading & static trait method references resolving to generic impls (#3967) (f1de8fa)
- Preserve brillig entrypoint functions without arguments (#3951) (1111465)
- Prevent
Instruction::Constrain
s for non-primitive types (#3916) (467948f) - Remove panic for adding an invalid crate name in wasm compiler (#3977) (7a1baa5)
- Return error rather instead of panicking on invalid circuit (#3976) (67201bf)
- Search all levels of struct nesting before codegenning primitive types (#3970) (13ae014)
- Update generics docs to mention we have traits now (#3980) (c2acdf1)
- Ban nested slices (#4018) (f8a1fb7)
- Remove circuit methods from noir_wasm (#3869) (12d884e)
- Rename Arithmetic opcode to AssertZero (#3840) (836f171)
0.22.0 (2023-12-18)
- Remove unused methods on ACIR opcodes (#3841)
- Remove backend field from artifacts (#3819)
- Remove partial backend feature (#3805)
- Remove backend field from artifacts (#3819) (fa1cf5f)
- Remove partial backend feature (#3805) (0383100)
- Remove unused methods on ACIR opcodes (#3841) (9e5d0e8)
0.21.0 (2023-12-15)
- Add
prelude.nr
(#3693) (5f0f81f) - Add some traits to the stdlib (#3796) (8e11352)
- Add support for writing tracing debug info to file (#3790) (98a5004)
- Allow passing custom foreign call handlers when creating proofs in NoirJS (#3764) (6076e08)
- Allow underscores in integer literals (#3746) (2c06a64)
- Avoid overflow checks on boolean multiplication (#3745) (9b5b686)
- Aztec-packages (#3754) (c043265)
- Dockerfile to test cargo and JS packages (#3684) (513d619)
- Docs landing page with a playground (#3667) (9a95fbe)
- Enhance test information output (#3696) (468fbbc)
- Implement print without newline (#3650) (9827dfe)
- lsp: Add goto definition for locals (#3705) (9dd465c)
- lsp: Add goto definition for structs (#3718) (a576c5b)
- Optimize out unnecessary truncation instructions (#3717) (c9c72ae)
- Remove experimental feature warning for traits (#3783) (cb52242)
- Reorganizing docs to fit diataxis framework (#3711) (54a1ed5)
- Simplify explicit equality assertions to assert equality directly (#3708) (2fc46e2)
- Speed up transformation of debug messages (#3815) (2a8af1e)
try_unify
no longer binds types on failure (#3697) (f03e581)- Add missing assertion to test (#3765) (bcbe116)
- Add negative integer literals (#3690) (8b3a68f)
- Allow trait method references from the trait name (#3774) (cfa34d4)
- Deserialize odd length hex literals (#3747) (4000fb2)
- docs: Trigger
update-docs
workflow when therelease-please
PR gets merged and not on every merge to master (#3677) (9a3d1d2) - Initialize strings as u8 array (#3682) (8da40b7)
- lsp: Package resolution on save (#3794) (14f2fff)
- Parse negative integer literals (#3698) (463ab06)
- Pub is required on return for entry points (#3616) (7f1d796)
- Remove
noirc_driver/aztec
feature flag in docker (#3784) (a48d562) - Remove include-keys option (#3692) (95d7ce2)
- Revert change to modify version in workspace file for acvm dependencies (#3673) (0696f75)
- Sequence update-lockfile workflow so it gets modified after the ACVM version in the root has been changed (#3676) (c00cd85)
- ssa: Handle array arguments to side effectual constrain statements (#3740) (028d65e)
- Stop cloning Traits! (#3736) (fcff412)
- Stop issuing unused variable warnings for variables in trait definitions (#3797) (0bb44c3)
- Unsigned integers cannot be negated (#3688) (f904ae1)
- Make file manager read-only to the compiler (#3760) (e3dcc21)
- Remove unused
source-resolver
package (#3791) (57d2505)
0.20.0 (2023-12-01)
- avoid integer overflows (#2713)
- return Pedersen structure in stdlib (#3190)
- noir-wasm outputs debug symbols (#3317)
- move mimc to hash submodule (#3361)
- bump MSRV to 1.71.1 (#3353)
- Add semver checks for the compiler version in Nargo.toml (#3336)
- Move circuit serialization circuit into acir (#3345)
- change stdlib function
pedersen
topedersen_commitment
(#3341) - expose pedersen hash in acir and bb solver (#3269)
- Switch to new pedersen implementation (#3151)
- Pass ACIR to ACVM by reference rather than passing ownership (#2872)
- Make for loops a statement (#2975)
- traits: trait functions with a default implementation must not be followed by a semicolon (#2987)
- wasm: improve and simplify wasm compiler interface (#2976)
- wasm: update wasm artifacts to match cli artifacts (#2973)
- Maintain shape of foreign call arguments (#2935)
- update to
bb
version 0.7.3 (#2729) - noir_js: Rename inner and outer proof methods (#2845)
generateWitness
now returns a serialized witness file (#2842)- Issue an error when a module is declared twice & fix module search path (#2801)
- Default integers to u64 (#2764)
compute_note_hash_and_nullifier
check (#3216) (4963c6c)- abi: Throw errors rather than returning string from
noirc_abi_wasm
(#2817) (df7b42c) - abi: Tuples as inputs/outputs to main (#2899) (d8bd78f)
- acir: Enable dynamic indices on non-homogenous arrays (#2703) (622d2e4)
- acir: Handle dynamic array operations for nested slices (#3187) (e026319)
- acir: Set dynamic array values (#3054) (e871866)
- acvm_js: Export black box solver functions (#2812) (da8a98e)
- acvm: Separate ACVM optimizations and transformations (#2979) (5865d1a)
- Add --check option to nargo fmt for dry-run formatting verification (#3530) (4469707)
- Add
destroy
method toNoir
(#3105) (7e40274) - Add
execute
method toNoir
class (#3081) (17bdd7e) - Add
FieldElement::from<usize>
implementation (#3647) (8b7c5aa) - Add
noir_codegen
package (#3392) (6c4cd4d) - Add ACIR serializer C++ codegen (#2961) (7556982)
- Add an options object to
BarretenbergBackend
constructor (#3105) (7e40274) - Add aztec selectors for event structs (#2983) (982380e)
- Add bb interface implementation (#2902) (fe92dc0)
- Add check for overlapping generic traits (#3307) (8cf81b6)
- Add conditional compilation of methods based on the underlying field being used (#3045) (2e008e2)
- Add crate for pub modifier (#3271) (e7a1a1a)
- Add debugger commands to introspect (and modify) the current state (#3391) (9e1ad85)
- Add experimental REPL-based debugger (#2995) (281c696)
- Add exports of JS black box solvers to noirJS (#3295) (8369871)
- Add generic count check for trait methods (#3382) (a9f9717)
- Add JS types for ABI and input maps (#3023) (599e7a1)
- Add LSP command to profile opcodes in vscode (#3496) (6fbf77a)
- Add lsp formatting (#3433) (286c876)
- Add noir types package (#2893) (e8fc868)
- Add package version to Nargo.toml metadata (#3427) (9e1717c)
- Add profile info print out (#3425) (a8b5fa8)
- Add semver checks for the compiler version in Nargo.toml (#3336) (0e530cf)
- Add special case for boolean AND in acir-gen (#3615) (824039b)
- Add support for tuple values in
noir_codegen
(#3592) (346d75f) - Allow a trait to be implemented multiple times for the same struct (#3292) (51831df)
- Allow providing custom foreign call executors to
execute_circuit
(#3506) (d27db33) - Allow traits to have generic functions (#3365) (0f9af65)
- Avoid integer overflows (#2713) (7d7d632)
- Aztec-packages (#3599) (2cd6dc3)
- Aztec-packages (#3626) (e0a96ea)
- Cache debug artifacts (#3133) (c5a6229)
- Check where clauses when searching for trait impls (#3407) (84c6604)
- Codegen typed interfaces for functions in
noir_codegen
(#3533) (290c463) - Compile without a backend (#3437) (d69cf5d)
- Complex slice inputs for dynamic slice builtins (#3617) (8b23b34)
- Contract events in artifacts (#2873) (4765c82)
- Copy on write optimization for brillig (#3522) (da29c02)
- Data bus (#3508) (6b0bdbc)
- debugger: Highlight current src code loc (#3174) (6b87582)
- debugger: Print limited source code context (#3217) (dcda1c7)
- Default integers to u64 (#2764) (01cb041)
- Dynamic indexing of non-homogenous slices (#2883) (72c3661)
- Enable the
fmt
command in the help menu (#3328) (63d414c) - Expand trait impl overlap check to cover generic types (#3320) (a01549b)
- Export
CompiledCircuit
from codegened TS (#3589) (e06c675) - Expose pedersen hash in acir and bb solver (#3269) (0108b6c)
- Extract Brillig VM to allow step debugging (#3259) (f6431f9)
- Format infix expressions (#3001) (7926ada)
- formatter: Add formatter support for array literals (#3061) (a535321)
- Handle constant index operations on simple slices (#3464) (7ae12f8)
- Handle warnings in evaluator (#3205) (5cfd156)
- Implement
bound_constraint_with_offset
in terms ofAcirVar
s (#3233) (8d89cb5) - Implement automatic dereferencing for index expressions (#3082) (8221bfd)
- Implement automatic dereferencing for indexing lvalues (#3083) (6e2b70a)
- Implement euclidean division and signed division in terms of
AcirVar
s (#3230) (b8b7782) - Implement impl specialization (#3087) (44716fa)
- Implement integer printing (#3577) (6601408)
- Implement raw string literals (#3556) (87a302f)
- Implement string escape sequences (#2803) (f7529b8)
- Implement where clauses on impls (#3324) (4c3d1de)
- lsp: Add "info" codelens (#2982) (80770d9)
- lsp: Add goto definition for functions (#3656) (7bb7356)
- Maintain shape of foreign call arguments (#2935) (f7869e6)
- Make generic impls callable (#3297) (8d9b738)
- Manage breakpoints and allow restarting a debugging session (#3325) (f502108)
- Nargo test runtime callstacks and assert messages without string matching (#2953) (1b6a4e6)
- noir_js: Allow providing foreign call handlers in noirJS (#3294) (c76b0f8)
- Noir-wasm outputs debug symbols (#3317) (f9933fa)
- Noir-wasm takes dependency graph (#3213) (a2c8ebd)
- Old docs issues (#3195) (26746c5)
- Optimize euclidean division acir-gen (#3121) (2c175c0)
- Oracle mocker for nargo test (#2928) (0dd1e77)
- Pass ACIR to ACVM by reference rather than passing ownership (#2872) (b3a9c34)
- Pass brillig bytecode to VM by reference (#3030) (4ee290b)
- Perform compile-time euclidean division on constants (#3231) (3866d7e)
- Prevent unnecessary witness creation in euclidean division (#2980) (c6f660e)
- Properly track equivalence of witnesses generated for black box functions (#3428) (20b70c2)
- Provide formatting subcommand (#2640) (a38b15f)
- Publish aztec build of noir_wasm (#3049) (3b51f4d)
- Refactor debugger and separate core from UI (#3308) (8466810)
- Remove redundant predicate from brillig quotients (#2784) (a8f18c5)
- Remove type arrays for flat slices (#3466) (8225b2b)
- Remove unnecessary truncation of boolean multiplication (#3122) (39dbcf1)
- Replace boolean range constraints with arithmetic opcodes (#3234) (949222c)
- Return compilation errors from noir_wasm (#3091) (55f63c9)
- Return Pedersen structure in stdlib (#3190) (be30d59)
- Reuse witnesses more when interacting with memory (#3658) (5a4a73d)
- Reuse witnesses which have been assigned constant values during ACIR gen (#3137) (9eb43e2)
- Save Brillig execution state in ACVM (#3026) (88682da)
- Send and receive unflattened public inputs to backend (#3543) (a7bdc67)
- Solve
fixed_base_scalar_mul
black box functions in rust (#3153) (1c1afbc) - ssa: Multiple slice mergers (#2753) (8f76fe5)
- stdlib: Optimize constraint counts in sha256/sha512 (#3253) (d3be552)
- Switch to new pedersen implementation (#3151) (35fb3f7)
- traits: Add impl Trait as function return type #2397 (#3176) (4cb2024)
- traits: Add trait impl for buildin types (#2964) (2c87b27)
- traits: Added checks for duplicated trait associated items (types, consts, functions) (#2927) (d49492c)
- traits: Allow multiple traits to share the same associated function name and to be implemented for the same type (#3126) (004f8dd)
- traits: Implement trait bounds typechecker + monomorphizer passes (#2717) (5ca99b1)
- traits: Improve support for traits static method resolution (#2958) (0d0d8f7)
- traits: Multi module support for traits (#2844) (4deb07f)
- Use ranges instead of a vector for input witness (#3314) (b12b7ec)
- wasm: Improve and simplify wasm compiler interface (#2976) (1b5124b)
- wasm: Update wasm artifacts to match cli artifacts (#2973) (ce16c0b)
- "Missing trait impl" error in trait dispatch (#3440) (52daaec)
compute_note_hash_and_nullifier
compiler check (#3351) (4e2d35f)- 3275: Activate brillig modulo test with negative integers (#3318) (31c493c)
- 3300: Cache warnings into debug artefacts (#3313) (cb5a15b)
- ACIR optimizer should update assertion messages (#3010) (758b6b6)
- acvm: Return false rather than panicking on invalid ECDSA signatures (#2783) (155abc0)
- Add
pub
modifier to grumpkin functions (#3036) (f8990d7) - Add compiler error message for invalid input types (#3220) (989e80d)
- Add size checks to integer literals (#3236) (7f8fe8c)
- Adding proving key initialization (#3322) (3383740)
- Allow
where
clause on all functions and improve error message (#3465) (1647e33) - Allow constructors in parentheses in
if
conditions andfor
ranges (#3219) (ad192d1) - Allow two
TypeVariable::Constant(N)
to unify even if their constants are not equal (#3225) (cc4ca4b) - Apply predicate to over/underflow checks (#3494) (fc3edf7)
- aztec_nr: Serialise arrays of structs (#3401) (e979a58)
- Change non-constant argument errors from
to_be_radix
from ICE to proper error (#3048) (19ce286) - Check for overflow with hexadecimal inputs (#3004) (db1e736)
- Compiler version error message (#3558) (026a358)
- Complete debug metadata (#3228) (2f6509d)
- Conditionally run the "Create or Update PR" step in acir artifacts rebuild workflow (#2849) (63da875)
- Corrected the formatting of error message parameters in index out of bounds error (#3630) (3bba386)
- debugger: Step through foreign calls and breakpoints inside Brillig blocks (#3511) (5d77d7a)
- Determinism of fallback transformer (#3100) (12daad1)
- Disable modulo for fields (#3009) (7e68976)
- Disallow returning constant values (#2978) (79c2e88)
- Do not perform dead instruction elimination on mod,div unless rhs is constant (#3141) (af3d771)
- Do not simply divisions (#3664) (e5b981b)
- Docker builds (#3620) (f3eac52)
- docs: Update
editUrl
path for docusaurus (#3184) (4646a93) - Download expected
bb
version if installed backend has version mismatch (#3150) (3f03435) - Error message for assigning the wrong type is backwards #2804 (#2805) (b2d62bf)
- Finer bit size in bound constrain (#2869) (68385e2)
- Fix aztec library after nargo fmt (#3014) (f43083c)
- Fix crash when using undeclared traits (#3509) (8bb095a)
- Fix lexer error formatting (#3274) (74bd517)
- Fix method
program_counter
, change method signature (#3012) (5ea522b) - Fix panic in some cases when calling a private function (#2799) (078d5df)
- Fix panic when using repeated arrays which define variables (#3221) (c4faf3a)
- Fix should_fail_with (#2940) (4f07b84)
- Fix subtract with underflow in flattening pass (#2796) (f2ed505)
- Fixing versioning workflow (#3296) (3d5e43a)
- Flatten public inputs according to their index in numerial rather than ascii order (#3605) (a1f6343)
- Follow dependencies when looking for a struct (#3405) (561b1b8)
- Force recompilation when
output_debug
flag is set. (#2898) (9854416) - frontend: Error on unsupported integer annotation (#2778) (90c3d8b)
- Impl methods are no longer placed in contracts (#3255) (b673b07)
- Improve error message when multiplying unit values (#2950) (57b7c55)
- Include .nr and .sol files in builds (#3039) (ae8d0e9)
- Issue an error when a module is declared twice & fix module search path (#2801) (7f76910)
- Lack of cjs package version (#2848) (adc2d59)
- Make for loops a statement (#2975) (0e266eb)
- Match rust behaviour for left-shift overflow (#3518) (2d7ceb1)
- Minor problems with
aztec
publishing (#3095) (0fc8f20) - Move mimc to hash submodule (#3361) (3ec29f1)
- Overflow checks for constant folding (#3420) (b7a6383)
- Parse parenthesized lvalues (#3058) (50ca58c)
- Prevent duplicated assert message transformation (#3038) (082a6d0)
- Prevent mutating immutable bindings to mutable types (#3075) (d5ee20e)
- println: Enable printing of arrays/strings >2 in fmt strings (#2947) (309fa70)
- Recompile artefacts from a different noir version (#3248) (7347b27)
- Remove cast for field comparisons in brillig (#2874) (1fc1fdb)
- Remove duplication of code to load stdlib files (#2868) (b694aab)
- Remove quotes from println output (#3574) (127b6aa)
- Remove sha2_block test (#3360) (a48c03b)
- Restrict fill_internal_slices pass to acir functions (#3634) (0cad9aa)
- Return error rather than panicking on unreadable circuits (#3179) (d4f61d3)
- Show println output before an error occurs in
nargo execute
(#3211) (2f0b80d) - Silence unused variable warnings in stdlib (#2795) (5747bfe)
- Somewhat reduce mem2reg memory usage (#3572) (9b9ed89)
- Split conditional_regression tests (#2774) (8ed8832)
- ssa: Do not replace previously constrained values (#2647) (d528844)
- traits: Trait functions with a default implementation must not be followed by a semicolon (#2987) (a3593c0)
- Transform hir before type checks (#2994) (a29b568)
- Update link to recursion example (#3224) (10eae15)
- Use 128 bits for constant bit shift (#3586) (2ca9b05)
- Use pedersen_hash for merkle tree (#3357) (6b74d31)
- Verify impls arising from function calls exist (#3472) (d7f919d)
generateWitness
now returns a serialized witness file (#2842) (57d3f37)- Bump MSRV to 1.71.1 (#3353) (78f2127)
- Change stdlib function
pedersen
topedersen_commitment
(#3341) (964b777) - Move circuit serialization circuit into acir (#3345) (122119b)
- noir_js: Rename inner and outer proof methods (#2845) (71dbbb8)
- Update to
bb
version 0.7.3 (#2729) (fce68d1)
0.19.5 (2023-12-01)
- Add
FieldElement::from<usize>
implementation (#3647) (8b7c5aa) - Add package version to Nargo.toml metadata (#3427) (9e1717c)
- Add special case for boolean AND in acir-gen (#3615) (824039b)
- Aztec-packages (#3599) (2cd6dc3)
- Aztec-packages (#3626) (e0a96ea)
- Complex slice inputs for dynamic slice builtins (#3617) (8b23b34)
- Copy on write optimization for brillig (#3522) (da29c02)
- Data bus (#3508) (6b0bdbc)
- Implement integer printing (#3577) (6601408)
- Implement raw string literals (#3556) (87a302f)
- lsp: Add goto definition for functions (#3656) (7bb7356)
- Reuse witnesses more when interacting with memory (#3658) (5a4a73d)
- Corrected the formatting of error message parameters in index out of bounds error (#3630) (3bba386)
- Do not simply divisions (#3664) (e5b981b)
- Docker builds (#3620) (f3eac52)
- Flatten public inputs according to their index in numerial rather than ascii order (#3605) (a1f6343)
- Restrict fill_internal_slices pass to acir functions (#3634) (0cad9aa)
0.19.4 (2023-11-28)
- Add --check option to nargo fmt for dry-run formatting verification (#3530) (4469707)
- Add support for tuple values in
noir_codegen
(#3592) (346d75f) - Codegen typed interfaces for functions in
noir_codegen
(#3533) (290c463) - Export
CompiledCircuit
from codegened TS (#3589) (e06c675) - Remove type arrays for flat slices (#3466) (8225b2b)
- Send and receive unflattened public inputs to backend (#3543) (a7bdc67)
- Compiler version error message (#3558) (026a358)
- Remove quotes from println output (#3574) (127b6aa)
- Somewhat reduce mem2reg memory usage (#3572) (9b9ed89)
- Use 128 bits for constant bit shift (#3586) (2ca9b05)
0.19.3 (2023-11-22)
- Add debugger commands to introspect (and modify) the current state (#3391) (9e1ad85)
- Add LSP command to profile opcodes in vscode (#3496) (6fbf77a)
- Add lsp formatting (#3433) (286c876)
- Allow providing custom foreign call executors to
execute_circuit
(#3506) (d27db33) - Compile without a backend (#3437) (d69cf5d)
- Enable the
fmt
command in the help menu (#3328) (63d414c) - Handle constant index operations on simple slices (#3464) (7ae12f8)
- "Missing trait impl" error in trait dispatch (#3440) (52daaec)
- Adding proving key initialization (#3322) (3383740)
- Allow
where
clause on all functions and improve error message (#3465) (1647e33) - Apply predicate to over/underflow checks (#3494) (fc3edf7)
- debugger: Step through foreign calls and breakpoints inside Brillig blocks (#3511) (5d77d7a)
- Fix crash when using undeclared traits (#3509) (8bb095a)
- Match rust behaviour for left-shift overflow (#3518) (2d7ceb1)
- Verify impls arising from function calls exist (#3472) (d7f919d)
0.19.2 (2023-11-07)
0.19.1 (2023-11-07)
- acir: Handle dynamic array operations for nested slices (#3187) (e026319)
- Properly track equivalence of witnesses generated for black box functions (#3428) (20b70c2)
- Use ranges instead of a vector for input witness (#3314) (b12b7ec)
- Follow dependencies when looking for a struct (#3405) (561b1b8)
- Overflow checks for constant folding (#3420) (b7a6383)
0.19.0 (2023-11-02)
- avoid integer overflows (#2713)
- return Pedersen structure in stdlib (#3190)
- noir-wasm outputs debug symbols (#3317)
- move mimc to hash submodule (#3361)
- bump MSRV to 1.71.1 (#3353)
- Add semver checks for the compiler version in Nargo.toml (#3336)
- Move circuit serialization circuit into acir (#3345)
- change stdlib function
pedersen
topedersen_commitment
(#3341)
compute_note_hash_and_nullifier
check (#3216) (4963c6c)- Add
noir_codegen
package (#3392) (6c4cd4d) - Add check for overlapping generic traits (#3307) (8cf81b6)
- Add exports of JS black box solvers to noirJS (#3295) (8369871)
- Add generic count check for trait methods (#3382) (a9f9717)
- Add semver checks for the compiler version in Nargo.toml (#3336) (0e530cf)
- Allow a trait to be implemented multiple times for the same struct (#3292) (51831df)
- Allow traits to have generic functions (#3365) (0f9af65)
- Avoid integer overflows (#2713) (7d7d632)
- Check where clauses when searching for trait impls (#3407) (84c6604)
- Expand trait impl overlap check to cover generic types (#3320) (a01549b)
- Extract Brillig VM to allow step debugging (#3259) (f6431f9)
- Handle warnings in evaluator (#3205) (5cfd156)
- Implement where clauses on impls (#3324) (4c3d1de)
- Make generic impls callable (#3297) (8d9b738)
- Manage breakpoints and allow restarting a debugging session (#3325) (f502108)
- noir_js: Allow providing foreign call handlers in noirJS (#3294) (c76b0f8)
- Noir-wasm outputs debug symbols (#3317) (f9933fa)
- Perform compile-time euclidean division on constants (#3231) (3866d7e)
- Refactor debugger and separate core from UI (#3308) (8466810)
- Return Pedersen structure in stdlib (#3190) (be30d59)
compute_note_hash_and_nullifier
compiler check (#3351) (4e2d35f)- 3275: Activate brillig modulo test with negative integers (#3318) (31c493c)
- 3300: Cache warnings into debug artefacts (#3313) (cb5a15b)
- aztec_nr: Serialise arrays of structs (#3401) (e979a58)
- Fixing versioning workflow (#3296) (3d5e43a)
- Move mimc to hash submodule (#3361) (3ec29f1)
- Remove sha2_block test (#3360) (a48c03b)
- Use pedersen_hash for merkle tree (#3357) (6b74d31)
- Bump MSRV to 1.71.1 (#3353) (78f2127)
- Change stdlib function
pedersen
topedersen_commitment
(#3341) (964b777) - Move circuit serialization circuit into acir (#3345) (122119b)
0.18.0 (2023-10-25)
- Add crate for pub modifier (#3271) (e7a1a1a)
- Cache debug artifacts (#3133) (c5a6229)
- debugger: Print limited source code context (#3217) (dcda1c7)
- Expose pedersen hash in acir and bb solver (#3269) (0108b6c)
- Implement
bound_constraint_with_offset
in terms ofAcirVar
s (#3233) (8d89cb5) - Implement euclidean division and signed division in terms of
AcirVar
s (#3230) (b8b7782) - Noir-wasm takes dependency graph (#3213) (a2c8ebd)
- Replace boolean range constraints with arithmetic opcodes (#3234) (949222c)
- stdlib: Optimize constraint counts in sha256/sha512 (#3253) (d3be552)
- Switch to new pedersen implementation (#3151) (35fb3f7)
- Add size checks to integer literals (#3236) (7f8fe8c)
- Fix lexer error formatting (#3274) (74bd517)
- Impl methods are no longer placed in contracts (#3255) (b673b07)
- Recompile artefacts from a different noir version (#3248) (7347b27)
- Show println output before an error occurs in
nargo execute
(#3211) (2f0b80d)
0.17.0 (2023-10-20)
- Pass ACIR to ACVM by reference rather than passing ownership (#2872)
- Make for loops a statement (#2975)
- traits: trait functions with a default implementation must not be followed by a semicolon (#2987)
- wasm: improve and simplify wasm compiler interface (#2976)
- wasm: update wasm artifacts to match cli artifacts (#2973)
- acir: Set dynamic array values (#3054) (e871866)
- acvm: Separate ACVM optimizations and transformations (#2979) (5865d1a)
- Add
destroy
method toNoir
(#3105) (7e40274) - Add
execute
method toNoir
class (#3081) (17bdd7e) - Add ACIR serializer C++ codegen (#2961) (7556982)
- Add an options object to
BarretenbergBackend
constructor (#3105) (7e40274) - Add aztec selectors for event structs (#2983) (982380e)
- Add conditional compilation of methods based on the underlying field being used (#3045) (2e008e2)
- Add experimental REPL-based debugger (#2995) (281c696)
- Add JS types for ABI and input maps (#3023) (599e7a1)
- debugger: Highlight current src code loc (#3174) (6b87582)
- Format infix expressions (#3001) (7926ada)
- formatter: Add formatter support for array literals (#3061) (a535321)
- Implement automatic dereferencing for index expressions (#3082) (8221bfd)
- Implement automatic dereferencing for indexing lvalues (#3083) (6e2b70a)
- Implement impl specialization (#3087) (44716fa)
- lsp: Add "info" codelens (#2982) (80770d9)
- Nargo test runtime callstacks and assert messages without string matching (#2953) (1b6a4e6)
- Old docs issues (#3195) (26746c5)
- Optimize euclidean division acir-gen (#3121) (2c175c0)
- Pass ACIR to ACVM by reference rather than passing ownership (#2872) (b3a9c34)
- Pass brillig bytecode to VM by reference (#3030) (4ee290b)
- Prevent unnecessary witness creation in euclidean division (#2980) (c6f660e)
- Provide formatting subcommand (#2640) (a38b15f)
- Publish aztec build of noir_wasm (#3049) (3b51f4d)
- Remove unnecessary truncation of boolean multiplication (#3122) (39dbcf1)
- Return compilation errors from noir_wasm (#3091) (55f63c9)
- Reuse witnesses which have been assigned constant values during ACIR gen (#3137) (9eb43e2)
- Save Brillig execution state in ACVM (#3026) (88682da)
- Solve
fixed_base_scalar_mul
black box functions in rust (#3153) (1c1afbc) - traits: Add impl Trait as function return type #2397 (#3176) (4cb2024)
- traits: Add trait impl for buildin types (#2964) (2c87b27)
- traits: Added checks for duplicated trait associated items (types, consts, functions) (#2927) (d49492c)
- traits: Allow multiple traits to share the same associated function name and to be implemented for the same type (#3126) (004f8dd)
- traits: Improve support for traits static method resolution (#2958) (0d0d8f7)
- wasm: Improve and simplify wasm compiler interface (#2976) (1b5124b)
- wasm: Update wasm artifacts to match cli artifacts (#2973) (ce16c0b)
- ACIR optimizer should update assertion messages (#3010) (758b6b6)
- Add
pub
modifier to grumpkin functions (#3036) (f8990d7) - Add compiler error message for invalid input types (#3220) (989e80d)
- Allow constructors in parentheses in
if
conditions andfor
ranges (#3219) (ad192d1) - Allow two
TypeVariable::Constant(N)
to unify even if their constants are not equal (#3225) (cc4ca4b) - Change non-constant argument errors from
to_be_radix
from ICE to proper error (#3048) (19ce286) - Check for overflow with hexadecimal inputs (#3004) (db1e736)
- Complete debug metadata (#3228) (2f6509d)
- Determinism of fallback transformer (#3100) (12daad1)
- Disable modulo for fields (#3009) (7e68976)
- Disallow returning constant values (#2978) (79c2e88)
- Do not perform dead instruction elimination on mod,div unless rhs is constant (#3141) (af3d771)
- docs: Update
editUrl
path for docusaurus (#3184) (4646a93) - Download expected
bb
version if installed backend has version mismatch (#3150) (3f03435) - Fix aztec library after nargo fmt (#3014) (f43083c)
- Fix method
program_counter
, change method signature (#3012) (5ea522b) - Fix panic when using repeated arrays which define variables (#3221) (c4faf3a)
- Include .nr and .sol files in builds (#3039) (ae8d0e9)
- Make for loops a statement (#2975) (0e266eb)
- Minor problems with
aztec
publishing (#3095) (0fc8f20) - Parse parenthesized lvalues (#3058) (50ca58c)
- Prevent duplicated assert message transformation (#3038) (082a6d0)
- Prevent mutating immutable bindings to mutable types (#3075) (d5ee20e)
- Return error rather than panicking on unreadable circuits (#3179) (d4f61d3)
- traits: Trait functions with a default implementation must not be followed by a semicolon (#2987) (a3593c0)
- Transform hir before type checks (#2994) (a29b568)
- Update link to recursion example (#3224) (10eae15)
0.16.0 (2023-10-03)
- Maintain shape of foreign call arguments (#2935)
- abi: Tuples as inputs/outputs to main (#2899) (d8bd78f)
- acvm_js: Export black box solver functions (#2812) (da8a98e)
- Add bb interface implementation (#2902) (fe92dc0)
- Add noir types package (#2893) (e8fc868)
- Dynamic indexing of non-homogenous slices (#2883) (72c3661)
- Maintain shape of foreign call arguments (#2935) (f7869e6)
- Oracle mocker for nargo test (#2928) (0dd1e77)
- ssa: Multiple slice mergers (#2753) (8f76fe5)
- traits: Multi module support for traits (#2844) (4deb07f)
- Fix should_fail_with (#2940) (4f07b84)
- Force recompilation when
output_debug
flag is set. (#2898) (9854416) - Improve error message when multiplying unit values (#2950) (57b7c55)
- println: Enable printing of arrays/strings >2 in fmt strings (#2947) (309fa70)
0.15.0 (2023-09-28)
- update to
bb
version 0.7.3 (#2729)
0.14.1 (2023-09-27)
- Remove cast for field comparisons in brillig (#2874) (1fc1fdb)
- Remove duplication of code to load stdlib files (#2868) (b694aab)
0.14.0 (2023-09-26)
- noir_js: Rename inner and outer proof methods (#2845)
generateWitness
now returns a serialized witness file (#2842)- Issue an error when a module is declared twice & fix module search path (#2801)
- Default integers to u64 (#2764)
- abi: Throw errors rather than returning string from
noirc_abi_wasm
(#2817) (df7b42c) - acir: Enable dynamic indices on non-homogenous arrays (#2703) (622d2e4)
- Default integers to u64 (#2764) (01cb041)
- Implement string escape sequences (#2803) (f7529b8)
- Remove redundant predicate from brillig quotients (#2784) (a8f18c5)
- traits: Implement trait bounds typechecker + monomorphizer passes (#2717) (5ca99b1)
- acvm: Return false rather than panicking on invalid ECDSA signatures (#2783) (155abc0)
- Conditionally run the "Create or Update PR" step in acir artifacts rebuild workflow (#2849) (63da875)
- Error message for assigning the wrong type is backwards #2804 (#2805) (b2d62bf)
- Fix panic in some cases when calling a private function (#2799) (078d5df)
- Fix subtract with underflow in flattening pass (#2796) (f2ed505)
- frontend: Error on unsupported integer annotation (#2778) (90c3d8b)
- Issue an error when a module is declared twice & fix module search path (#2801) (7f76910)
- Lack of cjs package version (#2848) (adc2d59)
- Silence unused variable warnings in stdlib (#2795) (5747bfe)
- Split conditional_regression tests (#2774) (8ed8832)
- ssa: Do not replace previously constrained values (#2647) (d528844)
generateWitness
now returns a serialized witness file (#2842) (57d3f37)- noir_js: Rename inner and outer proof methods (#2845) (71dbbb8)
0.13.0 (2023-09-21)
- constrain is now a hard error (#2758)
- Add
pub
modifier (#2754) (dda964e) - Add support for attributes on structs (#2733) (7b3df8e)
- Add wrapping functions in stdlib and use them in relevant test cases (#2725) (49ab121)
- aztec-noir: Abstract storage (#2750) (5481344)
- Constrain is now a hard error (#2758) (388a2b1)
- Refine Noir.js API (#2732) (e79f1ed)
- Short-circuit compilation and read build artifacts from file if program is unchanged (#2743) (87fea4b)
- Signed arithmetic (#2748) (a84216d)
- traits: Implement trait bounds def collector + resolver passes (#2716) (e3d18bb)
- traits: Type checking for Trait impl method signatures (#2652) (8617008)
- Variable liveness analysis for brillig (#2715) (ddb05ab)
- Add error message for a contract package with no contracts (#2762) (9701a0c)
- Check for literal overflows in expressions (#2742) (4009f30)
- Keep the correct type for bitshift (#2739) (04fc2ea)
- Make
Vec::get
accept immutableVec
s (#2776) (f168a54) - Nightly js test (#2740) (36dcd48)
0.12.0 (2023-09-15)
- Change
noir-lang/noir-source-resolver
tonoir-lang/source-resolver
(#2718) - use american spelling of "serialize" in stdlib (#2675)
- Restrict packages to contain at most a single contract (#2668)
- use two limbs for scalar mul (#2602)
- Add initial version of noir.js (#2681) (e1687c9)
- Allow methods defined in a contract to be non-entry points (#2687) (2103b2f)
- Compile circuits and query circuit sizes in parallel for
nargo info
(#2665) (f173c05) - Compile workspace packages in parallel (#2612) (16e5e4d)
- Handle
should_fail_with
case (#2541) (291d002) - lsp: Add nargo capabilities for test metadata (#2532) (b4ee23e)
- nargo: Allow installing custom backends from the CLI (#2632) (c0c462c)
- parser: Allow multiple attributes (#2537) (7cdff2e)
- traits: Add default and override of methods (#2585) (98c3ba9)
- Avoid overflows in integer division (#2180) (6665210)
- aztec_noir: Support bools as input types (#2674) (9e7a0f0)
- Failing js tests (#2722) (398b6d7)
- Fix
update_acir
deleting all debug information (#2643) (a8a5395) - Fix compilation using
aztec
feature flag (#2663) (7f6fe46) - Implement auto-dereferencing when calling methods (#2581) (3c731b1)
- Initialize arrays returned by brillig (#2048) (788dfb4)
- Remove duplicate file extension in stack trace (#2655) (1114871)
- ssa: Slice mergers with multiple ifs (#2597) (6110638)
- Support for conditional stores (#2553) (6e6d952)
- Use high limb in scalar multiplication (#2619) (9014b8a)
- Use two limbs for scalar mul (#2602) (d0884ca)
- wasm: Apply transformation map to circuit debug information in
noir_wasm
(#2635) (9da822f) - wasm: Avoid requesting stdlib paths from the source-resolver (#2650) (aebab34)
- wasm: Remove stacker from dependencies (#2637) (36691ab)
- Change
noir-lang/noir-source-resolver
tonoir-lang/source-resolver
(#2718) (31e489e) - Restrict packages to contain at most a single contract (#2668) (dc3358b)
- Use american spelling of "serialize" in stdlib (#2675) (56c96d0)
0.11.1 (2023-09-07)
0.11.0 (2023-09-07)
- stdlib: Rename
fixed_base_scalar_mul
to be more descriptive (#2488) - ACVM 0.24 (#2504)
- Update to
acvm-backend-barretenberg
v0.12.0 (#2377) - abi: Replace struct name with fully qualified struct path (#2374)
- Remove keys from preprocessed artifacts (#2283)
- Add
nargo backend ls
andnargo backend use
command to switch between backends (#2552) (7471147) - Add
noirc_abi_wasm
crate for ABI encoding in JS (#1945) (669e0da) - Add support for brillig call stacks in runtime errors (#2549) (a077391)
- Apply optimizations to unconstrained code (#2348) (8e0f6c4)
- aztec_noir: Abstract kernel return types (#2521) (2668ac2)
- nargo: Add commands to install and uninstall custom backends. (#2575) (28a413c)
- nargo: Add hidden option to produce JSON output from
nargo info
(#2542) (14d31a5) - Pull
Language
andOpcode
support from backend (#2563) (2d0a5e4) - ssa: Replace values which have previously been constrained with simplified value (#2483) (9be750a)
- stdlib: Grumpkin scalar multiplication API (#2586) (dc34bc4)
- Support for optional assertion messages (#2491) (5f78772)
- Allow usage of decimal string encoding for fields larger than a
i128
(#2547) (d73f30e) - aztec_noir: Fix compilation of
aztec_library.rs
(#2567) (a8d0328) - aztec_noir: Generalise loop to not always inject a hasher instance (#2529) (9fe4cfd)
- Black box func slice handling (#2562) (c67cd7d)
- Initialize structs during def collection, not name resolution (#2528) (f170529)
- Make def collector ordering more deterministic (#2515) (d49e0af)
- Modulo with divisor of zero should fail constraints (#2578) (fe6e2e6)
- abi: Replace struct name with fully qualified struct path (#2374) (0920dd0)
- ACVM 0.24 (#2504) (f06fbdb)
- Remove keys from preprocessed artifacts (#2283) (4554287)
- stdlib: Rename
fixed_base_scalar_mul
to be more descriptive (#2488) (6efc007) - Update to
acvm-backend-barretenberg
v0.12.0 (#2377) (1467275)
0.10.5 (2023-08-30)
- Implement constant folding during the mem2reg pass (#2464) (5361ebd)
- ssa: Handle right shift with constants (#2481) (13a8c87)
0.10.4 (2023-08-29)
- Add
assert_eq
keyword (#2137) (b467a2d) - Add
test(should_fail)
attribute for tests that are meant to fail (#2418) (74af99d) - Add syntax for specifying function type environments (#2357) (495a479)
- Add trait definition representation in DefCollector and HIR (#2338) (406a595)
- attributes: Enable custom attributes (#2395) (179611b)
- brillig: Added locations for brillig artifacts (#2415) (3771e52)
- Create equivalence relationships for intermediate witnesses from multiplication (#2414) (cc2a2d8)
- frontend: Aztec syntactic sugar (feature flagged) (#2403) (a894a6e)
- nargo: Support optional directory in git dependencies (#2436) (84fdc55)
- Perform more checks for compile-time arithmetic (#2380) (1be2b1e)
- Report compilation warnings before errors (#2398) (a1d1267)
- ssa: Merge slices in if statements with witness conditions (#2347) (76f7e43)
- ssa: Reuse existing results for duplicated instructions with no side-effects (#2460) (93726c4)
- Standard library functions can now be called with closure args (#2471) (feb8d0e)
- Syntax for environment types now works with generics (#2383) (4609c1a)
- Update to
acvm
0.22.0 (#2363) (e050fab) - Use equivalence information from equality assertions to simplify circuit (#2378) (ec5b021)
- acir_gen: Pass accurate contents to slice inputs for bb func calls (#2435) (054642b)
- acir: Attach locations to MemoryOps in ACIR (#2389) (d7d7f22)
- Closure lvalue capture bugfix (#2457) (632006a)
- Correct off-by-one errors in lexer spans (#2393) (bbda9b0)
- Divide by zero should fail to satisfy constraints for
Field
and ints (#2475) (1b85816) - Implement handling of array aliasing in the mem2reg optimization pass (#2463) (7123fa9)
- Implement new mem2reg pass (#2420) (7714cd0)
- lsp: Remove duplicated creation of lenses (#2433) (41b568d)
- parser: Fixes for the parsing of 'where' clauses (#2430) (fa31015)
- Remove duplicate
T
inexpected T, found T
error on tuple assignment (#2360) (c964ee8) - Run
wasm
nodejs tests with no fails (#2387) (67b6710) - Show types in error message in same order as in source code (#2353) (feebee4)
- ssa: Codegen missing check for unary minus (#2413) (1435a86)
- ssa: Do not optimize for allocates in constant folding (#2466) (9e272f3)
- ssa: Remove padding from ToRadix call with constant inputs (#2479) (37bb781)
0.10.3 (2023-08-16)
- Allow calling higher-order functions with closures (#2335) (75fd3e0)
- lsp: Add
Compile
code lens formain
function and contracts (#2309) (5fe69c6) - lsp: Add
Execute
code lens formain
functions (#2330) (5aa59e0)
0.10.2 (2023-08-16)
- Prevent dead instruction elimination of brillig functions which may contain side-effects (#2340) (ba8ffd8)
0.10.1 (2023-08-15)
- Add full call stacks to runtime errors (#2310) (9004181)
- Improved error message for unexpected return type (#2302) (d7e1e65)
- ssa: Perform dead instruction elimination on intrinsic functions (#2276) (3fe3f8c)
- ssa: Switch mem2reg pass to be per function rather than per block (#2243) (0d548b9)
- stdlib: Implement
str
as_bytes
andinto_bytes
function (#2298) (92549d4)
0.10.0 (2023-08-15)
- nargo: Remove
-p
short flag from the--program-dir
flag (#2300) - nargo: Replace
--contracts
flag withcontract
package type (#2204) - nargo: remove
flat_witness
feature flag (#2208) - nargo: Require package
type
be specified in Nargo.toml (#2134) - Allow specifying new package name with
--name
flag (#2144) - nargo: Remove unused flags on LSP command (#2170)
- Support workspaces and package selection on every nargo command (#1992)
- nargo: Require package names in Nargo.toml files (#2056)
- Update to ACVM 0.21.0 (#2051)
- Drop support for the legacy SSA (#2049)
- nargo: Rename nargo gates to nargo info (#2038)
- nargo: Default to new SSA code for compilation
- acir_gen: RecursiveAggregation opcode and updates to black box func call generation (#2097) (5cb8166)
- Add
assert_constant
(#2242) (a72daa4) - Add
deprecated
attribute (#2041) (9e2cf6f) - Add
Option<T>
to noir stdlib (#1781) (920a900) - Add basic benchmarking (#2213) (c8fe617)
- Add slice append (#2241) (90c5d18)
- Add support for bitshifts by distances known at runtime (#2072) (b0fbc53)
- Add support for slices of structs and nested slices in brillig (#2084) (620517f)
- allow returning nested arrays from brillig (#2047) (4378bb8)
- Allow specifying new package name with
--name
flag (#2144) (e932599) - Drop support for the legacy SSA (#2049) (3f33e44)
- Execute brillig opcodes with constant inputs at compile-time (#2190) (79af8e6)
- Format strings for prints (#1952) (3c82721)
- Implement traits - parser support #2094 (#2230) (589f173)
- Implement type aliases (#2112) (ce94cb4)
- Include struct names in ABIs (#2266) (9824ca5)
- Issue warning for signed integers (#2185) (1be1bcc)
- Make arrays and slices polymorphic over each other (#2070) (ef91286)
- nargo: Add
--exact
flag tonargo test
(#2272) (1ad9199) - nargo: Add
--workspace
flag to run commands in every package (#2313) (d6deb0c) - nargo: Add support for contracts in
nargo check
(#2267) (3d1b252) - nargo: Default to new SSA code for compilation (ce37718)
- nargo: Replace
--contracts
flag withcontract
package type (#2204) (968e12c) - nargo: Require package
type
be specified in Nargo.toml (#2134) (1c991d0) - nargo: Support custom entry points specified in TOML (#2158) (effb02a)
- Only create new witnesses for distinctiveness when duplicates exist (#2191) (14cbdbc)
- open functions are unconstrained (be44c7b)
- Optimize
x < 0
for unsignedx
to false (#2206) (25bc969) - Optimize away constant calls to black box functions (#1981) (47b372c)
- Optimize equality checks between a boolean and constant (#2201) (478c026)
- Optionally output a debug artifact on compile (#2260) (edded24)
- Perform input validation on user's package names (#2293) (87174ac)
- Perform sorting of constant arrays at compile time (#2195) (c46d7a0)
- Remove
comptime
and warn upon usage (#2178) (98d0de3) - Remove an unnecessary witness in
mul_with_witness
(#2078) (9f3198e) - replace boolean
AND
s with multiplication (#1954) (435ab35) - ssa: Add additional BinaryOp simplifications (#2124) (50b2816)
- Support
contract
package type innargo info
command (#2249) (d309cc0) - Support workspaces and package selection on every nargo command (#1992) (940b189)
- Update to ACVM 0.21.0 (#2051) (ad118eb)
- Add foreign impl error (#2216) (a53f5ed)
- Avoid non-determinism in defunctionalization (#2069) (898a9fa)
- avoid non-determinism in defunctionalize (898a9fa)
- avoid potential panic in
two_complement
(#2081) (63c4da0) - Fix 3 parser test cases in parsing (#2284) (094aef1)
- fix an ICE happening when we call a closure result from if/else (#2146) (928b3ad)
- Fix an ICE when reassigning a mutable lambda variable to one with a different environment type (#2172) (a56db3e)
- Fix assignment when both
mut
and&mut
are used (#2264) (b07a7ff) - Fix methods not mutating fields (#2087) (6acc242)
- flattening pass no longer overwrites previously mapped condition values (#2117) (f7742ab)
- globals: Accurately filter literals for resolving globals (#2126) (1c21d0c)
- Implement
.len()
in Acir-Gen (#2077) (ab61e3a) - Implement slices of structs (#2150) (6abcb79)
- Initialize numeric generics' type to a polymorphic integer when used in an expression (#2179) (c74b228)
- lsp: Ensure lsp does not crawl past the root specified (#2322) (d69e372)
- lsp: Improve dependency resolution in context of
Nargo.toml
(#2226) (8846bf2) - lsp: Pass
--program-dir
to test command from codelens (#2292) (92e1802) - Mutating a variable no longer mutates its copy (#2057) (e85e485)
- nargo: Allow
--program-dir
flag anywhere in a command (#2290) (7834fce) - nargo: Indicate which TOML file is missing package name (#2177) (9529157)
- nargo: Make dependencies section optional in TOML (#2161) (099f4d4)
- nargo: Remove
-p
short flag from the--program-dir
flag (#2300) (cc2af74) - Open contract functions are unconstrained (#2052) (be44c7b)
- optimize contracts built by
nargo info
(b30b3f4) - Optimize contracts built by
nargo info
(#2259) (b30b3f4) - Overflowing assignment will result in an error (#2321) (bc645fc)
- Prevent panic when passing relative paths to
--program-dir
(#2324) (9eb45da) - properly capture lvalues in closure environments (#2120) (#2257) (ed5273c)
- remove duplicated
name
option innargo new
(#2183) (68f5887) - Remove last vestige of array of structs to struct of arrays conversion (#2217) (34be264)
- Rename
Option::value
toOption::_value
(#2127) (8a1ace7) - Require package names to be non-empty (#2293) (87174ac)
- Set location before cast instructions in SSA (#2202) (a72cc96)
- simplification of overflowing integer operations (#2153) (4a5d2de)
- stdlib: correct
tecurve::contains
formula (#1821) (6a10ecf)
- nargo: remove
flat_witness
feature flag (#2208) (32d52d3) - nargo: Remove unused flags on LSP command (#2170) (ccba78e)
- nargo: Rename nargo gates to nargo info (#2038) (5907e96)
- nargo: Require package names in Nargo.toml files (#2056) (bb28223)
0.9.0 (2023-07-25)
- ACIR bytecode encoding with Base64 (#1935)
- Update to ACVM 0.18.1 and implement missing brillig blackboxes (#1914)
- ACIR bytecode encoding with Base64 (#1935) (347cfc4)
- Add
nargo build
as alias fornargo compile
(#1940) (13618d4) - add
nargo init
command (#1859) (2d87c87) - Add ability to create a proof for a workspace member using
nargo prove -p {crate_name}
(#1930) (266126f) - Add Acir debug information (#1864) (5ff8b53)
- Add multi-line comments (#1936) (cfb1765)
- Add support for nested arrays on brillig gen (#2029) (8adc57c)
- Add to_radix and to_bits support to brillig gen (#2012) (3eef41c)
- Add unit literals and unit types to parser (#1960) (ea80de5)
- Adding internal keyword (#1873) (7a85493)
- Allow arrays of arbitrary types in the program ABI (#1651) (811ede1)
- Allow shadowing by default (#2000) (88a4f74)
- avoid unnecessary witness assignments in euclidean division / bound constraint (#1989) (c23257d)
- brillig_gen: Return slices from foreign calls (#1909) (6fa3144)
- compile to brillig reachable acir fns (#1919) (2b4237d)
- dynamic arrays for experimental-ssa (#1969) (08d199a)
- Implement parsing of traits (#1886) (3ba1e72)
- Implement references in brillig (#1901) (3a078fb)
- initial implementation of slices in brillig (#1932) (ea47936)
- Refactor Logging to use Brillig foreign calls (#1917) (c15f9aa)
- stdlib: Add multiple slice builtins (#1888) (008a16b)
- stdlib: Add secp256r1 builtin function (#1858) (f3800c5)
- stdlib: Vec type (#1905) (3734e25)
- Update to ACVM 0.18.1 and implement missing brillig blackboxes (#1914) (2bc7d25)
9_conditional
end to end test (#1951) (2f6741f)regression
end to end test (#1965) (59f92e3)- Account for missing indices in flattened witness map (#1907) (3972410)
- Add missing
follow_bindings
when checking if a type can be casted (#2022) (537c2bd) - Add Result to acir gen (#1927) (1f8fd51)
- Assignment to arrays of structs (#1998) (2c3d976)
- brillig_gen: Pass correct size of complex types input for brillig foreign calls (#1922) (04c89d2)
- Create
FileManager
with a root and normalize filenames against it (#1881) (50c1648) - Differentiate stdlib
CrateId
from others (#1895) (211e251) - Don't panic when checking if an undeclared variable is mutable (#1987) (0449518)
- emit
Opcode
s in correct order fromGeneratedAcir::radix_le_decompose
(#1903) (e5fe839) - emit opcode in correct order from
GeneratedAcir::radix_le_decompose
(e5fe839) - emit opcodes for sorting variables in order of execution (c43efab)
- Emit opcodes for sorting variables in order of execution (#1941) (c43efab)
- Fix auto-deref operations assigning the wrong result type (#1904) (827f78c)
- lsp: Avoid storing Context until recompiles are possible (#1891) (fb5f20b)
- method resolution when calling an
&mut
method with an&mut
object type (#1947) (73c2e94) - Only flatten main (#1984) (ac865b1)
- Parse an if followed by a tuple as a block (#1924) (8df4f05)
- Perform
occurs
check before binding function types (#2027) (1544786) - Prevent
if
andfor
from parsing constructor expressions (#1916) (6d3029a) - Rebuild tests plus script to include secp256r1 change (#1908) (ca68666)
- Switch from HashMap to BTreeMap in merge_stores (#2035) (4d179e3)
- update int division optimization (#1928) (fb872c6)
- Various fixes for defunctionalization & brillig gen (#1973) (f99f4bf)
- workaround for LSP dependency resolution (#1865) (a8ac338)
0.8.0 (2023-07-07)
- ssa_refactor: Add Slices (#1728)
- nargo: Make proving and verification keys optional (#1880)
- update to ACVM 0.16.0 (#1863)
- add signed division (#1831) (d0894ad)
- allow main to be a brillig function (#1861) (1330a2a)
- brillig: implemented blackbox functions (#1788) (f9f38de)
- brillig: wrap brillig fns to be top level (1330a2a)
- defunctionalization pass for ssa refactor (#1870) (1d5d84d)
- driver: Remove
Driver
struct and refactor functions to takeContext
(#1867) (8895853) - driver: Remove Driver struct and refactor functions to take context (8895853)
- lsp: Add a codelens that runs test when clicked (#1835) (5d64f8a)
- make array indexes polymophic integers (#1877) (0fc93fa)
- make use of type information when serialising inputs (#1655) (310368d)
- recursion working in brillig (#1854) (e55b5a8)
- ssa refactor: Implement first-class references (#1849) (e5773e4)
- ssa_refactor: Add Slices (#1728) (4bee979)
- update to ACVM 0.16.0 (#1863) (9c89def)
- crates: do not process relative dependencies twice (#1856) (b2e71bb)
- lsp: Ensure stdlib is always added before the
check_crate
phase (#1840) (cb607f5) - lsp: Ensure that stdlib is always added to the driver during the check_crate phase (cb607f5)
- Prevent comparisons from being used on
Field
s (#1860) (c8858fd) - ssa refactor: Add missed call to resolve (#1817) (fa9be1d)
- ssa refactor: Fix recursive call to
create_value_from_type
(#1815) (890a63b) - ssa refactor: Prevent stores in 'then' branch from affecting the 'else' branch (#1827) (e068fd4)
0.7.1 (2023-06-23)
- brillig: foreign calls with dynamic-size objects (#1705) (fe7bb99)
- update acvm to 0.15.1 (#1764) (b52f25d)
- lsp: Ensure LSP can compile on Windows (#1794) (2992915)
- Methods called after being passed through a generic type were not being detected (#1785) (e560cd2)
- nargo: Update acvm-backend-barretenberg to allow wasm backend compilation (#1771) (97da745)
- old ssa: fix to_be_bits (#1765) (2541fbd)
- ssa refactor: ACIR gen NOT integer (#1749) (af749a0)
- ssa refactor: allow simplified call inserts & fix const radix arg handling (#1774) (46facce)
- ssa refactor: Fix flattening pass inserting loads before stores occur (#1783) (4293b15)
- ssa refactor: Fix panic in acir-gen from multiplying values of different types (#1769) (1f9a132)
- ssa refactor: function inlining orphans calls (#1747) (f30a90f)
- ssa refactor: Ignore array out of bounds errors when enable_side_effects is false (#1797) (7b7682a)
- ssa refactor: Implement merging of array values during flattening pass (#1767) (8f24751)
- ssa refactor: recursion_level decrement (#1745) (e449b92)
- ssa refactor: recursive branch analysis (#1759) (635b574)
- ssa refactor: Reset condition value during flattening pass (#1811) (2e330e0)
- ssa refactor: Speedup acir-gen (#1793) (1e75f0e)
- ssa refactor: Speedup find-branch-ends (#1786) (861e42c)
- Update array type when processing staged memory (#1751) (27eb748)
0.7.0 (2023-06-19)
- Update to acvm 0.14.0 (#1594)
- update to ACVM 0.13.0 (#1393)
- stdlib: remove unnecessary merkle functions from stdlib (#1424)
- stdlib: return update verification functions to return
bool
- stdlib: update stdlib functions to return
bool
where appropriate (#1409) - Change serialization of struct field order to match the user defined order (#1166)
- Update to ACVM 0.12.0 (#1339)
- remove concept of noir fallbacks for foreign functions (#1371)
- nargo: retire print-acir in favour of flag (#1328)
- Allow warnings by default (#1383) (e7a0d5c)
- ci: update noir to build wasm with a nix flake file (#1208) (2209369)
- lsp: Publish diagnostics on file save (#1676) (c53bfc8)
- Make for-loop range be a polymorphic integer instead of just Field in unconstrained functions (#1583) (77fba56)
- multiple item imports in use statement (#1466) (1dcd2ee)
- nargo: Add
lsp
command to start server that reports no capabilities (#1560) (e28529d) - nargo: Allow user-specified file for prover inputs instead of
Prover.toml
(#1531) (91cbec6) - nargo: retire print-acir in favour of flag (#1328) (dffa3c5)
- pass in closure to
Driver
to signal backend opcode support (#1349) (1e958c2) - remove concept of noir fallbacks for foreign functions (#1371) (dbec6f2)
- ssa refactor: mem2reg opt pass (#1363) (5d1efd5)
- stdlib: EdDSA sig verification (#1313) (04a15e0)
- stdlib: return update verification functions to return
bool
(2b2be1e) - stdlib: update stdlib functions to return
bool
where appropriate (#1409) (2b2be1e) - Update to acvm 0.14.0 (#1594) (f2d6b7b)
- update to ACVM 0.15.0 (#1616) (3109239)
- use RAM/ROM opcode when supported by the backend (#1282) (242f07b)
- Change serialization of struct field order to match the user defined order (#1166) (809aa3a)
- Fix modulo operator for comptime values (#1361) (ba15d6d)
- Fix nargo not showing compiler errors or warnings (#1694) (4233068)
- frontend: Avoid panic if dependency cannot be resolved (#1719) (f35b346)
- nargo: prevent -p arg clash (#1605) (4867f4e)
- noirc_driver: Move error printing into nargo (#1598) (561cd63)
- ssa refactor: Add missing calls to resolve in Instruction::simplify (#1678) (07b07d0)
- ssa refactor: BigUint for radix (#1715) (00cf462)
- ssa refactor: Change the result of simplifying Eq and Lt to bool (#1672) (1d48929)
- ssa refactor: Do not remove enable_side_effects instructions in die pass (#1673) (cbee4c0)
- ssa refactor: euclidean division for unsigned (#1721) (a1596bc)
- ssa refactor: filter unreachable blocks from cfg (#1523) (202c345)
- ssa refactor: fix array element propagation through constant folding and DIE (#1674) (301e244)
- ssa refactor: Fix array elements not being mapped to new values (#1717) (4ebcbeb), closes #1688
- ssa refactor: fix bad constant type caching (#1593) (37c0be6)
- ssa refactor: Fix constant folding looping forever (#1611) (afe58cc)
- ssa refactor: Fix failed_to_inline_a_function being set for intrinsics (#1675) (377ac5c)
- ssa refactor: Fix flatten_cfg for ifs with no else (#1671) (7ce8cce)
- ssa refactor: Fix mem2reg pass not always removing unused stores (#1677) (8310544)
- ssa refactor: Fix ssa-gen of nested ifs (#1406) (5fd976e)
- ssa refactor: Fix stack overflow during loop unrolling (#1666) (c7a7216)
- ssa refactor: Implement array equality in SSA-gen (#1704) (0d31d83)
- ssa refactor: more comprehensive instruction simplification (#1735) (97d6747)
- ssa refactor: pad radix result (#1730) (8e9b612)
- ssa refactor: resolve replaced value ids for printing (#1535) (08ca847)
- ssa refactor: safe to query cfg for single block programs (#1401) (e2a23b3)
- ssa refactor: schnorr signature handling (#1727) (98ecf93)
- ssa refactor: Translate strings as arrays of characters (#1669) (2ba2ef6)
- ssa refactor: truncate when simplifying constant casts (#1714) (a2108d7)
- ssa: conditionalise array indexes under IF statements (#1395) (ddca3b4)
- stdlib: Workaround for Field comparison error in EdDSA signature verification (#1372) (e790c9f)
- stdlib: remove unnecessary merkle functions from stdlib (#1424) (50fcb3c)
- Update to ACVM 0.12.0 (#1339) (b938c7e)
- update to ACVM 0.13.0 (#1393) (22dee75)
0.6.0 (2023-05-16)
- Enable
to_radix
for any field element (#1343) (c3bdec2) - Enable dynamic arrays (#1271) (9f43450)
- Issue an error when attempting to use a
return
expression (#1330) (a6de557) - nargo: Remove usage of
CompiledProgram
in CLI code and use separate ABI/bytecode (#1269) (f144391) - ssa refactor: experimental-ssa compiler flag (#1289) (afa6749)
- ssa refactor: Implement dominator tree (#1278) (144ebf5)
- ssa: add block opcode (#1291) (951ad71)
- stdlib: add keccak256 foreign function (#1249) (260d87d)
- Fix issue with parsing nested generics (#1319) (36f5b8e)
- Fix parser error preventing assignments to tuple fields (#1318) (460568e)
- Fix struct or tuple field assignment failing with generics (#1317) (d872890), closes #1315
- stdlib: support use of
to_bits
andto_radix
for values >128 bits (#1312) (12f3e7e)
- parser: deprecate
constrain
keyword forassert
(#1286) (9740f54) - Update to acvm 0.11.0 (#1322) (da47368)
0.5.1 (2023-05-01)
- Add Poseidon examples into integration tests (#1257) (2a5aa52)
- fix
linear_eval is no 0
serialisation issue (#1226) (41d96ae)
0.5.0 (2023-04-28)
- Switch to aztec_backend that uses upstream BB & UltraPlonk (#1114)
- noir: added
distinct
keyword (#1219) (3a65f30) - noir: added assert keyword (#1227) (0dc2cac)
- Switch to aztec_backend that uses upstream BB & UltraPlonk (#1114) (f14fe0b)
0.4.1 (2023-04-20)
- Add Poseidon-BN254 hash functions (#1176) (33feb2b)
- bump noir-source-resolver version (#1182) (750ed77)
- Add checks for nop (#1160) (809b85f)
- allow comptime or non comptime fields in unconstrained for loops (#1172) (73df465)
- maintain ordering of return value witnesses when constructing ABI (#1177) (b799c8a)
- nargo: restore
nargo codegen-verifier
functionality (#1185) (528a2a4) - ssa: set correct predecessors of IF join (#1171) (7628ed6)
0.4.0 (2023-04-17)
- remove outdated arkworks backend (#1151)
- nargo: define preprocessed artifacts for programs/contracts (#1126)
- nargo: use faster hash function for checking preprocessed keys (#1094)
- Fix returning of structs in ACIR (#1058)
- upgrade to acvm 0.8.0 (#1047)
- Add new
Vec
type to frontend (#1103) (e125157) - Add storage slots to globals (#1019) (4190e11)
- Allow arbitrary noir functions to be unconstrained (#1044) (ebc8a36)
- Allow non-comptime field indices in unconstrained functions (#1053) (bc52612)
- Allow numeric generics to be referenced and add
map
(#997) (34eab32) - Allow secret functions to use public parameters (#1051) (12c0668)
- Allow structs and arrays as globals (#1054) (dadbd3c)
- Changes serialization for contract functions (#1056) (41e0020)
- compiler: Allows specify entry_point source (#1026) (9789f89)
- dynamic array indexing (#886) (aba1ed2)
- Implement 'open' and 'unconstrained' keywords (#1037) (5a66dec)
- Implement
std::unsafe::zeroed
(#1048) (9a43f85) - Implement arrays of structs (#1068) (f607150)
- import core logic in cli from
nargo
crate (#1142) (753a272) - make
noirc_driver
aware of contracts (#999) (c21afca) - Merge all contracts into one ABI (#1033) (473428c)
- nargo: add
InvalidPackageError
andDependencyResolutionError
error types. (#1007) (1e6761b) - nargo: add skeleton of composite types in template input tomls (#1104) (1fb2756)
- nargo: add test to example noir program (#1039) (f994c4f)
- nargo: allow running
nargo
from any directory in package (#1010) (761fdb5) - nargo: define preprocessed artifacts for programs/contracts (#1126) (7528f59)
- nargo: print-acir command (#1031) (408d9c0)
- nargo: remove misleading quotes in generated
Prover.toml
(#1087) (57c817f) - nargo: split
nargo
into core and cli packages (#1065) (7c388f9) - read-only array (#899) (2e38ab0)
- stdlib: Implement Poseidon hash (#768) (779ab66)
- Avoid asserting in typechecker if struct field count is not correct (#1036) (b3d1d7f), closes #1028
- compiler identifying imported functions as being part of a contract (#1112) (61c38d2)
- correct name in CLI output from
nargo_cli
tonargo
(74d7369) - correct test for mutually exclusive feature flags (#1085) (eb5c917)
- crash when typechecking fields that don't exist (#1070) (a67e8c5)
- Fix returning of structs in ACIR (#1058) (91bd471)
- nargo: correct logic for rejecting transitive local dependencies (#1015) (e2b8b65)
- nargo: correct name in CLI output from
nargo_cli
tonargo
(#1095) (74d7369) - nargo: give contract artifacts unique names to prevent overwrites (#1158) (1227b2c)
- nargo: only search for
Nargo.toml
in commands which act on a Nargo package (#1029) (6e642b9) - nargo: resolve local dependencies relative to root of depending package (38bf571)
- Numeric generics with impls error (#1148) (5d6e4d0)
- rationalise witness for constant values (#984) (ab32365)
- Resolve globals in types (#1043) (2badf14)
- nargo: use faster hash function for checking preprocessed keys (#1094) (a69758c)
- remove outdated arkworks backend (#1151) (bc8ed9a)
- upgrade to acvm 0.8.0 (#1047) (63f958b)
0.3.2 (2023-03-16)
- nargo: correct inconsistent file extension for ACIR hashes (#994) (23c22d7)
- Prevent calling contract functions from outside the contract (#980) (21360e3)
- reverse slash direction in
StdLibAssets
prefix on windows (#992) (65b7108)
0.3.1 (2023-03-13)
0.3.0 (2023-03-13)
- nargo: rename
contract
command tocodegen-verifier
(#959) - replace dummy ABIs with
FunctionSignature
type alias (#930) - nargo: save program ABI alongside ACIR (#922)
- nargo: restrict
CliError
visibility to crate (#911) - prevent inconsistent language usage in
Driver
(#881) - abi: add explicit return type field to ABI. (#865)
- abi: merge both abi encoding/decoding methods (#862)
- abi: add an explicit mapping from ABI params to witness indices (#851)
- Allow impls on primitive types (#847)
- abi: add an explicit mapping from ABI params to witness indices (#851) (5bd4bd5)
- abi: add explicit return type field to ABI. (#865) (8ca5676)
- abi: merge both abi encoding/decoding methods (#862) (fecd32c)
- add support for reading boolean arrays from toml (#900) (93d83bf)
- Allow impls on primitive types (#847) (479da0e)
- ci: Publish noir_wasm when we cut a release (#871) (5186ab9)
- compile: compile w/dependencies and options (#965) (3f897f6)
- compile: Noir std lib embedded (#973) (13b9069)
- Implement basic contracts (#944) (8ba3ab2)
- Implement endianness specified versions of
to_bytes
to_radix
andto_bits
(#914) (43abc6b) - nargo: save program ABI alongside ACIR (#922) (ddaf305)
- separate contract/program compilation from IO (#967) (c60f545)
- Silence output of prove and verify (#892) (811b346)
- ssa: add location to ssa instructions (#931) (356858b)
- update to ACVM 0.5.0 (#902) (9b58da4)
- abi: ensure that return value is loaded from toml (#883) (adba24c)
- add more readable error for missing argument in toml (#971) (e31f41f)
- allow parsing strings from toml into booleans (#894) (f729a00)
- check the argument count of generic types (#970) (2688dc4)
- compute witness when println evaluated before input (#891) (2727b34)
- correct type checking to handle
false
bools (#893) (6c7aa2f) - display command description in CLI for
nargo prove
(#949) (2829af1) - evaluate constant division (#909) (b91307b)
- Fix multiple call of
to_le_bytes
(#941) (2ee0119) - generate valid toml when outputting nested structs (#936) (ba947a7)
- Improve member access error (#940) (9b5b5f6)
- nargo: Switch order of writing acir file and acir checksum file (#895) (4fc94dc)
- nargo: Use yml extension for bug report link presented upon panic (#960) (f7b3711)
- nargo: Use yml extension on the bug report link presented upon panic (f7b3711)
- noir_wasm: Update wasm ACIR serialization (#898) (575436f)
- Optimize parser (#869) (e927a39)
- prevent inconsistent language usage in
Driver
(48cda7a) - prevent inconsistent language usage in
Driver
(#881) (48cda7a) - properly initialize
Evaluator
in test (#863) (bbb70bd) - properly initialize Evaluator in test (bbb70bd)
- Remove uses of std::process::exit (#963) (870ea46)
- ssa: fix the compile-time check for equality in acir-gen (#904) (161e4fb)
- nargo: rename
contract
command tocodegen-verifier
(#959) (2e63492) - nargo: restrict
CliError
visibility to crate (#911) (ed0e1ab) - replace dummy ABIs with
FunctionSignature
type alias (#930) (156125b)
0.2.0 (2023-02-16)
- acvm: Update to acvm 0.4.1 (#779) (6f57e86)
- ci: Add concurrency group for rust workflow (#806) (1b80f55)
- ci: Add concurrency group for rust workflow (1b80f55)
- ci: Build binaries when a release is made (#773) (a0c0c2c)
- Impls with generics (#798) (bea735d)
- nargo: add flag to verify created proofs (#737) (e981c7c)
- nargo: add panic hook (74cb340)
- nargo: Add panic hook (#850) (74cb340)
- nargo: Update nargo to use preprocessing interface (#765) (b3f1556)
- nargo: Version info in nargo and wasm (#802) (fd64be5)
- ssa: array sort (#754) (32e9320)
- std_lib: println statements (#630) (d5d1be2)
- stdlib: Add higher order array functions (#833) (9c62fef)
- avoid testing equality between unit values in acir_gen test (#849) (c2b7230)
- ci: Skip the title check if handling a merge group (#790) (71b179c)
- nargo:
nargo test
now only runs test functions defined in the current module (#805) (c6293c9) - operators issuing type errors when used with matching integer types arising from generic code (#789) (932943a)
- ssa: delete instructions with false predicate (#760) (f329379)
- ssa: synchronisation for functions (#764) (615357a)
- Make
abi
field non-optional inCompiledProgram
(#856) (98acb5a) - nargo: bump MSRV to 1.66.0 (#799) (59ff9e8)
0.1.1 (2023-02-06)
- ci: Add workflow to validate PR title (#730) (e5e8542)
- ci: Change release workflow to use release-please (950ca55)
- docs: Introduce Conventional Commits & release process docs (#717) (950ca55)
- nargo: add
nargo execute
command (#725) (9d6be60) - nargo: Add
nargo test
command to run all unit tests (#728) (2e1dc82) - nargo: add option to save witness to file in execute command (9d6be60)
- nargo: add support for testing noir libraries (#752) (27bd2ac)
- nargo: Leverage rustls instead of openssl for downloads (#691) (933809c)