Skip to content

Commit 70cf870

Browse files
committed
[1 changes] feat: revert changes to ValueMerger and Instruction::IfElse (noir-lang/noir#6673)
chore: Revert "fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585)" (noir-lang/noir#6693) fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585) feat: Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691) chore: fix warning when compiling `noir_wasm` (noir-lang/noir#6686) chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688) feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689) feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684) feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606) chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683) chore: update noir-bench-report version (noir-lang/noir#6675) fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672) feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639) feat: better error message when trying to invoke struct function field (noir-lang/noir#6661) feat: add memory report into the CI (noir-lang/noir#6630) feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660) chore: refactor foreign call executors (noir-lang/noir#6659) fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638) fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657) feat: allow filtering which SSA passes are printed (noir-lang/noir#6636) fix: use correct type for attribute arguments (noir-lang/noir#6640) fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663) feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641) feat: Sync from aztec-packages (noir-lang/noir#6656) chore: refactor poseidon2 (noir-lang/noir#6655) fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652) feat: Sync from aztec-packages (noir-lang/noir#6634) fix: used signed division for signed modulo (noir-lang/noir#6635) fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627) chore: pin foundry version in CI (noir-lang/noir#6642) feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615) chore: improve error message of `&T` (noir-lang/noir#6633) fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616) chore!: remove `ec` module from stdlib (noir-lang/noir#6612) fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617) fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626) chore: redo typo PR by donatik27 (noir-lang/noir#6575) chore: redo typo PR by Dimitrolito (noir-lang/noir#6614) feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891) fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625) chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621) feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088) fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619) feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551) chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610) chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611) chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600) chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562) feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584) chore!: Require types of globals to be specified (noir-lang/noir#6592) fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498) fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601) fix: parse a bit more SSA stuff (noir-lang/noir#6599) chore!: remove eddsa from stdlib (noir-lang/noir#6591) chore: Typo in oracles how to (noir-lang/noir#6598) feat(ssa): Loop invariant code motion (noir-lang/noir#6563) fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590) feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568) chore: fix typo in test name (noir-lang/noir#6589) fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580) feat: try to inline brillig calls with all constant arguments (noir-lang/noir#6548) fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579) feat: Sync from aztec-packages (noir-lang/noir#6576)
1 parent 0577c1a commit 70cf870

File tree

107 files changed

+3256
-1332
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+3256
-1332
lines changed

.noir-sync-commit

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
68c32b4ffd9b069fe4b119327dbf4018c17ab9d4
1+
f81244c6bb29e8869f489d536141eebf6f68f00a
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: Report Peak Memory
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
9+
jobs:
10+
build-nargo:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
target: [x86_64-unknown-linux-gnu]
15+
16+
steps:
17+
- name: Checkout Noir repo
18+
uses: actions/checkout@v4
19+
20+
- name: Setup toolchain
21+
uses: dtolnay/rust-toolchain@1.74.1
22+
23+
- uses: Swatinem/rust-cache@v2
24+
with:
25+
key: ${{ matrix.target }}
26+
cache-on-failure: true
27+
save-if: ${{ github.event_name != 'merge_group' }}
28+
29+
- name: Build Nargo
30+
run: cargo build --package nargo_cli --release
31+
32+
- name: Package artifacts
33+
run: |
34+
mkdir dist
35+
cp ./target/release/nargo ./dist/nargo
36+
37+
- name: Upload artifact
38+
uses: actions/upload-artifact@v4
39+
with:
40+
name: nargo
41+
path: ./dist/*
42+
retention-days: 3
43+
44+
generate_memory_report:
45+
needs: [build-nargo]
46+
runs-on: ubuntu-latest
47+
permissions:
48+
pull-requests: write
49+
50+
steps:
51+
- uses: actions/checkout@v4
52+
53+
- name: Download nargo binary
54+
uses: actions/download-artifact@v4
55+
with:
56+
name: nargo
57+
path: ./nargo
58+
59+
- name: Set nargo on PATH
60+
run: |
61+
nargo_binary="${{ github.workspace }}/nargo/nargo"
62+
chmod +x $nargo_binary
63+
echo "$(dirname $nargo_binary)" >> $GITHUB_PATH
64+
export PATH="$PATH:$(dirname $nargo_binary)"
65+
nargo -V
66+
67+
- name: Generate Memory report
68+
working-directory: ./test_programs
69+
run: |
70+
chmod +x memory_report.sh
71+
./memory_report.sh
72+
mv memory_report.json ../memory_report.json
73+
74+
- name: Parse memory report
75+
id: memory_report
76+
uses: noir-lang/noir-bench-report@ccb0d806a91d3bd86dba0ba3d580a814eed5673c
77+
with:
78+
report: memory_report.json
79+
header: |
80+
# Memory Report
81+
memory_report: true
82+
83+
- name: Add memory report to sticky comment
84+
if: github.event_name == 'pull_request' || github.event_name == 'pull_request_target'
85+
uses: marocchino/sticky-pull-request-comment@v2
86+
with:
87+
header: memory
88+
message: ${{ steps.memory_report.outputs.markdown }}

noir/noir-repo/.github/workflows/test-js-packages.yml

+23-7
Original file line numberDiff line numberDiff line change
@@ -519,12 +519,25 @@ jobs:
519519
fail-fast: false
520520
matrix:
521521
project:
522-
# Disabled as these are currently failing with many visibility errors
523-
- { repo: AztecProtocol/aztec-nr, path: ./ }
522+
- { repo: noir-lang/ec, path: ./ }
523+
- { repo: noir-lang/eddsa, path: ./ }
524+
- { repo: noir-lang/mimc, path: ./ }
525+
- { repo: noir-lang/noir_sort, path: ./ }
526+
- { repo: noir-lang/noir-edwards, path: ./ }
527+
- { repo: noir-lang/noir-bignum, path: ./ }
528+
- { repo: noir-lang/noir_bigcurve, path: ./ }
529+
- { repo: noir-lang/noir_base64, path: ./ }
530+
- { repo: noir-lang/noir_string_search, path: ./ }
531+
- { repo: noir-lang/sparse_array, path: ./ }
532+
- { repo: noir-lang/noir_rsa, path: ./lib }
533+
- { repo: AztecProtocol/aztec-packages, path: ./noir-projects/aztec-nr }
524534
- { repo: AztecProtocol/aztec-packages, path: ./noir-projects/noir-contracts }
525-
# Disabled as aztec-packages requires a setup-step in order to generate a `Nargo.toml`
526-
#- { repo: AztecProtocol/aztec-packages, path: ./noir-projects/noir-protocol-circuits }
527-
- { repo: noir-lang/noir-edwards, path: ./, ref: 3188ea74fe3b059219a2ea87899589c266256d74 }
535+
- { repo: AztecProtocol/aztec-packages, path: ./noir-projects/noir-protocol-circuits/crates/parity-lib }
536+
- { repo: AztecProtocol/aztec-packages, path: ./noir-projects/noir-protocol-circuits/crates/private-kernel-lib }
537+
- { repo: AztecProtocol/aztec-packages, path: ./noir-projects/noir-protocol-circuits/crates/reset-kernel-lib }
538+
- { repo: AztecProtocol/aztec-packages, path: ./noir-projects/noir-protocol-circuits/crates/rollup-lib }
539+
- { repo: AztecProtocol/aztec-packages, path: ./noir-projects/noir-protocol-circuits/crates/types }
540+
528541
name: Check external repo - ${{ matrix.project.repo }}
529542
steps:
530543
- name: Checkout
@@ -554,9 +567,12 @@ jobs:
554567
# Github actions seems to not expand "**" in globs by default.
555568
shopt -s globstar
556569
sed -i '/^compiler_version/d' ./**/Nargo.toml
557-
- name: Run nargo check
570+
571+
- name: Run nargo test
558572
working-directory: ./test-repo/${{ matrix.project.path }}
559-
run: nargo check
573+
run: nargo test --silence-warnings
574+
env:
575+
NARGO_IGNORE_TEST_FAILURES_FROM_FOREIGN_CALLS: true
560576

561577
# This is a job which depends on all test jobs and reports the overall status.
562578
# This allows us to add/remove test jobs without having to update the required workflows.

noir/noir-repo/Cargo.lock

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

noir/noir-repo/acvm-repo/acir/src/circuit/brillig.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use serde::{Deserialize, Serialize};
55

66
/// Inputs for the Brillig VM. These are the initial inputs
77
/// that the Brillig VM will use to start.
8-
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Debug)]
8+
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Debug, Hash)]
99
pub enum BrilligInputs<F> {
1010
Single(Expression<F>),
1111
Array(Vec<Expression<F>>),
@@ -14,7 +14,7 @@ pub enum BrilligInputs<F> {
1414

1515
/// Outputs for the Brillig VM. Once the VM has completed
1616
/// execution, this will be the object that is returned.
17-
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Debug)]
17+
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Debug, Hash)]
1818
pub enum BrilligOutputs {
1919
Simple(Witness),
2020
Array(Vec<Witness>),
@@ -23,7 +23,7 @@ pub enum BrilligOutputs {
2323
/// This is purely a wrapper struct around a list of Brillig opcode's which represents
2424
/// a full Brillig function to be executed by the Brillig VM.
2525
/// This is stored separately on a program and accessed through a [BrilligPointer].
26-
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Default, Debug)]
26+
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Default, Debug, Hash)]
2727
pub struct BrilligBytecode<F> {
2828
pub bytecode: Vec<BrilligOpcode<F>>,
2929
}

noir/noir-repo/acvm-repo/acir/src/circuit/mod.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use self::{brillig::BrilligBytecode, opcodes::BlockId};
2525
/// Bounded Expressions are useful if you are eventually going to pass the ACIR
2626
/// into a proving system which supports PLONK, where arithmetic expressions have a
2727
/// finite fan-in.
28-
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
28+
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default, Hash)]
2929
pub enum ExpressionWidth {
3030
#[default]
3131
Unbounded,
@@ -36,13 +36,13 @@ pub enum ExpressionWidth {
3636

3737
/// A program represented by multiple ACIR circuits. The execution trace of these
3838
/// circuits is dictated by construction of the [crate::native_types::WitnessStack].
39-
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
39+
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Default, Hash)]
4040
pub struct Program<F> {
4141
pub functions: Vec<Circuit<F>>,
4242
pub unconstrained_functions: Vec<BrilligBytecode<F>>,
4343
}
4444

45-
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
45+
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Default, Hash)]
4646
pub struct Circuit<F> {
4747
// current_witness_index is the highest witness index in the circuit. The next witness to be added to this circuit
4848
// will take on this value. (The value is cached here as an optimization.)
@@ -69,13 +69,13 @@ pub struct Circuit<F> {
6969
pub assert_messages: Vec<(OpcodeLocation, AssertionPayload<F>)>,
7070
}
7171

72-
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
72+
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Hash)]
7373
pub enum ExpressionOrMemory<F> {
7474
Expression(Expression<F>),
7575
Memory(BlockId),
7676
}
7777

78-
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
78+
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Hash)]
7979
pub struct AssertionPayload<F> {
8080
pub error_selector: u64,
8181
pub payload: Vec<ExpressionOrMemory<F>>,
@@ -355,7 +355,7 @@ impl<F: AcirField> std::fmt::Debug for Program<F> {
355355
}
356356
}
357357

358-
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, Default)]
358+
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, Default, Hash)]
359359
pub struct PublicInputs(pub BTreeSet<Witness>);
360360

361361
impl PublicInputs {

noir/noir-repo/acvm-repo/acir/src/circuit/opcodes.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub use black_box_function_call::{
1515
};
1616
pub use memory_operation::{BlockId, MemOp};
1717

18-
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize)]
18+
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Hash)]
1919
pub enum BlockType {
2020
Memory,
2121
CallData(u32),
@@ -29,7 +29,7 @@ impl BlockType {
2929
}
3030

3131
#[allow(clippy::large_enum_variant)]
32-
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize)]
32+
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Hash)]
3333
pub enum Opcode<F> {
3434
/// An `AssertZero` opcode adds the constraint that `P(w) = 0`, where
3535
/// `w=(w_1,..w_n)` is a tuple of `n` witnesses, and `P` is a multi-variate

noir/noir-repo/acvm-repo/acir/src/circuit/opcodes/black_box_function_call.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ use thiserror::Error;
99
// Note: Some functions will not use all of the witness
1010
// So we need to supply how many bits of the witness is needed
1111

12-
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
12+
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize, Hash)]
1313
pub enum ConstantOrWitnessEnum<F> {
1414
Constant(F),
1515
Witness(Witness),
1616
}
1717

18-
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
18+
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize, Hash)]
1919
pub struct FunctionInput<F> {
2020
input: ConstantOrWitnessEnum<F>,
2121
num_bits: u32,
@@ -79,7 +79,7 @@ impl<F: std::fmt::Display> std::fmt::Display for FunctionInput<F> {
7979
}
8080
}
8181

82-
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize)]
82+
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Hash)]
8383
pub enum BlackBoxFuncCall<F> {
8484
AES128Encrypt {
8585
inputs: Vec<FunctionInput<F>>,

noir/noir-repo/acvm-repo/acir/src/circuit/opcodes/memory_operation.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ pub struct BlockId(pub u32);
77

88
/// Operation on a block of memory
99
/// We can either write or read at an index in memory
10-
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Debug)]
10+
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Debug, Hash)]
1111
pub struct MemOp<F> {
1212
/// A constant expression that can be 0 (read) or 1 (write)
1313
pub operation: Expression<F>,

noir/noir-repo/acvm-repo/acvm_js/build.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ function run_if_available {
2525
require_command jq
2626
require_command cargo
2727
require_command wasm-bindgen
28-
#require_command wasm-opt
28+
require_command wasm-opt
2929

3030
self_path=$(dirname "$(readlink -f "$0")")
3131
pname=$(cargo read-manifest | jq -r '.name')

noir/noir-repo/acvm-repo/brillig/src/black_box.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize};
33

44
/// These opcodes provide an equivalent of ACIR blackbox functions.
55
/// They are implemented as native functions in the VM.
6-
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
6+
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Hash)]
77
pub enum BlackBoxOp {
88
/// Encrypts a message using AES128.
99
AES128Encrypt {

noir/noir-repo/acvm-repo/brillig/src/opcodes.rs

+9-9
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ impl MemoryAddress {
5656
}
5757

5858
/// Describes the memory layout for an array/vector element
59-
#[derive(Debug, Clone, Eq, PartialEq, Serialize, Deserialize)]
59+
#[derive(Debug, Clone, Eq, PartialEq, Serialize, Deserialize, Hash)]
6060
pub enum HeapValueType {
6161
// A single field element is enough to represent the value with a given bit size
6262
Simple(BitSize),
@@ -81,7 +81,7 @@ impl HeapValueType {
8181
}
8282

8383
/// A fixed-sized array starting from a Brillig memory location.
84-
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Copy)]
84+
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Copy, Hash)]
8585
pub struct HeapArray {
8686
pub pointer: MemoryAddress,
8787
pub size: usize,
@@ -94,13 +94,13 @@ impl Default for HeapArray {
9494
}
9595

9696
/// A memory-sized vector passed starting from a Brillig memory location and with a memory-held size
97-
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Copy)]
97+
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Copy, Hash)]
9898
pub struct HeapVector {
9999
pub pointer: MemoryAddress,
100100
pub size: MemoryAddress,
101101
}
102102

103-
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Copy, PartialOrd, Ord)]
103+
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Copy, PartialOrd, Ord, Hash)]
104104
pub enum IntegerBitSize {
105105
U1,
106106
U8,
@@ -152,7 +152,7 @@ impl std::fmt::Display for IntegerBitSize {
152152
}
153153
}
154154

155-
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Copy, PartialOrd, Ord)]
155+
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Copy, PartialOrd, Ord, Hash)]
156156
pub enum BitSize {
157157
Field,
158158
Integer(IntegerBitSize),
@@ -181,7 +181,7 @@ impl BitSize {
181181
/// While we are usually agnostic to how memory is passed within Brillig,
182182
/// this needs to be encoded somehow when dealing with an external system.
183183
/// For simplicity, the extra type information is given right in the ForeignCall instructions.
184-
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Copy)]
184+
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Copy, Hash)]
185185
pub enum ValueOrArray {
186186
/// A single value passed to or from an external call
187187
/// It is an 'immediate' value - used without dereferencing.
@@ -198,7 +198,7 @@ pub enum ValueOrArray {
198198
HeapVector(HeapVector),
199199
}
200200

201-
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
201+
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Hash)]
202202
pub enum BrilligOpcode<F> {
203203
/// Takes the fields in addresses `lhs` and `rhs`
204204
/// Performs the specified binary operation
@@ -314,7 +314,7 @@ pub enum BrilligOpcode<F> {
314314
}
315315

316316
/// Binary fixed-length field expressions
317-
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
317+
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Hash)]
318318
pub enum BinaryFieldOp {
319319
Add,
320320
Sub,
@@ -332,7 +332,7 @@ pub enum BinaryFieldOp {
332332
}
333333

334334
/// Binary fixed-length integer expressions
335-
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
335+
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Hash)]
336336
pub enum BinaryIntOp {
337337
Add,
338338
Sub,

noir/noir-repo/compiler/integration-tests/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"lint": "NODE_NO_WARNINGS=1 eslint . --ext .ts --ignore-path ./.eslintignore --max-warnings 0"
1414
},
1515
"dependencies": {
16-
"@aztec/bb.js": "portal:../../../../barretenberg/ts",
16+
"@aztec/bb.js": "0.63.1",
1717
"@noir-lang/noir_js": "workspace:*",
1818
"@noir-lang/noir_wasm": "workspace:*",
1919
"@nomicfoundation/hardhat-chai-matchers": "^2.0.0",

noir/noir-repo/compiler/noirc_driver/src/debug.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use std::{
88

99
/// For a given file, we store the source code and the path to the file
1010
/// so consumers of the debug artifact can reconstruct the original source code structure.
11-
#[derive(Clone, Debug, Serialize, Deserialize)]
11+
#[derive(Clone, Debug, Serialize, Deserialize, Hash)]
1212
pub struct DebugFile {
1313
pub source: String,
1414
pub path: PathBuf,

0 commit comments

Comments
 (0)