Remove outdated TODOs [skip ci]
- noinline consts: https://github.com/nim-lang/RFCs/issues/257
This commit is contained in:
parent
6530596032
commit
1383aae105
|
@ -6,7 +6,7 @@
|
|||
# * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0).
|
||||
# at your option. This file may not be copied, modified, or distributed except according to those terms.
|
||||
|
||||
when defined(amd64): # TODO defined(i386) but it seems lie RDTSC call is misconfigured
|
||||
when defined(amd64): # TODO defined(i386) but it seems like RDTSC call is misconfigured
|
||||
import platforms/x86
|
||||
export getTicks, cpuName
|
||||
|
||||
|
|
|
@ -142,7 +142,6 @@ const useDebug = [
|
|||
|
||||
proc test(flags, path: string, commandFile = false) =
|
||||
# commandFile should be a "file" but Nimscript doesn't support IO
|
||||
# TODO: use a proper runner
|
||||
if not dirExists "build":
|
||||
mkDir "build"
|
||||
# Compilation language is controlled by WEAVE_TEST_LANG
|
||||
|
|
|
@ -107,8 +107,6 @@ func steinsGCD*(v: var Limbs, a: Limbs, F, M: Limbs, bits: int, mp1div2: Limbs)
|
|||
|
||||
# TODO: the inlining of primitives like `csub` is bad for codesize
|
||||
# but there is a 80% slowdown without it.
|
||||
# TODO: The `cmov` in `cadd` and `csub` always retest the condition
|
||||
# which is probably costly here given how many we have.
|
||||
|
||||
var a = a
|
||||
var b = M
|
||||
|
|
|
@ -22,7 +22,6 @@ import
|
|||
# - properly cross the compile-time -> runtime boundary
|
||||
# - avoid inlining large const arrays at the call site
|
||||
# for example when using the `r2modP` constant in multiple overloads in the same module
|
||||
# TODO: check that those constants use extern const to avoid duplication across modules
|
||||
|
||||
type
|
||||
CurveFamily* = enum
|
||||
|
@ -352,7 +351,7 @@ macro declareCurves*(curves: untyped): untyped =
|
|||
## ...
|
||||
## ]
|
||||
##
|
||||
## TODO: Ensure that
|
||||
## Ensure that
|
||||
## 1. the modulus is not inlined at runtime to avoid codesize explosion.
|
||||
## 2. is not duplicated across compilation modules.
|
||||
|
||||
|
|
|
@ -56,11 +56,6 @@ func decomposeEndo*[M, scalBits, L: static int](
|
|||
## - Conditional negate is about 10 cycles per Fp, on G2 projective we have 3 (coords) * 2 (Fp2) * 10 (cycles) ~= 60 cycles
|
||||
## We need to test the mini scalar, which is 65 bits so 2 Fp so about 2 cycles
|
||||
## and negate it as well.
|
||||
##
|
||||
## However solution 1 seems to cause issues (TODO)
|
||||
## with some of the BLS12-381 test cases (6 and 9)
|
||||
## - 0x5668a2332db27199dcfb7cbdfca6317c2ff128db26d7df68483e0a095ec8e88f
|
||||
## - 0x644dc62869683f0c93f38eaef2ba6912569dc91ec2806e46b4a3dd6a4421dad1
|
||||
|
||||
# Equal when no window or no negative handling, greater otherwise
|
||||
static: doAssert L >= (scalBits + M - 1) div M + 1
|
||||
|
|
|
@ -111,7 +111,6 @@ func trySetFromCoordX*[F, Tw](
|
|||
## Note: Dedicated robust procedures for hashing-to-curve
|
||||
## will be provided, this is intended for testing purposes.
|
||||
P.y.curve_eq_rhs(x, Tw)
|
||||
# TODO: supports non p ≡ 3 (mod 4) modulus like BLS12-377
|
||||
result = sqrt_if_square(P.y)
|
||||
|
||||
func neg*(P: var ECP_ShortW_Aff, Q: ECP_ShortW_Aff) =
|
||||
|
|
|
@ -92,7 +92,6 @@ func trySetFromCoordsXandZ*[F; Tw](
|
|||
## Note: Dedicated robust procedures for hashing-to-curve
|
||||
## will be provided, this is intended for testing purposes.
|
||||
P.y.curve_eq_rhs(x, Tw)
|
||||
# TODO: supports non p ≡ 3 (mod 4) modulus like BLS12-377
|
||||
result = sqrt_if_square(P.y)
|
||||
|
||||
var z2 {.noInit.}: F
|
||||
|
@ -116,7 +115,6 @@ func trySetFromCoordX*[F; Tw](
|
|||
## Note: Dedicated robust procedures for hashing-to-curve
|
||||
## will be provided, this is intended for testing purposes.
|
||||
P.y.curve_eq_rhs(x, Tw)
|
||||
# TODO: supports non p ≡ 3 (mod 4) modulus like BLS12-377
|
||||
result = sqrt_if_square(P.y)
|
||||
P.x = x
|
||||
P.z.setOne()
|
||||
|
|
|
@ -86,7 +86,6 @@ func trySetFromCoordsXandZ*[F; Tw](
|
|||
## Note: Dedicated robust procedures for hashing-to-curve
|
||||
## will be provided, this is intended for testing purposes.
|
||||
P.y.curve_eq_rhs(x, Tw)
|
||||
# TODO: supports non p ≡ 3 (mod 4) modulus like BLS12-377
|
||||
result = sqrt_if_square(P.y)
|
||||
|
||||
P.x.prod(x, z)
|
||||
|
@ -107,7 +106,6 @@ func trySetFromCoordX*[F; Tw](
|
|||
## Note: Dedicated robust procedures for hashing-to-curve
|
||||
## will be provided, this is intended for testing purposes.
|
||||
P.y.curve_eq_rhs(x, Tw)
|
||||
# TODO: supports non p ≡ 3 (mod 4) modulus like BLS12-377
|
||||
result = sqrt_if_square(P.y)
|
||||
P.x = x
|
||||
P.z.setOne()
|
||||
|
|
|
@ -36,8 +36,6 @@ func toHex*[EC](P: EC): string =
|
|||
## CT:
|
||||
## - no leaks
|
||||
##
|
||||
## TODO: only normalize and don't display the Z coordinate
|
||||
##
|
||||
## This proc output may change format in the future
|
||||
|
||||
var aff {.noInit.}: ECP_ShortW_Aff[EC.F, EC.Tw]
|
||||
|
|
|
@ -52,7 +52,6 @@ func millerLoopGenericBLS12*[C](
|
|||
) =
|
||||
## Generic Miller Loop for BLS12 curve
|
||||
## Computes f{u,Q}(P) with u the BLS curve parameter
|
||||
# TODO: retrieve the curve parameter from the curve declaration
|
||||
|
||||
# Boundary cases
|
||||
# Loop start
|
||||
|
@ -147,9 +146,6 @@ func finalExpHard_BLS12*[C](f: var Fp12[C]) =
|
|||
#
|
||||
# p14: 3 Φ₁₂(p(x))/r(x) = (x−1)² (x+p) (x²+p²−1) + 3
|
||||
#
|
||||
# TODO: paper costs are 4Eₓ+Eₓ/₂+7M₁₂+S₁₂+F₁+F₂
|
||||
# so we have an extra cyclotomic squaring since we use 5Eₓ
|
||||
#
|
||||
# with
|
||||
# - Eₓ being f^x
|
||||
# - Eₓ/₂ being f^(x/2)
|
||||
|
|
|
@ -49,7 +49,6 @@ func millerLoopGenericBN*[C](
|
|||
) =
|
||||
## Generic Miller Loop for BN curves
|
||||
## Computes f{6u+2,Q}(P) with u the BN curve parameter
|
||||
# TODO: retrieve the curve parameter from the curve declaration
|
||||
|
||||
# TODO - boundary cases
|
||||
# Loop start
|
||||
|
|
|
@ -216,7 +216,6 @@ func `*=`*(a: var Fp4, _: typedesc[γ]) {.inline.} =
|
|||
|
||||
func `*=`*(a: var Fp2, b: Fp) =
|
||||
## Multiply an element of Fp2 by an element of Fp
|
||||
# TODO: make generic and move to tower_field_extensions
|
||||
a.c0 *= b
|
||||
a.c1 *= b
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ proc binary_prologue[C: static Curve, N: static int](
|
|||
doAssert len >= aW, "Expected at most " & $len & " bytes but wrote " & $aW & " for " & toHex(aBuf) & " (big-endian)"
|
||||
doAssert len >= bW, "Expected at most " & $len & " bytes but wrote " & $bW & " for " & toHex(bBuf) & " (big-endian)"
|
||||
|
||||
# Build the bigint - TODO more fields codecs
|
||||
# Build the bigint
|
||||
aTest = Fp[C].fromBig BigInt[bits].fromRawUint(aBuf.toOpenArray(0, aW-1), bigEndian)
|
||||
bTest = Fp[C].fromBig BigInt[bits].fromRawUint(bBuf.toOpenArray(0, bW-1), bigEndian)
|
||||
|
||||
|
|
Loading…
Reference in New Issue