* Import circom-2 test vectors
* Add failing test under feature flag
* Add exceptionHandler
* Add showSharedRWMemory
* Add getFieldNumLen32 and disable getFrLen
* Add getVersion
Also print version, n32
* Add getRawPrime
- Disable getPtrRawPrime
- Write as conditional cfg code blocks
* Refactor cfg code blocks
* Add readSharedRWMemory and get prime from WASM mem
- Add fromArray32 convenience function
* WIP: Debug R1CSfile header
field_size in header is 1, not 32 as expected
Don't see anything recently changed here:
https://github.com/iden3/r1csfile/blob/master/src/r1csfile.js (used by snarkjs)
But this seems new: 0149dc0643/constraint_writers/src/r1cs_writer.rs
* Add CircomVersion struct to Wasm
* XXX: Enum test
* Trait version
* Move traits to Circom, CircomBase, Circom2
* Simplify Wasm struct and remove version
* Feature gate Circom1/Circom2 traits
* Use cfg_if for witness calculation
Make normal dependency
* Fix visibilty for both test paths
* Remove println
Can introduce tracing separately
* refactor
* Make clippy happy with imports, unused variables
* Early exit in error callback from Wasm
This avoids Wasm execution hanging due to problems such as wrong public
input.
Mimics circom_runtime behaviour with less detailed debug information.
See https://github.com/iden3/circom_runtime/blob/master/js/witness_calculator.js#L52-L64
Adds test for wrong public input. Without early exit, the test stalls.
With it, the Circom build step fails as expected.
* chore: clean up error handling
* ci: add caching
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>