* add sha256 bench
* feat: Refactor sha256 benchmark and update dependencies
- Refactored the `sha256.rs` benchmarking file by replacing the former `hex_literal::hex` usage with a newly created `decode_hex` function.
- Updated the "Test vectors" section to work with the new `decode_hex` function to compute digests in `Sha256Circuit` instances.
- adapted to new APIs for RecursiveSNARK
- Amended the `Cargo.toml` file to include the `sha2` package dependency, version `0.10.7`.
- added the bench target
* cargo fmt
---------
Co-authored-by: Srinath Setty <srinath@microsoft.com>
* feat: Integrate flamegraph profiling in benchmarks
- Introduce "flamegraph" feature flag for optional profiling integration
- Add benchmark profiling support in `compressed_snark` and `recursive_snark` groups
- Update Cargo.toml with `pprof` and `cfg-if` dependencies
* ci: Build benches to make sure they don't bit-rot
- Integrate bench build step into GitHub Actions workflow
* Improve performance of recursive
* Fix the test after rebase
* Fix CI/CD warnings
* Update benchmark to work with new interface of RecursiveSNARK
* Fix example to make sure step 1 is correct
* refactor: Removes unneeded pass-by value in verification
- Update function arguments to use borrowing instead of passing ownership
* Resolve the conflict with upstream branch
* refactor: Avoid extra input cloning in RecursiveSNARK::new
* Update criterion to 0.5.1 to prevent the panic with its plot
* Fix benchmark issue with new recursive_snark instance
* Fix CI/CD warning with
* refactor: Make mutation easier to observe
- Utilize mutable references to Points for better memory management
* chore: Downgrade clippy dependency for compatibility
---------
Co-authored-by: François Garillot <francois@garillot.net>
* refactor: make circuit tests generic wrt curves
- Improve modularity by introducing generic `test_recursive_circuit_with` function in `src/circuit.rs`
- Refactor `test_recursive_circuit` to utilize the new function
- Implement type constraints for `test_recursive_circuit_with` function
* refactor: make bellperson tests generic in type of group
- Introduce `test_alloc_bit_with` function utilizing generic types
- Adapt existing `test_alloc_bit` function to use the new `test_alloc_bit_with` function with correct types
* refactor: make the nifs test generic in the type of group
* refactor: make the ivc tests generic in the type of curve
* refactor: simplify generics in tests
* make the keccak tests generic
* make the poseidon tests generic
* make the spartan tests generic
* chore: update to ff/group 0.13 and associated dependencies
Updates:
- zkcrypto/ff, zkcrypto/group to 0.13,
- bellperson to 0.25,
- pasta_curves to 0.5.1, and removes the fil_pasta_curves fork
- pasta-msm should no longer need a fork (WIP)
Adapts source in function, mostly for const usage and API updates.
* expose the portable feature of pasta-MSM
* update pointer to pasta-msm
* Clippy
---------
Co-authored-by: François Garillot <francois@garillot.net>