rust-simplicity
rust-simplicity copied to clipboard
A Simplicity file includes a constants section with all word jets. We should add used scribes to this section. [I have some code that detects scribe.](https://github.com/uncomputable/hal-simplicity/blob/master/src/compress.rs) It needs to be...
Often unification fails on the last stretch, being almost finished. This leads to unhelpful error messages like "A = B but it should be A = B". I am not...
It might be easier to represent values as byte vectors along with a `Final` type. Most values (that we interact with) are byte strings or slight variations thereof. We could...
It uses the sharing ID which is almost always the (partial) IMR, not the CMR.
We should move `decode::decode_natural` into `BitIter` and make use of the new `BitIter` methods. This requires rewriting the old unit tests that make use of `Vec`.
`Frame`, `BitIter`, `BitWriter`, etc. have indices, lengths, etc. that can be bits or bytes. We should make this explicit in the documentation.
[Rust's default stack size is 2 MiB](https://doc.rust-lang.org/std/thread/#stack-size). Simplicity has tree structures that easily exceed this size. _(This is ameliorated by consensus limits, but there is still a risk.)_ Recursive algorithms...
We keep finding bugs via fuzz tests, mostly thanks to @apoelstra running local tests. We should do this more on a crate level. Maybe (almost) every function has one or...
The (planned) iterator over the unshared nodes of a program is exponential in the size of the program in the worst case. > It may be that we want to...
We should implement the composition of two finalized programs (`1 → 1`). How should this be done? ## Approach 1: Unfinalize, combine, refinalize Trivially correct. The type of witness nodes...