From 3afa2861fe0441fdf019b5f3e7588af2730678b3 Mon Sep 17 00:00:00 2001 From: Pierre Vandenhove Date: Wed, 18 Dec 2024 10:54:45 +0100 Subject: [PATCH 1/2] fix problem with hash collision --- src/algos/meta/mod.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/algos/meta/mod.rs b/src/algos/meta/mod.rs index c54449c..605d109 100644 --- a/src/algos/meta/mod.rs +++ b/src/algos/meta/mod.rs @@ -106,8 +106,14 @@ where let nb_traces = target.len(); // Check whether the fom if let Some(f) = initial_cache.get_from_cv(target, target) { - debug!("Formula found in cache"); - return Some(f); + // Due to hash collisions, the formula may not be right; we check that + // the formula has the right characteristic vector. + if f.eval(traces).accepted_vec() == target { + debug!("Formula found in cache"); + return Some(f); + } else { + debug!("Hash collision found a wrong formula {f} for target {target:?}; continuing"); + } } if nb_traces > 128 { split_and_solve_non_overlapping(traces, operators, initial_cache, target, params) From ff9fdcc94573a7aeccf2bd96a1a31fe15e40324f Mon Sep 17 00:00:00 2001 From: Gabriel Bathie <19726724+GBathie@users.noreply.github.com> Date: Wed, 8 Jan 2025 09:37:57 +0100 Subject: [PATCH 2/2] Create rust.yml acton --- .github/workflows/rust.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/rust.yml diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..9fd45e0 --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,22 @@ +name: Rust + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Build + run: cargo build --verbose + - name: Run tests + run: cargo test --verbose