Skip to content

v0.10.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@kevaundray kevaundray released this 15 Aug 19:03
0508378

0.10.0 (2023-08-15)

⚠ BREAKING CHANGES

  • nargo: Remove -p short flag from the --program-dir flag (#2300)
  • nargo: Replace --contracts flag with contract 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 to nargo 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 with contract 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 unsigned x 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 ANDs with multiplication (#1954) (435ab35)
  • ssa: Add additional BinaryOp simplifications (#2124) (50b2816)
  • Support contract package type in nargo 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 in nargo new (#2183) (68f5887)
  • Remove last vestige of array of structs to struct of arrays conversion (#2217) (34be264)
  • Rename Option::value to Option::_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)

Miscellaneous Chores

  • 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)