Releases: iden3/circom
Releases · iden3/circom
v2.1.1
November 4, 2022 circom 2.1.1
Extensions
- New feature of anonymous components: programmers can pass the parameters indicate the input names receiving the values.See here.
- circom now exits with 0 when it finishes successfully (last version exists with Exist(0) which broke some projects).
- Improving tags assignment: case multiple assignments in an array giving the same value to a tag.
- Allowing in cpp the use of binary, octal and hexadecimal numbers as inputs from a json file
- Adding support for non-64bit architectures.
- Witness_calculator adapted to work with negative numbers in the json input.
Fixed bugs
- Fixing bug in C++ witness generation: function Fr_toInt in fr.asm
- Improving error handling division by zero (instead of throwing a panic)
v2.1.0
v2.0.9
Release notes
September 21, 2022 circom 2.0.9
Extension
- Adding a warning if the programmer is using the operator <-- when it is possible to use <== instead (if the right side is a quadratic expression and the instruction is not contained in a custom template).
- Signal ids in custom templates changed to 64 bits.
- Array sizes are expected to be usize. Now, we throw an error in other case.
- Separating optimization option -O2 in two different options: --O2 and --O2rounds. Explanation can be found here. The default option is currently --O2.
- Writing Sections 4 and 5 of the r1cs file, only if "pragma custom_templates" is used (which is needed if custom templates are present).
- Improving --O1 optimization.
- Adding a new documentation section about the different compilation options and flags.
Fixed bugs
- Fixing -l option to disallow several values for one option: each value must have its own -l option.
v2.0.8
Release notes
August 26, 2022 circom 2.0.8
Extensions
- Adding a link option -l that works as usual in other programming languages, to include a directory to look for the circuits indicated by the directive include.
- Adding a warning if the programmer is using the operator <-- when it is possible to use <== instead (if the right side is a quadratic expression).
- circom returns 0 if everything was correct and a number greater than 0 if something was wrong.
- Changing the log operator to work as usual in other programming languages.
- Allowing the creation of parallel components. The keyword parallel can be used per instance besides of per template. Now, parallel can be indicated before the instantiation call to make parallel that particular instance.
- Wasm Functions getMinorVersion and getPatchVersion to obtain the minor and the patch version.
Fixed Bugs
- Fixing main.cpp to allow handling a main component without inputs.
- New log version has to be applied in every version of wasm files. (By a mistake, it was not updated for every wasm files.)
v2.0.7
Release notes
August 19, 2022 circom 2.0.7
Extensions
- Log operation receives as parameters a list of expressions and string. (Documentation is here.
- New heuristics that improves the constraint simplification process is added by default. The old version of the simplification process can be still used using the option "--use_old_simplification_heuristics".
- Initialization of every array position to 0 in both C and WASM witness generator.
- New check of size vector when vector assignment:
+ If a vector is assigned in a smaller vector, then an error is produced.
+ If a vector is assigned in a larger vector, then a warning is produced. (The remaining positions will have their previous values, or 0
otherwise. - Improvement of the trace error message.
v2.0.6
v.2.0.5
June 23, 2022 circom 2.0.5
Extensions
- Removing non-determinism in linear constraints that cannot be removed.
- Making deterministic the code generation.
- Adding signal one in the wires counting for optimization option '-O0'.
Fixed Bugs
- Bug in conditional creation of components inside loops
v.2.0.4
April 24, 2022 circom 2.0.4
Extensions
- Improvement of unused signals removal in constraint optimization.
- macos (x86_64) support for cpp backend added: use template to generate makefile (Not available for M1).
- wabt dependency swapped to wast dependency instead.
- Improvement of the known/unknown analysis.
- Single signal declaration with initialization added for both <== and <--.
- Input signal size check added in wasm/JS and C++ generated code.
- Recommendation of using C++ when the memory needed is beyond WebAssembly limit added.
- Making deterministic the R1CS file: constraints will be always written in the R1CS file in the same order.
Fixed Bugs
- Bug in C++ error trace management for asserts in functions.
- Bug in multiple line(s) comments.
- Bug in unassigned inputs of arrays of size 0.
- Bug in the use of constant division operation on constraints.
- Bug in evaluation of expressions involving subcomponents signals.
v.2.0.3
Dec 23, 2021 circom 2.0.3
Extensions
- Improvement in the check all array dimensions in its definition have known size.
- A new verbose flag is added: If –verbose is set the compiler shows log messages during constraint generation.
Fixed Bugs
- Bug in functions that return calls to other functions.