13 Commits

Author SHA1 Message Date
Alex Ozdemir
2cdc019b86 Merge updates needed for SHA with lookups. (#196)
This is highly unoptimized, for now.
2024-06-19 13:09:43 -07:00
Alex Ozdemir
aa318e55a5 opts and tests from the memory project (#195) 2024-06-11 16:50:35 -07:00
Alex Ozdemir
0b88154ceb Implement ROM-checking based on Haboeck's lookup argument (#185) 2024-02-22 22:40:11 -08:00
Alex Ozdemir
4c5dafee95 A Waksman-based RAM permutation argument (#171)
This allows folks to use the RAM machinery while sticking with (non-interactive) R1CS output.

We're going to need this anyway when we benchmark our new approach.
2023-09-19 02:39:24 -07:00
Alex Ozdemir
a586f7f95d GC after each optimization (#167)
Flag: `--ir-frequent-gc true`

Reduces memory usage on Jess & Eli's pgm from 398MB to 285MB.
2023-08-11 16:37:46 -07:00
Alex Ozdemir
706405fd4f Committed witnesses & randomness in Z# (& tests) (#154)
A basic implementation of committed witnesses & volatile RAM extraction in the Z# front-end.

The passes in question are still a bit brittle, so I left them behind a flag.
2023-03-15 16:28:19 -07:00
Alex Ozdemir
cd1be1ea1c Optimizations for interaction, randomness and RAM (#151)
List of optimizations:
* challenge skolemization
* condition store parsing/expansion
* volatile RAM extraction
* persistent RAM extraction
* RAM checking (for both)
2023-03-14 11:15:42 -07:00
Alex Ozdemir
155794c2bf Committed witnesses, CP link implementation (#149) 2023-03-13 14:39:35 -07:00
Alex Ozdemir
8608e03e90 Option to hide all fields when printing IR (#142) 2023-01-29 19:16:42 -08:00
Edward Chen
c06e938c41 Introducing SV Comp-style tests for C Frontend (#140)
Integrating SV comp tests for C Frontend

---------

Co-authored-by: Alex Ozdemir <aozdemir@hmc.edu>
2023-01-29 21:30:55 -05:00
Alex Ozdemir
1a1cdc5858 Add option to panic on OOB PfToBv (#129) 2023-01-05 19:57:04 -08:00
Alex Ozdemir
f9bedf0787 Alternative formatter (#128)
* Configuration system. Kill DFL_T

* add circ::cfg::CircCfg that holds cfg info
   * it's constructible from circ_opt::CircOpt
      * implements clap::Args, so you can set it from your compiler's
        CLI/envvars
      * defined in external crate to keep clap out of our main build
      * organized by circ module, but not feature gated
         *  no point: the build wouldn't meaningfully change
      * includes a way to set the default field
* added circ::cfg::set and circ::cfg::cfg
   * also circ::cfg::set_default and circ::cfg::set_cfg
   * access a sync::once_cell, static configuration
* killed DFL_T

* workflows
   * unit-tested component probably need to not read circ::cfg::cfg.
   * compilers need to call circ::cfg::set or circ::cfg::set_default.

* rm dead features

* WIP

* Alternate formatting machinery.

* fmt & lint

* rm Letified

* ilp
2023-01-03 21:51:28 -08:00
Alex Ozdemir
be8741c615 Configuration system. Kill DFL_T (#127)
* Configuration system. Kill DFL_T

* add circ::cfg::CircCfg that holds cfg info
   * it's constructible from circ_opt::CircOpt
      * implements clap::Args, so you can set it from your compiler's
        CLI/envvars
      * defined in external crate to keep clap out of our main build
      * organized by circ module, but not feature gated
         *  no point: the build wouldn't meaningfully change
      * includes a way to set the default field
* added circ::cfg::set and circ::cfg::cfg
   * also circ::cfg::set_default and circ::cfg::set_cfg
   * access a sync::once_cell, static configuration
* killed DFL_T

* workflows
   * unit-tested component probably need to not read circ::cfg::cfg.
   * compilers need to call circ::cfg::set or circ::cfg::set_default.

* rm dead features
2022-12-25 20:53:27 -08:00