Álvaro Rodríguez
Álvaro Rodríguez
### Problem This code: ```rust struct EnumEmulation { a: Option, b: Option, c: Option, } unconstrained fn main() -> pub Field { let mut emulated_enum = EnumEmulation { a: Option::some(1),...
### Problem Currently, we only support public return values: ```rust fn main(var: Field) -> pub (Field, Field) { (var * 2, var + 1) } ``` However, there are some...
### Problem Overflow checks are added on ssa gen. But the overflow checks for signed integers only make sense for the specifics of ACIR, and don't make much sense in...
### Aim Use bigint in brillig ### Expected Behavior Moduli should be checked correctly on operations ### Bug Modulus is half implemented in brillig, it's checked by manually emitting opcodes...
# Description ## Problem\* Resolves https://github.com/noir-lang/noir/issues/5373 ## Summary\* Bigint modulus was checked but never written. Since changing bigint::to_le_bytes to write a modulus ID would require a breaking change, this fixes...
### Problem This is an example of how bigints are currently used in the stdlib: ```rust struct Secpk1Fq { array: [u8;32], } impl Add for Secpk1Fq { fn add(self: Self,...
### Aim Profiling where all the constraints in the program come from ### Expected Behavior Every ACIR opcode should have a call stack associated with it ### Bug Some ACIR...
Memory address literals in bytecode are rust's usize currently in brillig. Change to u32s.
When converting ToRadix, the items are outputted with field type. Knowing that, brillig_gen codegens a loop of casts of the items to the desired type. Noir expects ToRadix to output...
Adds indirect const since the AVM supports it, and uses it to reduce a bunch bytecode sizes when initializing constant arrays. Opcode reductions contracts: Transpiling AppSubscription::assert_block_number with size 406 =>...