Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Perf/multisymbol 4bw #912

Merged
merged 205 commits into from
Nov 17, 2023
Merged

Perf/multisymbol 4bw #912

merged 205 commits into from
Nov 17, 2023

Conversation

Tabaie
Copy link
Contributor

@Tabaie Tabaie commented Nov 13, 2023

Description

This implements an LZSS based compression scheme and the means to verify its correctness in a SNARK.

Type of change

  • New feature (non-breaking change which adds functionality)

Copy link

📦 github.com/consensys/gnark/std/math/emulated
TestInverse 0s

TestInverse/Goldilocks/limb=64 0s

TestInverse/Goldilocks/limb=64/bn254 0s

panic: test timed out after 30m0s
running tests:
	TestInverse (30m0s)
	TestInverse/Goldilocks/limb=64 (30m0s)
	TestInverse/Goldilocks/limb=64/bn254 (30m0s)

goroutine 111 [running]:
testing.(*M).startAlarm.func1()
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:2259 +0x3b9
created by time.goFunc
	/opt/hostedtoolcache/go/1.21.3/x64/src/time/sleep.go:176 +0x2d

goroutine 1 [chan receive, 29 minutes]:
testing.(*T).Run(0xc000187a00, {0xeb2e6c?, 0x51fadc?}, 0xf17a00)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1649 +0x3c8
testing.runTests.func1(0x155cd00?)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:2054 +0x3e
testing.tRunner(0xc000187a00, 0xc00023bc48)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
testing.runTests(0xc00022b180?, {0x15538c0, 0x1d, 0x1d}, {0x4182bf?, 0xc00023bd08?, 0x155b3e0?})
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:2052 +0x445
testing.(*M).Run(0xc00022b180)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1925 +0x636
main.main()
	_testmain.go:109 +0x19c

goroutine 295 [chan receive, 29 minutes]:
testing.(*T).Run(0xc000102b60, {0xc0001d0930?, 0xc0000afed0?}, 0xc0005aae50)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1649 +0x3c8
github.com/consensys/gnark/test.(*Assert).Run(0xc0000aff18, 0xc0005aae40, {0xc0000aff28?, 0x39?, 0x5ad?})
	/home/runner/work/gnark/gnark/test/assert.go:64 +0x99
github.com/consensys/gnark/std/math/emulated.testInverse[...](0xc000102b60)
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:403 +0x107
github.com/consensys/gnark/std/math/emulated.TestInverse(0xc00051ceb0?)
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:392 +0x25
testing.tRunner(0xc000102b60, 0xf17a00)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
created by testing.(*T).Run in goroutine 1
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1648 +0x3ad

goroutine 296 [chan receive, 29 minutes]:
testing.(*T).Run(0xc000102ea0, {0xc00028ab60?, 0xc000081cc8?}, 0xc0005aaef0)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1649 +0x3c8
github.com/consensys/gnark/test.(*Assert).Run(0xc0005aaeb0, 0xc0003b5bc0, {0xc000081e08?, 0x151232c?, 0x2?})
	/home/runner/work/gnark/gnark/test/assert.go:64 +0x99
github.com/consensys/gnark/test.(*Assert).CheckCircuit(0xc0000f53c0?, {0x1006de0?, 0xc00051d4a0}, {0xc000081e88, 0x1, 0x1})
	/home/runner/work/gnark/gnark/test/assert_checkcircuit.go:39 +0x168
github.com/consensys/gnark/std/math/emulated.testInverse[...].func1()
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:409 +0x2bd
github.com/consensys/gnark/test.(*Assert).Run.func1(0xc000102ea0)
	/home/runner/work/gnark/gnark/test/assert.go:66 +0xa7
testing.tRunner(0xc000102ea0, 0xc0005aae50)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
created by testing.(*T).Run in goroutine 295
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1648 +0x3ad

goroutine 297 [runnable]:
internal/reflectlite.Value.Elem({0xdb1c60?, 0xc0003b5da0?, 0x16?})
	/opt/hostedtoolcache/go/1.21.3/x64/src/internal/reflectlite/value.go:226 +0x16f
errors.As({0x1006920, 0xc000611290}, {0xdb1c60?, 0xc0003b5da0})
	/opt/hostedtoolcache/go/1.21.3/x64/src/errors/wrap.go:111 +0x36c
github.com/consensys/gnark/std/math/emulated.(*Field[...]).reduceAndOp(0x101c820?, 0xc0001cbb58, 0xc0001cbb40, 0xc00051d6d0, 0x0)
	/home/runner/work/gnark/gnark/std/math/emulated/field_ops.go:402 +0xe6
github.com/consensys/gnark/std/math/emulated.(*Field[...]).Inverse(0x10152b8?, 0xc0001b4bb0?)
	/home/runner/work/gnark/gnark/std/math/emulated/field_ops.go:44 +0x7b
github.com/consensys/gnark/std/math/emulated.(*InverseCircuit[...]).Define(0x1008de0, {0x10152b8, 0xc0001b4bb0?})
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:386 +0x65
github.com/consensys/gnark/test.IsSolved({0x1006de0, 0xc00051d4a0}, {0x1006de0, 0xc00051d4f0}, 0xc0000f56e0, {0x0, 0x0, 0x0?})
	/home/runner/work/gnark/gnark/test/engine.go:131 +0x445
github.com/consensys/gnark/test.(*Assert).CheckCircuit.func1(0x0?)
	/home/runner/work/gnark/gnark/test/assert_checkcircuit.go:49 +0x29b
github.com/consensys/gnark/test.(*Assert).Run.func1(0xc000103040)
	/home/runner/work/gnark/gnark/test/assert.go:66 +0xa7
testing.tRunner(0xc000103040, 0xc0005aaef0)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
created by testing.(*T).Run in goroutine 296
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1648 +0x3ad

Copy link

📦 github.com/consensys/gnark/std/math/emulated
TestInverse 0s

TestInverse/Goldilocks/limb=64 0s

TestInverse/Goldilocks/limb=64/bn254 0s

panic: test timed out after 30m0s
running tests:
	TestInverse (30m0s)
	TestInverse/Goldilocks/limb=64 (30m0s)
	TestInverse/Goldilocks/limb=64/bn254 (30m0s)

goroutine 322 [running]:
testing.(*M).startAlarm.func1()
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:2259 +0x3b9
created by time.goFunc
	/opt/hostedtoolcache/go/1.21.3/x64/src/time/sleep.go:176 +0x2d

goroutine 1 [chan receive, 29 minutes]:
testing.(*T).Run(0xc0000d6ea0, {0xeb2e6c?, 0x51fadc?}, 0xf17a00)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1649 +0x3c8
testing.runTests.func1(0x155cd00?)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:2054 +0x3e
testing.tRunner(0xc0000d6ea0, 0xc0001b5c48)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
testing.runTests(0xc0001a5180?, {0x15538c0, 0x1d, 0x1d}, {0x4182bf?, 0xc0001b5d08?, 0x155b3e0?})
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:2052 +0x445
testing.(*M).Run(0xc0001a5180)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1925 +0x636
main.main()
	_testmain.go:109 +0x19c

goroutine 304 [runnable]:
github.com/consensys/gnark/std/math/emulated.(*Field[...]).maxOverflow(0x101c820?)
	/home/runner/work/gnark/gnark/std/math/emulated/field.go:284 +0x70
github.com/consensys/gnark/std/math/emulated.(*Field[...]).mulPreCond(0x101c820, 0xc0003564b0, 0xc0000d1a50)
	/home/runner/work/gnark/gnark/std/math/emulated/field_ops.go:203 +0xd5
github.com/consensys/gnark/std/math/emulated.(*Field[...]).inversePreCond(0x101c820?, 0xe4b6a0, 0xc000312b70?)
	/home/runner/work/gnark/gnark/std/math/emulated/field_ops.go:48 +0x53
github.com/consensys/gnark/std/math/emulated.(*Field[...]).reduceAndOp(0x101c820?, 0xc0000d1b58, 0xc0000d1b40, 0xc0003564b0, 0x0)
	/home/runner/work/gnark/gnark/std/math/emulated/field_ops.go:402 +0xb6
github.com/consensys/gnark/std/math/emulated.(*Field[...]).Inverse(0x10152b8?, 0xc0000c0f20?)
	/home/runner/work/gnark/gnark/std/math/emulated/field_ops.go:44 +0x7b
github.com/consensys/gnark/std/math/emulated.(*InverseCircuit[...]).Define(0x1008de0, {0x10152b8, 0xc0000c0f20?})
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:386 +0x65
github.com/consensys/gnark/test.IsSolved({0x1006de0, 0xc000356280}, {0x1006de0, 0xc0003562d0}, 0xc0003a4f80, {0x0, 0x0, 0x0?})
	/home/runner/work/gnark/gnark/test/engine.go:131 +0x445
github.com/consensys/gnark/test.(*Assert).CheckCircuit.func1(0x0?)
	/home/runner/work/gnark/gnark/test/assert_checkcircuit.go:49 +0x29b
github.com/consensys/gnark/test.(*Assert).Run.func1(0xc0004831e0)
	/home/runner/work/gnark/gnark/test/assert.go:66 +0xa7
testing.tRunner(0xc0004831e0, 0xc000370340)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
created by testing.(*T).Run in goroutine 303
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1648 +0x3ad

goroutine 303 [chan receive, 29 minutes]:
testing.(*T).Run(0xc000483040, {0xc000413660?, 0xc000083cc8?}, 0xc000370340)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1649 +0x3c8
github.com/consensys/gnark/test.(*Assert).Run(0xc000370300, 0xc000127590, {0xc000083e08?, 0x151232c?, 0x2?})
	/home/runner/work/gnark/gnark/test/assert.go:64 +0x99
github.com/consensys/gnark/test.(*Assert).CheckCircuit(0xc0003a4c60?, {0x1006de0?, 0xc000356280}, {0xc000083e88, 0x1, 0x1})
	/home/runner/work/gnark/gnark/test/assert_checkcircuit.go:39 +0x168
github.com/consensys/gnark/std/math/emulated.testInverse[...].func1()
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:409 +0x2bd
github.com/consensys/gnark/test.(*Assert).Run.func1(0xc000483040)
	/home/runner/work/gnark/gnark/test/assert.go:66 +0xa7
testing.tRunner(0xc000483040, 0xc0003702a0)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
created by testing.(*T).Run in goroutine 302
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1648 +0x3ad

goroutine 302 [chan receive, 29 minutes]:
testing.(*T).Run(0xc000482ea0, {0xc000116c60?, 0xc0002716d0?}, 0xc0003702a0)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1649 +0x3c8
github.com/consensys/gnark/test.(*Assert).Run(0xc000271718, 0xc000370290, {0xc000271728?, 0x39?, 0x5ad?})
	/home/runner/work/gnark/gnark/test/assert.go:64 +0x99
github.com/consensys/gnark/std/math/emulated.testInverse[...](0xc000482ea0)
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:403 +0x107
github.com/consensys/gnark/std/math/emulated.TestInverse(0xc0000a3c70?)
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:392 +0x25
testing.tRunner(0xc000482ea0, 0xf17a00)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
created by testing.(*T).Run in goroutine 1
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1648 +0x3ad

Copy link

📦 github.com/consensys/gnark/std/math/emulated
TestInverse 0s

TestInverse/Goldilocks/limb=64 0s

TestInverse/Goldilocks/limb=64/bn254 0s

panic: test timed out after 30m0s
running tests:
	TestInverse (30m0s)
	TestInverse/Goldilocks/limb=64 (30m0s)
	TestInverse/Goldilocks/limb=64/bn254 (30m0s)

goroutine 306 [running]:
testing.(*M).startAlarm.func1()
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:2259 +0x3b9
created by time.goFunc
	/opt/hostedtoolcache/go/1.21.3/x64/src/time/sleep.go:176 +0x2d

goroutine 1 [chan receive, 29 minutes]:
testing.(*T).Run(0xc000187a00, {0xeb2e6c?, 0x51fadc?}, 0xf17a00)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1649 +0x3c8
testing.runTests.func1(0x155cd00?)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:2054 +0x3e
testing.tRunner(0xc000187a00, 0xc00023bc48)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
testing.runTests(0xc00022b180?, {0x15538c0, 0x1d, 0x1d}, {0x4182bf?, 0xc00023bd08?, 0x155b3e0?})
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:2052 +0x445
testing.(*M).Run(0xc00022b180)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1925 +0x636
main.main()
	_testmain.go:109 +0x19c

goroutine 299 [chan receive, 29 minutes]:
testing.(*T).Run(0xc0002fb380, {0xc0001d0138?, 0xc000502ed0?}, 0xc00003a6e0)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1649 +0x3c8
github.com/consensys/gnark/test.(*Assert).Run(0xc000502f18, 0xc00003a6d0, {0xc000502f28?, 0x39?, 0x5ad?})
	/home/runner/work/gnark/gnark/test/assert.go:64 +0x99
github.com/consensys/gnark/std/math/emulated.testInverse[...](0xc0002fb380)
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:403 +0x107
github.com/consensys/gnark/std/math/emulated.TestInverse(0xc000430d20?)
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:392 +0x25
testing.tRunner(0xc0002fb380, 0xf17a00)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
created by testing.(*T).Run in goroutine 1
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1648 +0x3ad

goroutine 300 [chan receive, 29 minutes]:
testing.(*T).Run(0xc0002fb520, {0xc0004053e8?, 0xc000391cc8?}, 0xc00003a780)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1649 +0x3c8
github.com/consensys/gnark/test.(*Assert).Run(0xc00003a740, 0xc0004de600, {0xc000391e08?, 0x151232c?, 0x2?})
	/home/runner/work/gnark/gnark/test/assert.go:64 +0x99
github.com/consensys/gnark/test.(*Assert).CheckCircuit(0xc0002f90c0?, {0x1006de0?, 0xc0004302d0}, {0xc000391e88, 0x1, 0x1})
	/home/runner/work/gnark/gnark/test/assert_checkcircuit.go:39 +0x168
github.com/consensys/gnark/std/math/emulated.testInverse[...].func1()
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:409 +0x2bd
github.com/consensys/gnark/test.(*Assert).Run.func1(0xc0002fb520)
	/home/runner/work/gnark/gnark/test/assert.go:66 +0xa7
testing.tRunner(0xc0002fb520, 0xc00003a6e0)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
created by testing.(*T).Run in goroutine 299
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1648 +0x3ad

goroutine 301 [runnable]:
github.com/consensys/gnark/std/math/emulated.(*Field[...]).Reduce(0x101c820?, 0xc000430500)
	/home/runner/work/gnark/gnark/std/math/emulated/field_ops.go:252 +0x145
github.com/consensys/gnark/std/math/emulated.(*Field[...]).reduceAndOp(0x101c820?, 0xc0001cbb58, 0xc0001cbb40, 0xc000430500, 0x0)
	/home/runner/work/gnark/gnark/std/math/emulated/field_ops.go:404 +0x132
github.com/consensys/gnark/std/math/emulated.(*Field[...]).Inverse(0x10152b8?, 0xc0001b4790?)
	/home/runner/work/gnark/gnark/std/math/emulated/field_ops.go:44 +0x7b
github.com/consensys/gnark/std/math/emulated.(*InverseCircuit[...]).Define(0x1008de0, {0x10152b8, 0xc0001b4790?})
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:386 +0x65
github.com/consensys/gnark/test.IsSolved({0x1006de0, 0xc0004302d0}, {0x1006de0, 0xc000430320}, 0xc0002f93e0, {0x0, 0x0, 0x0?})
	/home/runner/work/gnark/gnark/test/engine.go:131 +0x445
github.com/consensys/gnark/test.(*Assert).CheckCircuit.func1(0x0?)
	/home/runner/work/gnark/gnark/test/assert_checkcircuit.go:49 +0x29b
github.com/consensys/gnark/test.(*Assert).Run.func1(0xc0002fb6c0)
	/home/runner/work/gnark/gnark/test/assert.go:66 +0xa7
testing.tRunner(0xc0002fb6c0, 0xc00003a780)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
created by testing.(*T).Run in goroutine 300
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1648 +0x3ad

Copy link

📦 github.com/consensys/gnark/std/math/emulated
TestInverse 0s

TestInverse/Goldilocks/limb=64 0s

TestInverse/Goldilocks/limb=64/bn254 0s

panic: test timed out after 30m0s
running tests:
	TestInverse (30m0s)
	TestInverse/Goldilocks/limb=64 (30m0s)
	TestInverse/Goldilocks/limb=64/bn254 (30m0s)

goroutine 321 [running]:
testing.(*M).startAlarm.func1()
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:2259 +0x3b9
created by time.goFunc
	/opt/hostedtoolcache/go/1.21.3/x64/src/time/sleep.go:176 +0x2d

goroutine 1 [chan receive, 29 minutes]:
testing.(*T).Run(0xc0000d6ea0, {0xeb404c?, 0x51fadc?}, 0xf18be0)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1649 +0x3c8
testing.runTests.func1(0x155ed00?)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:2054 +0x3e
testing.tRunner(0xc0000d6ea0, 0xc000135c48)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
testing.runTests(0xc000125180?, {0x15558c0, 0x1d, 0x1d}, {0x4182bf?, 0xc000135d08?, 0x155d3e0?})
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:2052 +0x445
testing.(*M).Run(0xc000125180)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1925 +0x636
main.main()
	_testmain.go:109 +0x19c

goroutine 316 [chan receive, 29 minutes]:
testing.(*T).Run(0xc00035f380, {0xc0003aa318?, 0xc00006bed0?}, 0xc000351310)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1649 +0x3c8
github.com/consensys/gnark/test.(*Assert).Run(0xc00006bf18, 0xc000351300, {0xc00006bf28?, 0x39?, 0x5ad?})
	/home/runner/work/gnark/gnark/test/assert.go:64 +0x99
github.com/consensys/gnark/std/math/emulated.testInverse[...](0xc00035f380)
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:403 +0x107
github.com/consensys/gnark/std/math/emulated.TestInverse(0xc0003a8320?)
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:392 +0x25
testing.tRunner(0xc00035f380, 0xf18be0)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
created by testing.(*T).Run in goroutine 1
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1648 +0x3ad

goroutine 317 [chan receive, 29 minutes]:
testing.(*T).Run(0xc00035f520, {0xc00052e828?, 0xc000086cc8?}, 0xc0003513b0)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1649 +0x3c8
github.com/consensys/gnark/test.(*Assert).Run(0xc000351370, 0xc00018ac60, {0xc000086e08?, 0x151432c?, 0x2?})
	/home/runner/work/gnark/gnark/test/assert.go:64 +0x99
github.com/consensys/gnark/test.(*Assert).CheckCircuit(0xc00053e980?, {0x1007fe0?, 0xc0003a8910}, {0xc000086e88, 0x1, 0x1})
	/home/runner/work/gnark/gnark/test/assert_checkcircuit.go:39 +0x168
github.com/consensys/gnark/std/math/emulated.testInverse[...].func1()
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:409 +0x2bd
github.com/consensys/gnark/test.(*Assert).Run.func1(0xc00035f520)
	/home/runner/work/gnark/gnark/test/assert.go:66 +0xa7
testing.tRunner(0xc00035f520, 0xc000351310)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
created by testing.(*T).Run in goroutine 316
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1648 +0x3ad

goroutine 318 [runnable]:
internal/reflectlite.flag.mustBeExported(0x99?)
	/opt/hostedtoolcache/go/1.21.3/x64/src/internal/reflectlite/value.go:188 +0xcf
internal/reflectlite.Value.Set({0xe4c760?, 0xc00018ae40?, 0xe4c760?}, {0xe4c760?, 0xc00011f020?, 0xc0000ae9f0?})
	/opt/hostedtoolcache/go/1.21.3/x64/src/internal/reflectlite/value.go:363 +0x5f
errors.As({0x1007b20, 0xc00011f020}, {0xdb2d20?, 0xc00018ae40})
	/opt/hostedtoolcache/go/1.21.3/x64/src/errors/wrap.go:111 +0x434
github.com/consensys/gnark/std/math/emulated.(*Field[...]).reduceAndOp(0x101da20?, 0xc0000cfb50, 0xc0000cfb38, 0xc0003a8b40, 0x0)
	/home/runner/work/gnark/gnark/std/math/emulated/field_ops.go:402 +0xe6
github.com/consensys/gnark/std/math/emulated.(*Field[...]).Inverse(0x10164b8?, 0xc00054e210?)
	/home/runner/work/gnark/gnark/std/math/emulated/field_ops.go:44 +0x7b
github.com/consensys/gnark/std/math/emulated.(*InverseCircuit[...]).Define(0x1009fe0, {0x10164b8, 0xc00054e210?})
	/home/runner/work/gnark/gnark/std/math/emulated/element_test.go:386 +0x65
github.com/consensys/gnark/test.IsSolved({0x1007fe0, 0xc0003a8910}, {0x1007fe0, 0xc0003a8960}, 0xc00053eca0, {0x0, 0x0, 0x0?})
	/home/runner/work/gnark/gnark/test/engine.go:139 +0x4cf
github.com/consensys/gnark/test.(*Assert).CheckCircuit.func1(0x0?)
	/home/runner/work/gnark/gnark/test/assert_checkcircuit.go:49 +0x29b
github.com/consensys/gnark/test.(*Assert).Run.func1(0xc00055c000)
	/home/runner/work/gnark/gnark/test/assert.go:66 +0xa7
testing.tRunner(0xc00055c000, 0xc0003513b0)
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1595 +0xff
created by testing.(*T).Run in goroutine 317
	/opt/hostedtoolcache/go/1.21.3/x64/src/testing/testing.go:1648 +0x3ad

Copy link

📦 github.com/consensys/gnark/std/gkr
TestMiMCFullDepthNoDepSolve 0s

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xb7a52a]

goroutine 102366 [running]:
github.com/consensys/gnark-crypto/ecc/bn254/fr/iop.(*Polynomial).ToCanonical(0x0, 0xc0001bfc80?, {0xc000612f60?, 0xc0?, 0xfcd2e0?})
	/home/runner/go/pkg/mod/github.com/consensys/gnark-crypto@v0.12.2-0.20231023220848-538dff926c15/ecc/bn254/fr/iop/polynomial.go:338 +0x2a
github.com/consensys/gnark/backend/plonk/bn254.(*instance).computeNumerator.func6(0x0)
	/home/runner/work/gnark/gnark/backend/plonk/bn254/prove.go:996 +0xc5
github.com/consensys/gnark/backend/plonk/bn254.batchApply.func1(0xc0001827a0?)
	/home/runner/work/gnark/gnark/backend/plonk/bn254/prove.go:1092 +0x31
created by github.com/consensys/gnark/backend/plonk/bn254.batchApply in goroutine 96401
	/home/runner/work/gnark/gnark/backend/plonk/bn254/prove.go:1091 +0x12b

@@ -657,6 +702,22 @@ func (builder *builder) Commit(v ...frontend.Variable) (frontend.Variable, error
})
}

// NewCombination in the form of res = qL.a + qR.b + qM.ab + qC
func (builder *builder) NewCombination(a, b frontend.Variable, qL, qR, qM, qC int) frontend.Variable {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion;
rename to api.EvaluatePlonkExpression + in this function, check that a, b are not constant and do the appropriate path if they are. (else this function will panic).

also add a corresponding interface so that in a circuit, one can check if _, ok := api.(...); ok and have a fail over path for R1CS for example

"os"
)

func GzWrite(outFileName string, o io.WriterTo) error {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we need to expose that exactly? if you only need it in test, put it iin _test.go files 👍 (but I don't understand from the code why we need it)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently using it for code that outputs the compiled cs, which has to run as a standalone application and not a test.

return a[0]
}

func Pack(api frontend.API, words []frontend.Variable, wordLen int) []frontend.Variable {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should not be here

@Tabaie Tabaie requested a review from gbotrel November 16, 2023 20:47
@gbotrel gbotrel merged commit 51719fe into master Nov 17, 2023
5 checks passed
@gbotrel gbotrel deleted the perf/multisymbol-4bw branch November 17, 2023 18:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants