Releases: noir-lang/noir
Releases · noir-lang/noir
v0.8.0
0.8.0 (2023-07-07)
⚠ BREAKING CHANGES
- ssa_refactor: Add Slices (#1728)
- nargo: Make proving and verification keys optional (#1880)
- update to ACVM 0.16.0 (#1863)
Features
- 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)
Bug Fixes
- 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)
Miscellaneous Chores
v0.7.1
0.7.1 (2023-06-23)
Features
- brillig: foreign calls with dynamic-size objects (#1705) (fe7bb99)
- update acvm to 0.15.1 (#1764) (b52f25d)
Bug Fixes
- 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)
noir: v0.7.0
0.7.0 (2023-06-19)
⚠ BREAKING CHANGES
- 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)
Features
- 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)
Bug Fixes
- 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](https://github.com/no...
v0.6.0
0.6.0 (2023-05-16)
⚠ BREAKING CHANGES
Features
- 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)
Bug Fixes
- 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)
Miscellaneous Chores
v0.5.1
v0.5.0
v0.4.1
0.4.1 (2023-04-20)
Features
- Add Poseidon-BN254 hash functions (#1176) (33feb2b)
- bump noir-source-resolver version (#1182) (750ed77)
Bug Fixes
- 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)
v0.4.0
0.4.0 (2023-04-17)
⚠ BREAKING CHANGES
- 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)
Features
- 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)
Bug Fixes
- 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)