Álvaro Rodríguez

Results 14 issues of Á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),...

enhancement

### Problem Currently, we only support public return values: ```rust fn main(var: Field) -> pub (Field, Field) { (var * 2, var + 1) } ``` However, there are some...

enhancement

### 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...

enhancement

### 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...

bug

# 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,...

enhancement

### 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...

bug

Memory address literals in bytecode are rust's usize currently in brillig. Change to u32s.

enhancement
brillig

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 =>...