Results 18 issues of Nalin

Closes #449 by storing selectors (the input to `compress_selectors`) as part of the serialised vkey. On reads, reruns the selector compression on the `cs` object. This also partly completes #643...

F-nightly

Add categories to items in the feed. These can/should include: - Organization - Name of property changed

status/STALE

Circom interprets any negative numbers as `prime - number` automatically. Support the same behaviour for Nova Scotia. *Thanks to @socathie for noting!*

It seems from https://hackmd.io/u3qM9s_YR1emHZSg3jteQA?view that there may be a leak of some sort when working with large number of steps, slowing down proving by a factor of ~3x over plain...

This happens on M1/M2 Macs (because Circom C++ Witness generator assumes x86 instructions) and regularly confuses users as to the source of the error. Error should tell them to use...

Since most webpages read these files for many steps, there's probably some mileage we can get on performance by caching these (or the internal/derived Rust structures) well. Not sure if...

There's probably a way to tell wasm-pack to pick up files outside of the primary entrypoint, investigate? https://github.com/nalinbhardwaj/Nova-Scotia/blob/1bc7e395387f94776ebdbe2a88fb7fce50e34402/src/circom/wasm_deps/generate_witness_browser.js#L20-L21

The parallel Nova fork (https://github.com/privacy-scaling-explorations/nova/tree/paranova) noted that for parallelised provers, we need to separate witness generation code and prover code significantly. We can already structurally perform this separation for Nova...

This entire function is duped and can be deduped with some compile-time conditionals inside the function: https://github.com/nalinbhardwaj/Nova-Scotia/blob/1bc7e395387f94776ebdbe2a88fb7fce50e34402/src/lib.rs#L149-L238

Currently, all the types are hardcoded: https://github.com/nalinbhardwaj/Nova-Scotia/blob/1bc7e395387f94776ebdbe2a88fb7fce50e34402/src/lib.rs#L28-L38 These can be made generic and all the individual functions can be made trait-based for cleanliness. This can also be done for upstream...