Commit Graph

557 Commits

Author SHA1 Message Date
Clive2312
1b3229fc9b updated tuple pass 2022-05-27 08:14:40 +00:00
Clive2312
3a2658a264 need to scalarize array term 2022-05-27 08:07:52 +00:00
Clive2312
050b5b5ae7 updated C frontend to generate correct IR 2022-05-27 07:43:07 +00:00
Clive2312
51dc75c83a cleaning 2022-05-27 00:05:59 +00:00
Clive2312
7e7aa20b16 uncleaned with lots of print statements 2022-05-26 23:35:10 +00:00
Clive2312
7337bd4023 test 2022-05-26 17:15:19 +00:00
Edward Chen
f01c7e8fb6 test 2022-05-26 13:13:12 -04:00
Clive2312
42bee8b299 merged from pull 2022-05-26 07:38:01 +00:00
Clive2312
3766c0cd58 Merge branch 'function_calls' of https://github.com/circify/circ into function_calls 2022-05-26 07:36:01 +00:00
Clive2312
23f864443c db.join 2022-05-26 07:36:00 +00:00
Edward Chen
7c3ffacb1d merged master 2022-05-25 10:04:39 -04:00
Edward Chen
1821dc7721 merged master 2022-05-25 09:44:23 -04:00
Edward Chen
199da498ae why such large output 2022-05-25 02:48:10 -04:00
Edward Chen
8a9fd407d3 test 2022-05-25 02:45:21 -04:00
Edward Chen
01d5b3bcfa updated tuple pass 2022-05-25 02:42:24 -04:00
Edward Chen
f29eec8d7b fixed return type for calls 2022-05-24 21:32:42 -04:00
Edward Chen
f88379f96f Updated binarize optimization pass (#85) 2022-05-23 23:59:03 -04:00
Edward Chen
094b45e76b test 2022-05-23 15:06:58 -04:00
Edward Chen
e36957bbc1 minor 2022-05-23 01:34:29 -04:00
Clive2312
1381458d53 minor 2022-05-23 05:33:24 +00:00
Edward Chen
a801eb98cc test 2022-05-21 00:17:13 -04:00
Edward Chen
573326904e timing opt 2022-05-20 15:14:53 -04:00
Edward Chen
03bd078b67 minor 2022-05-20 14:19:43 -04:00
Edward Chen
8b316b5088 need replace function 2022-05-20 03:15:54 -04:00
Edward Chen
7693d30975 Updates to C Frontend (#67)
Supporting:
- structs
- ptrs
- n-dimension arrays
- nested structs
- typedef
- sizeof
- shift operations

Benchmarks:
- Original HyCC kmeans testcase (without recursion).
- Original HyCC gauss testcase.

Co-authored-by: Alex Ozdemir <aozdemir@hmc.edu>
Co-authored-by: Ubuntu <ubuntu@neptune2.maas>
2022-05-20 02:20:36 -04:00
Edward Chen
ee43df20e2 memory explosion 2022-05-19 22:47:11 -04:00
Edward Chen
4a2255c0e5 testing calls 2022-05-18 13:17:52 -04:00
Edward Chen
03b1ed7fc1 function calls with stack pointers work! 2022-05-17 22:53:20 -04:00
Alex Ozdemir
c1293464d2 Precomputations (or, as-known-for-proofs, witness extension) (#80)
Co-authored-by: Riad S. Wahby <rsw@jfet.org>
2022-05-17 08:54:04 -07:00
Edward Chen
cef7981ca6 merged c frontend 2022-05-16 12:35:35 -04:00
Edward Chen
193f90fcce removed ptr declaration 2022-05-16 12:32:34 -04:00
Edward Chen
cb49526a48 minor 2022-05-16 12:27:37 -04:00
Alex Ozdemir
2537f4708e function calls (#83) 2022-05-16 09:12:37 -07:00
Edward Chen
5894fa6f03 merge master 2022-05-16 11:34:14 -04:00
Edward Chen
341204d59e playground update 2022-05-16 11:25:57 -04:00
Edward Chen
45f077f59e stuck 2022-05-14 18:24:47 -04:00
Edward Chen
4d0923847f checkpoint 2022-05-14 17:31:04 -04:00
Edward Chen
dec2ff002c merge with master 2022-05-09 16:50:48 -04:00
Edward Chen
d61cc18891 fixed func def name 2022-05-09 16:43:10 -04:00
Edward Chen
2a2e94d966 Merge branch 'c_frontend' into function_calls 2022-05-09 16:30:09 -04:00
Riad S. Wahby
028f747f4d concurrency fixes for garbage collection (#81)
* concurrency fixes for garbage collection

* COLLECT lock even when not testing
2022-05-07 17:20:27 -07:00
Alex Ozdemir
fa671673a8 Bugfix: non-recursive type-checking for Op::Map (#82)
Credits to @kwantam for noticing the bug. Thank you!
2022-05-07 12:31:37 -07:00
Edward Chen
3028832b44 new IR terms for supporting function calls 2022-05-05 14:24:36 -04:00
Edward Chen
bc094d4776 merged with master 2022-05-04 18:13:36 -04:00
Edward Chen
f7995c5a8b merge with master 2022-05-04 17:33:50 -04:00
Edward Chen
5e0ef38538 cargo.lock 2022-05-04 17:28:37 -04:00
Edward Chen
c5e85b1ab3 updated test cases 2022-05-04 17:22:54 -04:00
Riad S. Wahby
a3fa232ba2 improve memory consumption ; add Z# strict unary op, ternary ?:, and type aliases (#77)
* update TODO

* add quiet mode to zxc

* Drop and garbage collection

This commit adds Drop instances and related functionality that force
garbage collection at life cycle end of various structs that contain
Terms.

I didn't implement Drop for Computation because its Terms are generally
moved into a converter. This means that back-ends are responsible for
garbage collecting (see new functionality in ILP, R1cs, and ABY).

* collect the cfold table, too

* prevent double-panic as a result of garbage_collect()

* z# parser: zx is a default extension too

* update Cargo.lock

* strictness un-op #()

also added err messages for asserts and ?: ternary support from ZoK upstream

* for assignments, strict rhs => strict lhs

* zsharp: type definitions WIP

Still missing monomorphization.

* type defns: generic inference

* struct monomorphization for type aliased structs

* different approach: no monomorphization, just canonicalize aliases

* canonicalize struct names

* typedef tests

things work except that importing an alias and not its referent breaks typechecking

* add error message about needing to import referent structs

* update hashconsing pointer in Cargo.toml

* maybe_garbage_collect should also return early when panicking

Co-authored-by: Alex Ozdemir <aozdemir@hmc.edu>
2022-05-04 10:08:23 -07:00
Edward Chen
c9ec54bc1a broken test case 2022-04-28 23:37:27 -04:00
Edward Chen
4e49788723 broken playground 2022-04-27 21:17:16 -04:00