Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Bump arkworks to version 0.5.0 #6871

Merged
merged 6 commits into from
Jan 3, 2025

Conversation

winderica
Copy link
Contributor

Description

Problem*

(N/A)

Summary*

This PR bumps arkworks to version 0.5.0, where noir_grumpkin is additionally replaced by ark-grumpkin.

The MSRV is also updated to 1.75.0 due to the requirement of the new arkworks.

Additional Context

Note that two of the dependencies still rely on arkworks 0.4.0:

  • light-poseidon: There is already a PR that updates arkworks, which is thus used in
    light-poseidon = { git = "https://github.com/Lightprotocol/light-poseidon", rev = "c3bb062" }
  • zkhash: Unfortunately I failed to find the repository for zkhash and couldn't directly contribute to it. Instead of maintaining a fork, I tentatively copied its implementation into
    mod zkhash {
    use ark_ff::PrimeField;
    use std::sync::Arc;
    #[derive(Clone, Debug)]
    pub struct Poseidon2Params<F: PrimeField> {
    pub(crate) t: usize, // statesize
    pub(crate) d: usize, // sbox degree
    pub(crate) rounds_f_beginning: usize,
    pub(crate) rounds_p: usize,
    #[allow(dead_code)]
    pub(crate) rounds_f_end: usize,
    pub(crate) rounds: usize,
    pub(crate) mat_internal_diag_m_1: Vec<F>,
    pub(crate) _mat_internal: Vec<Vec<F>>,
    pub(crate) round_constants: Vec<Vec<F>>,
    }
    impl<F: PrimeField> Poseidon2Params<F> {
    #[allow(clippy::too_many_arguments)]
    pub fn new(
    t: usize,
    d: usize,
    rounds_f: usize,
    rounds_p: usize,
    mat_internal_diag_m_1: &[F],
    mat_internal: &[Vec<F>],
    round_constants: &[Vec<F>],
    ) -> Self {
    assert!(d == 3 || d == 5 || d == 7 || d == 11);
    assert_eq!(rounds_f % 2, 0);
    let r = rounds_f / 2;
    let rounds = rounds_f + rounds_p;
    Poseidon2Params {
    t,
    d,
    rounds_f_beginning: r,
    rounds_p,
    rounds_f_end: r,
    rounds,
    mat_internal_diag_m_1: mat_internal_diag_m_1.to_owned(),
    _mat_internal: mat_internal.to_owned(),
    round_constants: round_constants.to_owned(),
    }
    }
    }
    #[derive(Clone, Debug)]
    pub struct Poseidon2<F: PrimeField> {
    pub(crate) params: Arc<Poseidon2Params<F>>,
    }
    impl<F: PrimeField> Poseidon2<F> {
    pub fn new(params: &Arc<Poseidon2Params<F>>) -> Self {
    Poseidon2 { params: Arc::clone(params) }
    }
    pub fn permutation(&self, input: &[F]) -> Vec<F> {
    let t = self.params.t;
    assert_eq!(input.len(), t);
    let mut current_state = input.to_owned();
    // Linear layer at beginning
    self.matmul_external(&mut current_state);
    for r in 0..self.params.rounds_f_beginning {
    current_state = self.add_rc(&current_state, &self.params.round_constants[r]);
    current_state = self.sbox(&current_state);
    self.matmul_external(&mut current_state);
    }
    let p_end = self.params.rounds_f_beginning + self.params.rounds_p;
    for r in self.params.rounds_f_beginning..p_end {
    current_state[0].add_assign(&self.params.round_constants[r][0]);
    current_state[0] = self.sbox_p(&current_state[0]);
    self.matmul_internal(&mut current_state, &self.params.mat_internal_diag_m_1);
    }
    for r in p_end..self.params.rounds {
    current_state = self.add_rc(&current_state, &self.params.round_constants[r]);
    current_state = self.sbox(&current_state);
    self.matmul_external(&mut current_state);
    }
    current_state
    }
    fn sbox(&self, input: &[F]) -> Vec<F> {
    input.iter().map(|el| self.sbox_p(el)).collect()
    }
    fn sbox_p(&self, input: &F) -> F {
    let mut input2 = *input;
    input2.square_in_place();
    match self.params.d {
    3 => {
    let mut out = input2;
    out.mul_assign(input);
    out
    }
    5 => {
    let mut out = input2;
    out.square_in_place();
    out.mul_assign(input);
    out
    }
    7 => {
    let mut out = input2;
    out.square_in_place();
    out.mul_assign(&input2);
    out.mul_assign(input);
    out
    }
    _ => {
    panic!()
    }
    }
    }
    fn matmul_m4(&self, input: &mut [F]) {
    let t = self.params.t;
    let t4 = t / 4;
    for i in 0..t4 {
    let start_index = i * 4;
    let mut t_0 = input[start_index];
    t_0.add_assign(&input[start_index + 1]);
    let mut t_1 = input[start_index + 2];
    t_1.add_assign(&input[start_index + 3]);
    let mut t_2 = input[start_index + 1];
    t_2.double_in_place();
    t_2.add_assign(&t_1);
    let mut t_3 = input[start_index + 3];
    t_3.double_in_place();
    t_3.add_assign(&t_0);
    let mut t_4 = t_1;
    t_4.double_in_place();
    t_4.double_in_place();
    t_4.add_assign(&t_3);
    let mut t_5 = t_0;
    t_5.double_in_place();
    t_5.double_in_place();
    t_5.add_assign(&t_2);
    let mut t_6 = t_3;
    t_6.add_assign(&t_5);
    let mut t_7 = t_2;
    t_7.add_assign(&t_4);
    input[start_index] = t_6;
    input[start_index + 1] = t_5;
    input[start_index + 2] = t_7;
    input[start_index + 3] = t_4;
    }
    }
    fn matmul_external(&self, input: &mut [F]) {
    let t = self.params.t;
    match t {
    2 => {
    // Matrix circ(2, 1)
    let mut sum = input[0];
    sum.add_assign(&input[1]);
    input[0].add_assign(&sum);
    input[1].add_assign(&sum);
    }
    3 => {
    // Matrix circ(2, 1, 1)
    let mut sum = input[0];
    sum.add_assign(&input[1]);
    sum.add_assign(&input[2]);
    input[0].add_assign(&sum);
    input[1].add_assign(&sum);
    input[2].add_assign(&sum);
    }
    4 => {
    // Applying cheap 4x4 MDS matrix to each 4-element part of the state
    self.matmul_m4(input);
    }
    8 | 12 | 16 | 20 | 24 => {
    // Applying cheap 4x4 MDS matrix to each 4-element part of the state
    self.matmul_m4(input);
    // Applying second cheap matrix for t > 4
    let t4 = t / 4;
    let mut stored = [F::zero(); 4];
    for l in 0..4 {
    stored[l] = input[l];
    for j in 1..t4 {
    stored[l].add_assign(&input[4 * j + l]);
    }
    }
    for i in 0..input.len() {
    input[i].add_assign(&stored[i % 4]);
    }
    }
    _ => {
    panic!()
    }
    }
    }
    fn matmul_internal(&self, input: &mut [F], mat_internal_diag_m_1: &[F]) {
    let t = self.params.t;
    match t {
    2 => {
    // [2, 1]
    // [1, 3]
    let mut sum = input[0];
    sum.add_assign(&input[1]);
    input[0].add_assign(&sum);
    input[1].double_in_place();
    input[1].add_assign(&sum);
    }
    3 => {
    // [2, 1, 1]
    // [1, 2, 1]
    // [1, 1, 3]
    let mut sum = input[0];
    sum.add_assign(&input[1]);
    sum.add_assign(&input[2]);
    input[0].add_assign(&sum);
    input[1].add_assign(&sum);
    input[2].double_in_place();
    input[2].add_assign(&sum);
    }
    4 | 8 | 12 | 16 | 20 | 24 => {
    // Compute input sum
    let mut sum = input[0];
    input.iter().skip(1).take(t - 1).for_each(|el| sum.add_assign(el));
    // Add sum + diag entry * element to each element
    for i in 0..input.len() {
    input[i].mul_assign(&mat_internal_diag_m_1[i]);
    input[i].add_assign(&sum);
    }
    }
    _ => {
    panic!()
    }
    }
    }
    fn add_rc(&self, input: &[F], rc: &[F]) -> Vec<F> {
    input
    .iter()
    .zip(rc.iter())
    .map(|(a, b)| {
    let mut r = *a;
    r.add_assign(b);
    r
    })
    .collect()
    }
    }
    }

Please let me know if you are fine with the solutions. I am happy to make changes based on your feedback :)

Documentation*

Check one:

  • No documentation needed.
  • Documentation included in this PR.
  • [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

  • I have tested the changes locally.
  • I have formatted the changes with Prettier and/or cargo fmt on default settings.

Copy link
Contributor

Thank you for your contribution to the Noir language.

Please do not force push to this branch after the Noir team have started review of this PR. Doing so will only delay us merging your PR as we will need to start the review process from scratch.

Thanks for your understanding.

@winderica winderica changed the title Bump arkworks to version 0.5.0 chore: Bump arkworks to version 0.5.0 Dec 19, 2024
@TomAFrench
Copy link
Member

Awesome, thank you for this PR! Ideally we'd have a crates.io release of light-poseidon before merging this as we're looking to remove our git dependencies.

We'll probably take a proper look at getting this merged in the new year.

@winderica
Copy link
Contributor Author

Thanks! In fact, we are also replacing git dependencies with crates.io ones in sonobe, and acvm is among the last few libraries that are still git-based forks, which is why I opened this PR 😄

I will watch light-poseidon and update this PR once a new version is released!

@TomAFrench
Copy link
Member

TomAFrench commented Jan 2, 2025

acvm is among the privacy-scaling-explorations/sonobe#186 that are still git-based forks, which is why I opened this PR

We've not pushed acvm releases to crates.io for a while so what's up there likely won't work for your purposes but we can take a look at prioritising fixing this publishing flow

* master:
  chore: add if/loop tip (separate from no-predicate noir-lang#5657) (noir-lang#6806)
  chore: move implementation of print foreign call into `nargo` (noir-lang#6865)
  chore: document format strings (noir-lang#6920)
  chore: add `rollup_root` and `rollup_block_merge` to tracked protocol circuits (noir-lang#6903)
  fix: consistent file_id across installation paths (noir-lang#6912)
  fix: bigint builtins are foreigns (noir-lang#6892)
  fix: remove unnecessary cast in bit-shift (noir-lang#6890)
  chore: Release Noir(1.0.0-beta.1) (noir-lang#6622)
  chore: Add `Instruction::Noop` (noir-lang#6899)
  chore: remove malformed functions from brillig reports (noir-lang#6898)
  chore: clean up gates reports script (noir-lang#6896)
  chore: move empty programs to `compile_success_empty` (noir-lang#6891)
  feat: add a warning when using unsafe blocks without safety comments (noir-lang#6860)
  chore: quick docs fix for noir-lang#6839 (noir-lang#6840)
  chore: Avoid duplicate Not instructions during flattening (noir-lang#6886)
  chore: Use smallvec for instruction results (noir-lang#6877)
  chore(ci): Display times in compilation and execution reports only with seconds (noir-lang#6880)
  feat: flatten nested if-else statements with equivalent conditions (noir-lang#6875)
  chore(ci): Take averages for compilation and execution report of small programs (noir-lang#6874)
  fix: don't deduplicate binary math of unsigned types (noir-lang#6848)
* master:
  feat(ssa): Hoist add and mul binary ops using known induction variables (noir-lang#6910)
  chore: fix warning (noir-lang#6927)
  chore(ci): Memory reports for execution (noir-lang#6907)
  chore: use ssa parser in flattening pass tests (noir-lang#6868)
  feat(LSP): suggest trait methods from where clauses (noir-lang#6915)
  feat: warn on trait method visibility (noir-lang#6923)
  feat!: Switch to using `jsonrpsee` for foreign calls; refactor `run_test`; foreign call layering (noir-lang#6849)
  chore: add rollup circuits to memory reports (noir-lang#6897)
  chore: remove unused dependency (noir-lang#6922)
@TomAFrench TomAFrench added this pull request to the merge queue Jan 3, 2025
Merged via the queue into noir-lang:master with commit 6515e4e Jan 3, 2025
78 of 83 checks passed
TomAFrench added a commit that referenced this pull request Jan 3, 2025
* master: (47 commits)
  chore: delete a bunch of dead code from `noirc_evaluator` (#6939)
  feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (#6882)
  chore: Bump arkworks to version `0.5.0` (#6871)
  feat(ssa): Hoist add and mul binary ops using known induction variables (#6910)
  chore: fix warning (#6927)
  chore(ci): Memory reports for execution (#6907)
  chore: use ssa parser in flattening pass tests (#6868)
  feat(LSP): suggest trait methods from where clauses (#6915)
  feat: warn on trait method visibility (#6923)
  feat!: Switch to using `jsonrpsee` for foreign calls; refactor `run_test`; foreign call layering (#6849)
  chore: add rollup circuits to memory reports (#6897)
  chore: remove unused dependency (#6922)
  chore: add if/loop tip (separate from no-predicate #5657) (#6806)
  chore: move implementation of print foreign call into `nargo` (#6865)
  chore: document format strings (#6920)
  chore: add `rollup_root` and `rollup_block_merge` to tracked protocol circuits (#6903)
  fix: consistent file_id across installation paths (#6912)
  fix: bigint builtins are foreigns (#6892)
  fix: remove unnecessary cast in bit-shift (#6890)
  chore: Release Noir(1.0.0-beta.1) (#6622)
  ...
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 4, 2025
chore: bump `noir-gates-diff` (noir-lang/noir#6944)
chore: bump `noir-gates-diff` (noir-lang/noir#6943)
fix: Show output of `test_program_is_idempotent` on failure (noir-lang/noir#6942)
chore: delete a bunch of dead code from `noirc_evaluator` (noir-lang/noir#6939)
feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (noir-lang/noir#6882)
chore: Bump arkworks to version `0.5.0` (noir-lang/noir#6871)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 5, 2025
…lang/noir#6945)

chore: use logs for benchmarking (noir-lang/noir#6911)
chore: bump `noir-gates-diff` (noir-lang/noir#6944)
chore: bump `noir-gates-diff` (noir-lang/noir#6943)
fix: Show output of `test_program_is_idempotent` on failure (noir-lang/noir#6942)
chore: delete a bunch of dead code from `noirc_evaluator` (noir-lang/noir#6939)
feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (noir-lang/noir#6882)
chore: Bump arkworks to version `0.5.0` (noir-lang/noir#6871)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 5, 2025
chore: use logs for benchmarking (noir-lang/noir#6911)
chore: bump `noir-gates-diff` (noir-lang/noir#6944)
chore: bump `noir-gates-diff` (noir-lang/noir#6943)
fix: Show output of `test_program_is_idempotent` on failure (noir-lang/noir#6942)
chore: delete a bunch of dead code from `noirc_evaluator` (noir-lang/noir#6939)
feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (noir-lang/noir#6882)
chore: Bump arkworks to version `0.5.0` (noir-lang/noir#6871)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 6, 2025
…noir#6930)

fix: Non-determinism from under constrained checks (noir-lang/noir#6945)
chore: use logs for benchmarking (noir-lang/noir#6911)
chore: bump `noir-gates-diff` (noir-lang/noir#6944)
chore: bump `noir-gates-diff` (noir-lang/noir#6943)
fix: Show output of `test_program_is_idempotent` on failure (noir-lang/noir#6942)
chore: delete a bunch of dead code from `noirc_evaluator` (noir-lang/noir#6939)
feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (noir-lang/noir#6882)
chore: Bump arkworks to version `0.5.0` (noir-lang/noir#6871)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 6, 2025
fix: Non-determinism from under constrained checks (noir-lang/noir#6945)
chore: use logs for benchmarking (noir-lang/noir#6911)
chore: bump `noir-gates-diff` (noir-lang/noir#6944)
chore: bump `noir-gates-diff` (noir-lang/noir#6943)
fix: Show output of `test_program_is_idempotent` on failure (noir-lang/noir#6942)
chore: delete a bunch of dead code from `noirc_evaluator` (noir-lang/noir#6939)
feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (noir-lang/noir#6882)
chore: Bump arkworks to version `0.5.0` (noir-lang/noir#6871)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 7, 2025
…oir#6926)

chore: simplify boolean in a mul of a mul (noir-lang/noir#6951)
feat(ssa): Immediately simplify away RefCount instructions in ACIR functions (noir-lang/noir#6893)
chore: Move comment as part of #6945 (noir-lang/noir#6959)
chore: Separate unconstrained functions during monomorphization (noir-lang/noir#6894)
feat!: turn CannotReexportItemWithLessVisibility into an error (noir-lang/noir#6952)
feat: lock on Nargo.toml on several nargo commands (noir-lang/noir#6941)
feat: don't simplify SSA instructions when creating them from a string (noir-lang/noir#6948)
chore: add reproduction case for bignum test failure (noir-lang/noir#6464)
chore: bump `noir-gates-diff` (noir-lang/noir#6949)
feat(test): Enable the test fuzzer for Wasm (noir-lang/noir#6835)
chore: also print test output to stdout in CI (noir-lang/noir#6930)
fix: Non-determinism from under constrained checks (noir-lang/noir#6945)
chore: use logs for benchmarking (noir-lang/noir#6911)
chore: bump `noir-gates-diff` (noir-lang/noir#6944)
chore: bump `noir-gates-diff` (noir-lang/noir#6943)
fix: Show output of `test_program_is_idempotent` on failure (noir-lang/noir#6942)
chore: delete a bunch of dead code from `noirc_evaluator` (noir-lang/noir#6939)
feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (noir-lang/noir#6882)
chore: Bump arkworks to version `0.5.0` (noir-lang/noir#6871)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 7, 2025
chore: simplify boolean in a mul of a mul (noir-lang/noir#6951)
feat(ssa): Immediately simplify away RefCount instructions in ACIR functions (noir-lang/noir#6893)
chore: Move comment as part of #6945 (noir-lang/noir#6959)
chore: Separate unconstrained functions during monomorphization (noir-lang/noir#6894)
feat!: turn CannotReexportItemWithLessVisibility into an error (noir-lang/noir#6952)
feat: lock on Nargo.toml on several nargo commands (noir-lang/noir#6941)
feat: don't simplify SSA instructions when creating them from a string (noir-lang/noir#6948)
chore: add reproduction case for bignum test failure (noir-lang/noir#6464)
chore: bump `noir-gates-diff` (noir-lang/noir#6949)
feat(test): Enable the test fuzzer for Wasm (noir-lang/noir#6835)
chore: also print test output to stdout in CI (noir-lang/noir#6930)
fix: Non-determinism from under constrained checks (noir-lang/noir#6945)
chore: use logs for benchmarking (noir-lang/noir#6911)
chore: bump `noir-gates-diff` (noir-lang/noir#6944)
chore: bump `noir-gates-diff` (noir-lang/noir#6943)
fix: Show output of `test_program_is_idempotent` on failure (noir-lang/noir#6942)
chore: delete a bunch of dead code from `noirc_evaluator` (noir-lang/noir#6939)
feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (noir-lang/noir#6882)
chore: Bump arkworks to version `0.5.0` (noir-lang/noir#6871)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 7, 2025
)

feat: `--pedantic-solving` flag (noir-lang/noir#6716)
feat!: update `aes128_encrypt` to return an array (noir-lang/noir#6973)
fix: wrong module to lookup trait when using crate or super (noir-lang/noir#6974)
fix: Start RC at 1 again (noir-lang/noir#6958)
feat!: turn TypeIsMorePrivateThenItem into an error (noir-lang/noir#6953)
fix: don't fail parsing macro if there are parser warnings (noir-lang/noir#6969)
fix: error on missing function parameters (noir-lang/noir#6967)
feat: don't report warnings for dependencies (noir-lang/noir#6926)
chore: simplify boolean in a mul of a mul (noir-lang/noir#6951)
feat(ssa): Immediately simplify away RefCount instructions in ACIR functions (noir-lang/noir#6893)
chore: Move comment as part of #6945 (noir-lang/noir#6959)
chore: Separate unconstrained functions during monomorphization (noir-lang/noir#6894)
feat!: turn CannotReexportItemWithLessVisibility into an error (noir-lang/noir#6952)
feat: lock on Nargo.toml on several nargo commands (noir-lang/noir#6941)
feat: don't simplify SSA instructions when creating them from a string (noir-lang/noir#6948)
chore: add reproduction case for bignum test failure (noir-lang/noir#6464)
chore: bump `noir-gates-diff` (noir-lang/noir#6949)
feat(test): Enable the test fuzzer for Wasm (noir-lang/noir#6835)
chore: also print test output to stdout in CI (noir-lang/noir#6930)
fix: Non-determinism from under constrained checks (noir-lang/noir#6945)
chore: use logs for benchmarking (noir-lang/noir#6911)
chore: bump `noir-gates-diff` (noir-lang/noir#6944)
chore: bump `noir-gates-diff` (noir-lang/noir#6943)
fix: Show output of `test_program_is_idempotent` on failure (noir-lang/noir#6942)
chore: delete a bunch of dead code from `noirc_evaluator` (noir-lang/noir#6939)
feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (noir-lang/noir#6882)
chore: Bump arkworks to version `0.5.0` (noir-lang/noir#6871)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 7, 2025
feat: `--pedantic-solving` flag (noir-lang/noir#6716)
feat!: update `aes128_encrypt` to return an array (noir-lang/noir#6973)
fix: wrong module to lookup trait when using crate or super (noir-lang/noir#6974)
fix: Start RC at 1 again (noir-lang/noir#6958)
feat!: turn TypeIsMorePrivateThenItem into an error (noir-lang/noir#6953)
fix: don't fail parsing macro if there are parser warnings (noir-lang/noir#6969)
fix: error on missing function parameters (noir-lang/noir#6967)
feat: don't report warnings for dependencies (noir-lang/noir#6926)
chore: simplify boolean in a mul of a mul (noir-lang/noir#6951)
feat(ssa): Immediately simplify away RefCount instructions in ACIR functions (noir-lang/noir#6893)
chore: Move comment as part of #6945 (noir-lang/noir#6959)
chore: Separate unconstrained functions during monomorphization (noir-lang/noir#6894)
feat!: turn CannotReexportItemWithLessVisibility into an error (noir-lang/noir#6952)
feat: lock on Nargo.toml on several nargo commands (noir-lang/noir#6941)
feat: don't simplify SSA instructions when creating them from a string (noir-lang/noir#6948)
chore: add reproduction case for bignum test failure (noir-lang/noir#6464)
chore: bump `noir-gates-diff` (noir-lang/noir#6949)
feat(test): Enable the test fuzzer for Wasm (noir-lang/noir#6835)
chore: also print test output to stdout in CI (noir-lang/noir#6930)
fix: Non-determinism from under constrained checks (noir-lang/noir#6945)
chore: use logs for benchmarking (noir-lang/noir#6911)
chore: bump `noir-gates-diff` (noir-lang/noir#6944)
chore: bump `noir-gates-diff` (noir-lang/noir#6943)
fix: Show output of `test_program_is_idempotent` on failure (noir-lang/noir#6942)
chore: delete a bunch of dead code from `noirc_evaluator` (noir-lang/noir#6939)
feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (noir-lang/noir#6882)
chore: Bump arkworks to version `0.5.0` (noir-lang/noir#6871)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 8, 2025
)

feat: `--pedantic-solving` flag (noir-lang/noir#6716)
feat!: update `aes128_encrypt` to return an array (noir-lang/noir#6973)
fix: wrong module to lookup trait when using crate or super (noir-lang/noir#6974)
fix: Start RC at 1 again (noir-lang/noir#6958)
feat!: turn TypeIsMorePrivateThenItem into an error (noir-lang/noir#6953)
fix: don't fail parsing macro if there are parser warnings (noir-lang/noir#6969)
fix: error on missing function parameters (noir-lang/noir#6967)
feat: don't report warnings for dependencies (noir-lang/noir#6926)
chore: simplify boolean in a mul of a mul (noir-lang/noir#6951)
feat(ssa): Immediately simplify away RefCount instructions in ACIR functions (noir-lang/noir#6893)
chore: Move comment as part of #6945 (noir-lang/noir#6959)
chore: Separate unconstrained functions during monomorphization (noir-lang/noir#6894)
feat!: turn CannotReexportItemWithLessVisibility into an error (noir-lang/noir#6952)
feat: lock on Nargo.toml on several nargo commands (noir-lang/noir#6941)
feat: don't simplify SSA instructions when creating them from a string (noir-lang/noir#6948)
chore: add reproduction case for bignum test failure (noir-lang/noir#6464)
chore: bump `noir-gates-diff` (noir-lang/noir#6949)
feat(test): Enable the test fuzzer for Wasm (noir-lang/noir#6835)
chore: also print test output to stdout in CI (noir-lang/noir#6930)
fix: Non-determinism from under constrained checks (noir-lang/noir#6945)
chore: use logs for benchmarking (noir-lang/noir#6911)
chore: bump `noir-gates-diff` (noir-lang/noir#6944)
chore: bump `noir-gates-diff` (noir-lang/noir#6943)
fix: Show output of `test_program_is_idempotent` on failure (noir-lang/noir#6942)
chore: delete a bunch of dead code from `noirc_evaluator` (noir-lang/noir#6939)
feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (noir-lang/noir#6882)
chore: Bump arkworks to version `0.5.0` (noir-lang/noir#6871)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 8, 2025
feat: `--pedantic-solving` flag (noir-lang/noir#6716)
feat!: update `aes128_encrypt` to return an array (noir-lang/noir#6973)
fix: wrong module to lookup trait when using crate or super (noir-lang/noir#6974)
fix: Start RC at 1 again (noir-lang/noir#6958)
feat!: turn TypeIsMorePrivateThenItem into an error (noir-lang/noir#6953)
fix: don't fail parsing macro if there are parser warnings (noir-lang/noir#6969)
fix: error on missing function parameters (noir-lang/noir#6967)
feat: don't report warnings for dependencies (noir-lang/noir#6926)
chore: simplify boolean in a mul of a mul (noir-lang/noir#6951)
feat(ssa): Immediately simplify away RefCount instructions in ACIR functions (noir-lang/noir#6893)
chore: Move comment as part of #6945 (noir-lang/noir#6959)
chore: Separate unconstrained functions during monomorphization (noir-lang/noir#6894)
feat!: turn CannotReexportItemWithLessVisibility into an error (noir-lang/noir#6952)
feat: lock on Nargo.toml on several nargo commands (noir-lang/noir#6941)
feat: don't simplify SSA instructions when creating them from a string (noir-lang/noir#6948)
chore: add reproduction case for bignum test failure (noir-lang/noir#6464)
chore: bump `noir-gates-diff` (noir-lang/noir#6949)
feat(test): Enable the test fuzzer for Wasm (noir-lang/noir#6835)
chore: also print test output to stdout in CI (noir-lang/noir#6930)
fix: Non-determinism from under constrained checks (noir-lang/noir#6945)
chore: use logs for benchmarking (noir-lang/noir#6911)
chore: bump `noir-gates-diff` (noir-lang/noir#6944)
chore: bump `noir-gates-diff` (noir-lang/noir#6943)
fix: Show output of `test_program_is_idempotent` on failure (noir-lang/noir#6942)
chore: delete a bunch of dead code from `noirc_evaluator` (noir-lang/noir#6939)
feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (noir-lang/noir#6882)
chore: Bump arkworks to version `0.5.0` (noir-lang/noir#6871)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 8, 2025
fix: Do not emit range check for multiplication by bool (noir-lang/noir#6983)
fix: do not panic on indices which are not valid `u32`s (noir-lang/noir#6976)
feat!: require trait method calls (`foo.bar()`) to have the trait in scope (imported) (noir-lang/noir#6895)
feat!: type-check trait default methods (noir-lang/noir#6645)
feat: `--pedantic-solving` flag (noir-lang/noir#6716)
feat!: update `aes128_encrypt` to return an array (noir-lang/noir#6973)
fix: wrong module to lookup trait when using crate or super (noir-lang/noir#6974)
fix: Start RC at 1 again (noir-lang/noir#6958)
feat!: turn TypeIsMorePrivateThenItem into an error (noir-lang/noir#6953)
fix: don't fail parsing macro if there are parser warnings (noir-lang/noir#6969)
fix: error on missing function parameters (noir-lang/noir#6967)
feat: don't report warnings for dependencies (noir-lang/noir#6926)
chore: simplify boolean in a mul of a mul (noir-lang/noir#6951)
feat(ssa): Immediately simplify away RefCount instructions in ACIR functions (noir-lang/noir#6893)
chore: Move comment as part of #6945 (noir-lang/noir#6959)
chore: Separate unconstrained functions during monomorphization (noir-lang/noir#6894)
feat!: turn CannotReexportItemWithLessVisibility into an error (noir-lang/noir#6952)
feat: lock on Nargo.toml on several nargo commands (noir-lang/noir#6941)
feat: don't simplify SSA instructions when creating them from a string (noir-lang/noir#6948)
chore: add reproduction case for bignum test failure (noir-lang/noir#6464)
chore: bump `noir-gates-diff` (noir-lang/noir#6949)
feat(test): Enable the test fuzzer for Wasm (noir-lang/noir#6835)
chore: also print test output to stdout in CI (noir-lang/noir#6930)
fix: Non-determinism from under constrained checks (noir-lang/noir#6945)
chore: use logs for benchmarking (noir-lang/noir#6911)
chore: bump `noir-gates-diff` (noir-lang/noir#6944)
chore: bump `noir-gates-diff` (noir-lang/noir#6943)
fix: Show output of `test_program_is_idempotent` on failure (noir-lang/noir#6942)
chore: delete a bunch of dead code from `noirc_evaluator` (noir-lang/noir#6939)
feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (noir-lang/noir#6882)
chore: Bump arkworks to version `0.5.0` (noir-lang/noir#6871)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 8, 2025
fix: Do not emit range check for multiplication by bool (noir-lang/noir#6983)
fix: do not panic on indices which are not valid `u32`s (noir-lang/noir#6976)
feat!: require trait method calls (`foo.bar()`) to have the trait in scope (imported) (noir-lang/noir#6895)
feat!: type-check trait default methods (noir-lang/noir#6645)
feat: `--pedantic-solving` flag (noir-lang/noir#6716)
feat!: update `aes128_encrypt` to return an array (noir-lang/noir#6973)
fix: wrong module to lookup trait when using crate or super (noir-lang/noir#6974)
fix: Start RC at 1 again (noir-lang/noir#6958)
feat!: turn TypeIsMorePrivateThenItem into an error (noir-lang/noir#6953)
fix: don't fail parsing macro if there are parser warnings (noir-lang/noir#6969)
fix: error on missing function parameters (noir-lang/noir#6967)
feat: don't report warnings for dependencies (noir-lang/noir#6926)
chore: simplify boolean in a mul of a mul (noir-lang/noir#6951)
feat(ssa): Immediately simplify away RefCount instructions in ACIR functions (noir-lang/noir#6893)
chore: Move comment as part of #6945 (noir-lang/noir#6959)
chore: Separate unconstrained functions during monomorphization (noir-lang/noir#6894)
feat!: turn CannotReexportItemWithLessVisibility into an error (noir-lang/noir#6952)
feat: lock on Nargo.toml on several nargo commands (noir-lang/noir#6941)
feat: don't simplify SSA instructions when creating them from a string (noir-lang/noir#6948)
chore: add reproduction case for bignum test failure (noir-lang/noir#6464)
chore: bump `noir-gates-diff` (noir-lang/noir#6949)
feat(test): Enable the test fuzzer for Wasm (noir-lang/noir#6835)
chore: also print test output to stdout in CI (noir-lang/noir#6930)
fix: Non-determinism from under constrained checks (noir-lang/noir#6945)
chore: use logs for benchmarking (noir-lang/noir#6911)
chore: bump `noir-gates-diff` (noir-lang/noir#6944)
chore: bump `noir-gates-diff` (noir-lang/noir#6943)
fix: Show output of `test_program_is_idempotent` on failure (noir-lang/noir#6942)
chore: delete a bunch of dead code from `noirc_evaluator` (noir-lang/noir#6939)
feat: require trait function calls (`Foo::bar()`) to have the trait in scope (imported) (noir-lang/noir#6882)
chore: Bump arkworks to version `0.5.0` (noir-lang/noir#6871)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants