All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
divU
operater for unsigned integer division.modU
operater for unsigned integer modulo.
add
operater for adding twoUInt
s and resulting in a longerUInt
with carry.addV
operater for adding multipleUInt
s at once with arbitrary carry.mul
operater for multiplying twoUInt
s and resulting in a double-lengthUInt
with full product.mulV
operater for multiplying twoUInt
s and with arbitrary carry.
slice
operater for splicing aUInt
into a smallerUInt
.join
operator for concatenating twoUInt
s.solveOutput
andsolveOutputEither
for accessing the R1CS solver.
- Lists in fields of the
R1CS
data structure is now represented asData.Sequence
s.
fromBools
andfromField
for replacingpack
andtoUInt
in the future.
- Unsigned integers used to be see as a whole, that means if any of the bits was used, the whole integer will be retained. Now, the compiler will only retain the bits that are used.
- Added
pow
operator for calculating exponentiation of field elements. This operator allow for exponentiation by squaring, which is more efficient than repeated multiplication. - Added helpers like
gf181
,bn128
, andb64
for constructing field type information.
- Removed fixed field type constructors like
GF181
,BN128
, andB64
.
- Issue #15: Allow users to use any field they like.
- Compilation of chained conjunection (more than 3) on
UInt
s.
- Added
lte
,lt
,gte
, andgt
operators for comparingUInt
s. These operators can be used in conjunction withassert
to create assertions about ranges ofUInt
s.
- Addressed miscellaneous issues with the optimizer.
assertLTE
,assertLT
,assertGTE
, andassertGT
: assertions for comparing aUInt
with some constant.
- Addressed miscellaneous issues with the compiler.
assertLTE
for asserting that aUInt
is less than or equal to some constant.modInv
for computing the modular inverse of aUInt
.
- Issue #13: Tutorial Doesn't Load Types
- Compilation of addition, multiplication and not-equal-to on Unsigned Integers.
- A bunch of problems with the interpreter.
- Issue #11: Cannot build with Cabal
- Docker support for the compiler.
- Search for
aurora_prove
andaurora_verify
in the environment instead.
- Temporarily removed Docker support.
Keelung.Syntax.Monad
- Functions for requesting fresh varibles:
freshVar
,freshVarField
,freshVarBool
, andfreshVarUInt
.
- Functions for requesting fresh varibles:
Keelung.Syntax
- Function
uintToBool
- Function
fieldToBool
- Function