v0.10.0
Pre-release
Pre-release
0.10.0 (2023-08-15)
⚠ BREAKING CHANGES
- 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
Features
- 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)
Bug Fixes
- 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)