Skip to content

v1.0.0-beta.8

Choose a tag to compare

@noirwhal noirwhal released this 11 Jul 14:33
ba05d72

1.0.0-beta.8 (2025-07-10)

⚠ BREAKING CHANGES

  • disallow casting signed integers to field (#8818)
  • remove hash_to_field from stdlib (#9098)

Features

  • nargo expand for LSP (#9012) (4fb8d36)
  • Allow TraitAsType syntax to refer to associated constants in expressions (#9041) (e64ae7d)
  • debug: Print ssa locations along with ssa (#9001) (759dc57)
  • fuzz: Add comptime_vs_brillig_direct target (#8924) (1478114)
  • fuzz: Generate references in the AST fuzzer (#8728) (071c897)
  • fuzz: Use Slice in the AST generator (#9156) (a8fe98e)
  • Implement type suffixes (#8970) (27e5ed3)
  • Implicit coercion of str and fmtstr into CtString (#9032) (2d8f14e)
  • Push overflow checks inside of signed binary ops (#9074) (2684469)
  • Show why an assertion will always fail if it's a static string (#9013) (ea507d6)
  • Simplify apply function cfg immediately (#8895) (b09073a)
  • Some nargo expand fixes related to function and method calls (#9038) (30a491d)
  • ssa_fuzzer: Custom mutations (#8988) (4f52a7a)
  • ssa_fuzzer: Loops + signed (#8881) (8a7046b)
  • ssa: Handle println in the SSA interpreter (#9028) (85527e0)

Bug Fixes

  • Add a aliased check for last stores (#8955) (a56d36a)
  • Add a remove_unreachable_instructions SSA pass (with unreachable terminator) (#9008) (9fc413d)
  • Add parent traits when adding trait impl where clause (#9000) (caabecf)
  • Apply instantiation bindings to associated constants (#9117) (8988213)
  • Assorted SSA interpreter fixes (#8893) (ca3238c)
  • Better package name validation and error messages for nargo new/init (#8978) (06c73d7)
  • Catch unbound type variables during frontend compilation (#8686) (53bd661)
  • Check "negate with overflow" in comptime code + allow u1 to be used in comptime code (#8969) (256c678)
  • Check both coordinates for point doubling (#9039) (d692001)
  • Check for maximum limbs during radix decomposition (#9134) (409c838)
  • Codegen generic type arguments (#9044) (b8abf30)
  • Combine turbofish types with potential type bindings (#9062) (f627889)
  • Compute the dominance frontier of the reverse cfg using the extended cfg (#9019) (d596f68)
  • Create calls to apply before function values are changed to fields in defunctionalize (#8916) (3546f47)
  • defunctionalize: Create a placeholder function for first-class function calls with no variants (#8697) (e96b40c)
  • Do not hoist control dependent cast (#8886) (98d19fb)
  • Enum match on integer type variable (#9122) (b6f0dee)
  • Execution and proving discrepancy in ecdsa (#9157) (d651576)
  • expand: Handle HirIdent with TraitItem (and other related fixes) (#9143) (4742c02)
  • expand: Missing struct member visibility, and use "crate" instead of "super" when possible (#9081) (014d793)
  • expand: Show references to ModuleDefId recursing on parents (#8977) (2cfc786)
  • Fix if/match tracking in last uses pass (#8935) (670063c)
  • formatter: Reset indetnation after group changed it (#8966) (39cec14)
  • fuzz: Assign to an index variable to sequence side effects (#9056) (3672e3e)
  • fuzz: Avoid negating i8::MIN into i8::MAX+1 which won't compile (#8972) (f1a3938)
  • fuzz: Avoid overflow in gen_unary (#9024) (301d86e)
  • fuzz: Avoid overflowing binary ops in "no dynamic" mode (#8996) (f9b66d6)
  • fuzz: Consider == turning into != equivalent (#9025) (a77d56d)
  • fuzz: Consider values returned from Brillig to ACIR as dynamic (#8931) (b04a51c)
  • fuzz: Do not access arrays with &mut inside if using dynamic condition (#9072) (00980ec)
  • fuzz: Do not take a mutable reference over immutable vars which contain a mutable ref (#8971) (de51b8f)
  • fuzz: Enable print in comptime_vs_brillig_direct (#9045) (9369420)
  • fuzz: Fix env var name in fuzzing workflow (#8929) (7b972b5)
  • fuzz: Fix wrong source listing order for comptime (#9149) (8f7b3fa)
  • fuzz: Handle overflow errors from the elaborator (#9014) (e25b5d7)
  • fuzz: Use an inline block to circumvent negation with overflow (#8911) (753ad6f)
  • fuzz: Use indirection for taking &mut over an array element (#8992) (01b9e16)
  • Handle return_data in the interpreter SSA CLI (#8914) (237876e)
  • Impl associated types can get out of order (#9137) (5d58460)
  • Increment reference counts when deduplicating calls which return arrays (#8757) (d7030e8)
  • Inline global arrays with functions at their call site (#8905) (202130c)
  • licm: Account for negative bounds when checking whether a loop executes (#8889) (d49ec03)
  • LICM: Consider negative loop bounds before hoisting div <const> <induction-var> (#8986) (5845dc5)
  • LSP: Suggest generic type methods (#8948) (c0d47a5)
  • Make <T as Trait> no longer an assumed impl (#9146) (4092be1)
  • Match against all Value recursive types when checking for a function/closure in a global (#8967) (e43a7f4)
  • mem2reg: Add the value in ArraySet to aliased_references (#8976) (38088d9)
  • mem2reg: Keep last store for a used nested array (#8917) (2e36b30)
  • mem2reg: Keep last store for reference in array used only in an array get (#8877) (b6ad823)
  • mem2reg: Keep store when any aliased reference is kept (#8960) (8aa2267)
  • mem2reg: Look for aliases in jmp arguments (#9120) (6392ced)
  • More SSA interpreter fixes (#8904) (abef727)
  • noirc_evaluator: U128 Binary::And simplification (#8940) (5071093)
  • parser: Allow type expressions in turbofish named arguments (#9171) (8a25291)
  • parser: Don't simplify double minus (#9163) (3937585)
  • parser: Let as have a lower precedence (#8956) (71ab596)
  • Preserve functions which are used in array_set instructions (#8891) (945ea6e)
  • Prevent bound_constraint_with_offset from panicking (#9145) (c6ee7ba)
  • Put constraint failure after binary operations that overflow (#9023) (f645c28)
  • Recover generics when defining trait impl function (#9009) (f8c71c2)
  • Remove hash_to_field from stdlib (#9098) (441f39a)
  • Replace public key with curve generators in inactive branches (#8993) (5fbc2a4)
  • Revert #9044 (#9080) (be74580)
  • ssa interpreter: Add out of bounds error (#9147) (913ee63)
  • ssa_fuzzer: Nested conditions in loops (#8997) (8e01c4a)
  • ssa: Do not fail for static assertions in a map over empty dynamic slices (#9060) (0098c45)
  • ssa: Iterative branch analysis (#9139) (2bffde4)
  • ssa: Perform mem2reg before DIE (#9018) (afa4fcd)
  • ssa: Recursively invalidate cached array instruction in constant folding (#9128) (2f11e87)
  • ssa: Remove array from cache in constant folding if it's an argument to a Call (#9040) (17bf172)
  • ssa: Signed cast simplification (#8862) (bcfb293)
  • ssa: Swap Brillig index shift and DIE in minimal pipeline (#8946) (b891901)
  • Strange use of predicates in euclidian division (#8934) (b2c38af)
  • Track trait associated types as such (#9170) (692e94c)
  • Use enable_side_effects for u128 multiplication overflow checks (#9115) (3beb8f5)
  • Validate SSA call return values (#9129) (dbee137)
  • When macro parse error happens, discard warnings; also preserve unquoted token locations (#8944) (d1e55d9)

Miscellaneous Chores

  • Disallow casting signed integers to field (#8818) (e03f398)