Skip to content

Latest commit

 

History

History
520 lines (480 loc) · 51.8 KB

CHANGELOG.md

File metadata and controls

520 lines (480 loc) · 51.8 KB

0.45.0 - 2025-01-14

✨ Features

  • LessThan for U128 (0492f3b6)
  • (i128) Add lt for i128 (820f26b3)
  • Introduce snippet sign-off functionality (6bc26129)
  • (u128) Add overflowing add (d9afd642)
  • (i128) Shift-right for i128s (39922aef)
  • (hashing) Add snippet for hashing stack value (821d7cac)
  • Add snippet u32::trailing_zeros (1b1a18e5)
  • (!) Add snippet u64::trailing_zeros (a376c4a5)
  • Add snippet hashing::merkle_step_mem_u64 (a9549e80)
  • (TasmStruct) Add destructuring capabilities (3af418ab)

🐛 Bug Fixes

  • Don't unwrap in TasmObject::decode_iter() (cffd64be)
  • (TasmObjectDerive) Make emitted paths absolute (eb715c60)

⚡️ Performance

  • (TasmObject) Use addi x over push x + add (dcf29572)
  • (safe-add) User overflowing add internally (02559987)
  • (verify_mmr_successor) Use new algorithm (94fb493f)

📚 Documentation

  • (PrimitiveRootOfUnity) Add snippet contract (3f8d33e1)

⚙️ Miscellaneous

  • (AddU64) Implement BasicSnippet (4d55540c)
  • (!) TasmObject is BFieldCodec subtrait (bb67184b)
  • Deprecate public type aliases (a880abbd)
  • (!) Drop Rc<RefCell<_>> from RustShadow (f82b2952)
  • (!) (Closure) De-duplicate boilerplate (19361715)

♻️ Refactor

  • (!) (arithmetic) Drop type suffixes (af934daa)
  • (!) Simplify testing framework (b7334898)
  • Remove superfluous 'static bounds (137de811)
  • (!) (TasmObject) Move checks to compile time (bc6c3017)
  • (TasmObject) Don't panic asserting sizes (52a8ba30)
  • (TasmStruct) Remove unreachable code (64f4d3d0)
  • (!) (TasmObject) Slim down public API (3d3daa76)

✅ Testing

  • (PrimitiveRootOfUnity) Check correct encoding (93770758)
  • Add tests and bencher for shift-right-i128 (cc2ad2dc)
  • Test DataType::compare() (ad6c580b)
  • (TasmStruct::destructure) Add test cases (8c940bca)

⏱ Bench

  • Make benchmarks deterministic (c38c7ae0)
  • Add benchmarks (b5245450)
  • (i128_shift_right) Add assembly benchmark (a0209d96)
  • Benchmark merkle_step_u64_index (d703f9a0)

🖋 Snippet Sign-Off

0.43.0 - 2024-11-21

✨ Features

  • Optionally write program-to-debug to disk (251bebac) (33b202f5)
  • Add input type annotation hints after entering an entrypoint (5f32e68c)
  • Add snippet DequeueAs (57c020b1)
  • Keep track of proof items in DequeueNextAs (033955ca)
  • Absorb dequeued item into Fiat-Shamir heuristic (if applicable) (b14ce354)
  • Decouple proof from iterator over its items (c205f5ef)
  • Add data type StructRef (f53603b7)
  • (!) Dynamic allocator uses entire memory pages (ccf90c90)
  • (!) Merge “safe” and “unsafe” lists (f2af2e50)
  • Add snippet for squaring XFE (15e2de89)
  • Add snippet for cubing an XFE (876ee88d)
  • Add snippet for fourth power of an XFE (98d57fce)
  • Add snippet for inner product of two XFE arrays (61945613)
  • Implement TasmObject for Option<T> (928b1fa7)
  • Add snippet for calculating terminal from compile-time known symbols (a721e6ac)
  • Add snippet for squeezing repeatedly for statically known squeeze count (a33bc0f1)
  • Add snippet for sampling a statically-known number of scalars (b43855d2)
  • Improve error message if two stacks do not match (228375fe)
  • Add snippet for calculating terminal value from digest (e8acc61f)
  • Add snippet for deriving Challenges struct (d4245ad5)
  • Sample scalars into static memory (538f2d54)
  • Allow sharing statically allocated memory (40a318e2)
  • Add thin wrapper for AIR constraint evaluation (4c3e8a94)
  • Add function to get conventional STARK-proof-compliant memory layout (7f10d008)
  • Add snippet for Horner evaluation (1be9a76d)
  • Add snippet to read own program digest (49621953)
  • Add split_off snippet (aaa1fcf3)
  • Add conversion method from TVM's FRI struct to tasm-lib's (c882286a)
  • Export function mimicking HashVarlen's sponge mutation (5828932c)
  • Allow profiler to only print aggregated profile (2418aa26)
  • Add snippet for inner product for recufier's main loop (e777210a)
  • Export version of inner prod calculation needed by recufier (a43307c5)
  • Add sorted aggregation to profile output (1504cdc6)
  • Produce timing report when running tests with proof generation (b97573f7)
  • Add snippet for initializing Fiat-Shamir state with generic claim (9610da17)
  • Calculate challenges from generic trait (b0824def)
  • Add FRI proof-derivation helper functions to test (a43ed50d)
  • Add snippet for constructing a claim for a recursive proof (1b64674a)
  • Add snippet for sampling a single scalar (1e35c9e8)
  • Add snippet for calculating out-of-domain points (10ef92ce)
  • Add XFE-snippet for $xfe^{2^n}$ for dynamic $n$ (916c5e26)
  • Add snippet for calculating inverse zerofiers (0ca75bcc)
  • Add convenience functions for STARK verifier (76157651)
  • Add snippet for absorbing statically-sized BFE sequence (2b41a616)
  • Add snippet mirroring hash_varlen for statically-sized inputs (52f85871)
  • Add snippet for verifying a base table row against Merkle root (693072be)
  • Generalize snippet for inner product to accept Xfe base row (db69842f)
  • Add recursive Verifier (7ee32925)
  • Disallow very big proof items (dfa133be)
  • Add snippet for barycentric evaluation (8f907798)
  • Use new evaluation snippets in FRI (39211257)
  • Add profile-generator for verifying a proof from disk (c2140ada)
  • Write tasm output to disk if envvar TASMLIB_STORE is set (3efea1c4)
  • Add snippet for verifying MMR auth path with leaf-index on stack (b0317c6a)
  • Add snippet for calculating Merkle root from list of XFEs (45670b44)
  • Build Merkle tree with known height (fec51e20)
  • Calculate Merkle root XFE sequence with statically known length (f0fc2bf4)
  • Add wrapper for Merkle root from XFEs, len 256, 512, 1024 (054b6ed9)
  • Add contains snippet for lists (206a16e8)
  • Add snippet for comparing ordering of two digests (afe8448b)
  • Add snippet for u64-multiset equality (23a48a19)
  • Add snippet VerifyMmrSuccessor (657794a8)
  • Add snippet VerifyMmrSuccessor (f31b8eb6)
  • (stark_verify) Allow dynamic memory layouts for STARK verify (ef2ca693)
  • Ensure no overlapping use of memory in verifier (d36aae40)
  • (memory) Add function to get highest populated address on ND-region (7affd624)
  • Add function to get first free ND memory address (bed116d0)
  • (dyn_malloc) Ensure dyn_malloc does not map outside its mem-region (315e89c9)
  • Report number of ND digests consumed by StarkVerify (c2027062)
  • (TasmObject) Add method get_encoding_length (a7caa8c3)
  • (TasmObject) Add hints to fields obtained via field! macro (ccee860a)
  • (tasm_object) Add bounds-checks to auto-derived field getters (4f58791e)
  • (tasm_object) Add function for verifying integrity of size-indicators (f35a065a)
  • (tasm_object) Verify correct Option discriminant value (f5dde71d)
  • (tasm_object) Add decode_iter impls for various basic types (7c86811b)
  • (traits) Add new trait mem_preserver (c5a0c943)
  • Add new snippet for read-only algorithm (67ce6382)
  • Add From<FunctionInitialState> for InitVmState implementation (1f0d0c2c)
  • (!) Introduce helper struct StaticAllocation (67ef3663)
  • (map) Allow chaining lists before mapping (031927ad)
  • Add size-consistency verification to dequeue_next_as (dd5e6a75)
  • Add Drop snippet for post-verification-check on VmProofIter (6267a86c)
  • Add bounds-checks on VmProofIter's constructor (6fa7a04e)
  • (Map) Support input types of dynamic length (5d53bc64)
  • (Map) Make item length available to inner fn (c524e21b)
  • Add code-function to compare data types when only sizes are known (c963bb57)
  • (Map) Check correctness of dyn length types (4c4edb79)
  • Add error IDs to TasmObject impls (d6fad459)
  • Simplify testing of assertion failures (b259dd6a)

🐛 Bug Fixes

  • dequeue tasm (9f497b62)
  • sample_scalars tasm (5d7e9f8f)
  • get_colinearity_check_x tasm (10b677f2)
  • Rust shadowing for dequeue by assigning static memory (4cadc890)
  • Rust shadow of HashVarlen (b28c7563)
  • State initialization of HashVarlen (32c204a6)
  • Tasm of SampleIndices (95db01e0)
  • State initialization for multiset_equality (7c115280)
  • Tasm for fri_verify (b547b46e)
  • FRI verify (4db48e61)
  • Bad sanity check in library import (7659e588)
  • Make Zip adhere to BFieldCodec (f77d6a64)
  • Use correct signatures in FriVerify (d6661ce2)
  • (test) First extract legit verification digests, then modify proof (4eb80cad)
  • (test) Skip proof elements from digests supplied via non-determinism (c8d7d007)
  • Skip ignored elements when checking for Fri verification failure (e8a46a71)
  • Export snippet for asserting program digest equals stdin (99ef7bf0)
  • Access correct list length in FriVerify (43204cc8)
  • Drop argument from rust-shadowing allocator (bcd9aebe)
  • Static memory allocation starting address (4f66cf8a)
  • Remove allocation size request in callers (8c755d96)
  • Make benchmark result for list's get snippet deterministic (f1c4255d)
  • Bug in test-setup for list's get snippet (9fa0d297)
  • XFE array sum tests and add benchmark (fae29688)
  • Add missing benchmark results (58aabeda)
  • Fix entrypoint name of terminal calculation snippet (4861d622)
  • Fix bug preventing type annotations from being inserted (fce12868)
  • Bug in value hints in annotated code (41314a28)
  • Linter warnings about MMR mutability (a0776046)
  • Input-type of hash_varlen snippet (f955d7a2)
  • (test) Never sample from empty range (40e1f999)
  • Remove not-yet-included source code files (f6ddcc92)
  • Refactor: expose FRI test-helper functions to external crates (fd78b612)
  • Fix off-by-one error in returned pointer value for quotient evaluations (2a94f318)
  • Return value of statically-sized multiple absorb snippet (cd73eba3)
  • Inserting claim into memory (d72c1e02)
  • Corner-case with base-row length of zero (7fd7ca28)
  • Adapt STARK verifier to Triton VM prover v0.40 (0591f8ea)
  • Snippet name for MMR membership verification (694f27da)
  • (!) Disallow trailing xfe in poly encoding to be zero (ba16404e)
  • (test) Use correct stark parameters (38148b9f)
  • Make field pub (990aceab)
  • (test) Flaky multiset_equality_digests test (7e29fd96)
  • (multiset_equality_digests) Fix soundness bug (18948def)
  • Tests (3d277c2e)
  • Build after upgrading to rustc v1.80.0 (029a5839)
  • Correct calculation of number of digests to read (ce526633)
  • Make conventional memory layout agree with stored proof (f92829ec)
  • Fix overlapping memory issue in dynamic AIR evaluation (2fc4d6d8)
  • README type (f81def99)
  • (verifier::challenges) Use challenges ptr consistently (40786d70)
  • Drop population of memory from update_nondeterminism (27a758c5)
  • (test) Fix stark verify test (fd74c25c)
  • (TasmObject) Fix bounds check on field getters (cb5d4630)
  • (derive_tasm_object) Fix bug in encoding_length code (e2ac030e)
  • (tasm_object) Fix iverified total size of Vec, where T's size is dynamic (deabf646)
  • (test-framework) Don't reuse randomness over different test runs (285364cd)
  • (tasm_object) Fix bug in manual impl. of Option (ada2f454)
  • (test) Fix flaky test caused by sampling+allocating 0 words (6464ac6b)
  • (TasmObject) Use public dependency path in code generator (15ed18d7)
  • Add missing stdin to rust-shadow of MemPreserver (bd12c212)
  • (verify_mmr_successor) Fix off-by-one in stack word dup (f15a1710)
  • Check length of output types in outputs() (311bab38)
  • Use correct types in “higher order” snippets (1c556bea)
  • (RawCode) Only inline inlineable code (f2d40a9f)
  • (RawCode) Constructor (857546ec)
  • (test_helper) Remove superfluous trait bound on test helper (3cbeb660)
  • Publicly implement Function for Map (30aaa812)
  • (ChainMap) Fail early on out-of-bounds access (87a9bf76)
  • (ChainMap) Panic if item length is not static (54b647e8)
  • (Map) Verify length indicator validity (a556930d)
  • (bench) Fix benchmark result for dyn-sized map (b4735945)
  • Off-by-one errors from new field in Claim (a6455c90)
  • (test) Put generated randomness on heap (e5e3150b)

⚡️ Performance

  • Optimize higher-order function map using pointer arithmetic (c12fbaa4)
  • Inline map's inner function if possible (37f30fdd)
  • Faster zip with less generalized code (4e81477f)
  • Save one clock cycle by constructing lists in opposite order (3acebaff)
  • Use array for fiat-shamir challenge of known length in FRI (926144b3)
  • Use array for fiat-shamir challenge of known length in FRI (9d20b5e3)
  • Improve inner function in map (1aefa511)
  • Speed up Merkle root algorithm (fb5e96bc)
  • Reduce instruction count in c-values loop by 6 (fa7a2d0e)
  • (FRI) Reduce c-values calculation inner-loop with 3 instructions (edab3a0a)
  • Switch to static memory address for zerofier inverse values (3f64afc6)
  • Add benchmark for verifier (8f3f2cae)
  • Add benchmarks for verifying base/ext/quotient rows (424d6da3)
  • Reduce opstack table growth by inlining MT verification in snippet (f5d7b3e6)
  • Add benchmarks for different FRI exp factors (4411e21e)
  • Add profile-generating tests for the FRI verifier (4bf531f9)
  • Adjust XFE-NTT's benchmark params to those of verifier (a3154d51)
  • Use sizes relevant for STARK verification in FRI-related benchmark (a7564465)
  • Improve stack-management when verifying FRI (xfe,idx) auth paths (99853121)
  • Use FRI with barycentric evaluation (3ad96a11)
  • Rewrite base/ext row dot product to use dotstep instructions (39f54875)
  • Use new xxdotstep instruction for inner product of XFE arrays (7a8aecef)
  • Enable profiling in benchmarks of verifier (bc72b8c9)
  • Use new absorb_from_mem instruction in absorb_multiple_static_size (72274f73)
  • Use new sponge_absorb_mem instr in snippet for absorbing of dynamic length (295eb68c)
  • Use sponge_absorb_mem in Absorb snippet (28613554)
  • Use new instruction recurse_or_return (1eaf8489)
  • Remove deprecated copying of last codeword in FRI (ca3e8e77)
  • Drop XFE->Digest conversion when finding Merkle root (19a2c518)
  • Reduce memory allocation used in MerkleRoot snippet (69e2cb49)
  • Calculate -b_x from a_x (13b6ea55)
  • Partially unroll barycentric evalaution loop (c1264ae3)
  • Use recurse_or_return in Merkle root from XFEs snippet (f27f67e4)
  • Use recurse_or_return in inner-most loop of MerkleRoot snippet (c7dfb8ba)
  • (multiset_equality) Save a few instructions in loop (62884781)
  • (!) Optimize MMR's verify_from_memory by ~33 % (2f3baf0d)
  • (mmr::bag_peaks) Reduce clock-cycle count by 75 %! (9bcd9bee)
  • (!) Faster and const time u64::lt snippet (7192858f)
  • Improve log_2_floor for u64 (ec116e0c)
  • (mmr) Minor optimization to leaf_index to mt_index snippet (6482beee)
  • Improve digest multiset eq check (b0636778)
  • Catch zero-leaf old MMRAs before loop (dae2149d)
  • (TasmObject) Use new instruction addi (43b601dc)
  • (barycentric) Use pick&place over swap (8e9807bb)
  • (FRI) Use pick&place over swap (ac71ccbd)
  • (!) Faster count of ND digests consumed in STARK verification (9aeb12f6)
  • Remove swap from inner product (35797b05)
  • Slightly improve stack management (be462e99)

📚 Documentation

  • Fix intra doc links (43c6ff8e)
  • Improve documentation of TasmObject (7218061d)
  • Improve error message on memory-equivalence failure (ba4b9f22)
  • Fix an erroneous comment (66975ab0)
  • Update profile output (0541cbba)
  • More stack-annotation on FRI snippet (27bb43e4)
  • Add more stack-annotations to NTT (4972a32f)
  • Improve grouping of a stack-word in FRI-verifier (7887ce66)
  • Add example usage, and warning of a gotcha. (cd62edf9)
  • Print all table lengths when producing TVM proofs (95e36a29)
  • Add more table heights to benchmark results (435409d0)
  • Fix doc example, should not be compiled (a4d63caa)
  • Remove leaking hints from dyn malloc snippet (44aa37c1)
  • Fix stack-view in snippet for static-sized hashing (6199ecec)
  • Update benchmarks (485f54e5)
  • Fix wrong indicated return value of FRI verifier (464f7414)
  • Improve docs on barycentric-eval loop (817c6fc2)
  • Add missing benchmark (aa759b66)
  • (multiset_equality) Align stack views, add * to pointer values (8058316f)
  • Kill wrong comments (6e88b9da)
  • (squeeze) This is not the snippet you're looking for (bf3c9e07)
  • (memory) Update memory conventions based on actual use (9e4620be)
  • Document init_stack_for_isolated_run (b8024b12)
  • (derive_tasm_object) Add description to code-generator for encoding lengths (5d13924f)
  • Improve documentation of snippet-trait read_only_algorithm (52a3366a)
  • Improve memory convention table (8d5ffc9c)

⚙️ Miscellaneous

  • Export triton-vm and twenty-first (9f62bd0e)
  • Use twenty_first -> use crate::twenty_first (18284fd0)
  • Add githuh ci workflow (3ed90746)
  • Update dependency triton-vm (64fe24bd)
  • Export triton-vm and twenty-first (3d4db956)
  • Canonicalize use statements (b14aa820)
  • Canonicalize uses (0b895ee8)
  • Make fields in snippet for computing terminal public (01175b20)
  • Export Challenges snippet (085939fe)
  • Export fast-exponentiation snippets for XFE (ab8e8b0c)
  • Drop dependencies on ArchivalMMR and rusty-leveldb (54471e22)
  • Run-time export snippet for calculating inner product for recufier (63bbf121)
  • Export another snippet used by the compiled recufier (2a44616e)
  • Export another snippet for recufier (bb4802d5)
  • Add local vscode config files to .gitignore (2e2846bb)
  • Mmra_with_mps has moved in twenty-first (c4cebc8e)
  • Move rayon to dev-dependencies (df6396f6)
  • (!) Move proof iterator struct to own directory (c5642f39)
  • Fix formatting error in test (e8799b18)
  • Adapt to MMR::verify() return value change (9478e0db)
  • Make linter happy (ed49c834)
  • Adjust Horner evaluation dyn length test/bench parameters (b18ed764)
  • Upgrade to TVM 0.41.0 (e9d99a3d)
  • Upgrade to TVM 0.42.0-rc-alpha (3c85e337)
  • Rename snippet for verifying MMR membership (0b4e9c65)
  • Account for new polynomial encoding (96371dab)
  • Export snippet to get FriPolynomial from proof stream (124516a2)
  • (!) Upgrade to latest TVM (e265dc47)
  • Make compiler happy (2c0c6c53)
  • Halve combination codeword checks in STARK (f5e490e9)
  • (contains) Verify we got parity right (0ab89784)
  • (multiset_equality_digests) Rename snippet (d6bd41c1)
  • Also lint tests (343f8e16)
  • Anticipate new version of triton-vm (0e86176b)
  • (QuotientSummands) Adapt signature to memory layout staticity (4f20db2f)
  • Upgrade to TVM 0.42.0-alpha.9 (45fe8506)
  • Update benchmarks after adding size-check to field-getter (784733ca)
  • (doc strings) Make rustc v1.83.0 linter happy (96063e60)
  • Rename 'ext'/'base' to 'aux'/'main' from upstream redefinition (d71f76a2)
  • Update benchmarks for TVM0.42-alpha10 -> 0.42 upgrade (d66afd02)
  • Remove temporary build directive (3667adde)
  • Run fmt with new formatter settings (275757e1)
  • Bump dependencies (4a35f187)
  • Expose error code for Merkle authentication error (a2b8f5f8)
  • Prepare Cargo.tomls for release (dd11f337)

♻️ Refactor

  • Start using proptest framework for FriVerify (e3f02115)
  • Produce proof through proptest framework (5f15120f)
  • Produce initial state through proptest framework (b26ef98b)
  • Improve variable names & comments (ec8a12fe)
  • De-duplicate stack & non-determinism set-up (2cfe23b6)
  • Expose triton-tui enabling debugging method (71f87e71)
  • Add module prelude (c7665e47)
  • Simplify uses through prelude of dependency twenty-first (f711ae27)
  • Read and verify own program digest, then keep it on stack (7a6345f2)
  • Dequeue items using statically known item length if available (b0799d6e)
  • DequeueNextAs always points to proof item's payload (d7ac0c3c)
  • (test) Shrink FRI soundness indicator test, make deterministic (f49d946b)
  • Only expose FriSnippets test instance in test builds (11df626b)
  • (!) Move as many Fri methods as possible behind #[cfg(test)] (320f888b)
  • (!) Don't return proof item iterator from FriVerify (5ad75dd8)
  • (!) Make all lists safe (b4888a12)
  • Change field name for list's inner type to element_type (b34df0e0)
  • Change snippet names for EvalArg's terminal calculation (b7c71571)
  • Factor out hint-generation for TVM debugger (2672afb9)
  • Create challenges in static memory (89028e46)
  • Change memory convention for Challenges (ef449b28)
  • Expose function to calculate AIR constraints on host machine (00d4f86c)
  • Pull host-machine AIR constraint evaluation out of test module (f0722ceb)
  • Expose some helper function for FRI verification (34846a39)
  • Rewrite hash_varlen snippet to implement new trait (1b89a9d7)
  • Expose function to run TVM prover (9a1c5fdb)
  • Make sane interface for 'generate_full_profile' (7a3f90ed)
  • Export some claim-related snippets (7e94216b)
  • "colinearity" -> "collinearity" (692c463b)
  • Refactor zip for better modularity (078c294a)
  • Put entrypoint code of FRI verifier first (d5c77d18)
  • Change bench params of SampleIndices to match FRI (e92036e8)
  • Cleanup FRI verifier code slightly (08f96f51)
  • (!) Move claim and fri verify type for better code reuse (1a3fa229)
  • (!) Move all FRI-related snippets into separate directories (26dab769)
  • STARK verifier stack management and add comments to TASM (29dd82f1)
  • Change interface of hash static size for make benefit glorious verifier (bcba99c9)
  • Change function interface to extract FRI proof (518cd205)
  • Move with_preallocated_memory to tests (a5f8140d)
  • Change verifier's interface to take both claim and proof_iter (dbfba540)
  • Change snippet prefix from tasm to tasmlib (31d46df8)
  • (!) Use Triton VM's profiler's Display for profiles (3f3bc0f9)
  • (!) Rename recufier to verifier (2fd53703)
  • Factor out num rounds calculation from FriVerify (a76c0316)
  • (!) (verify_from_secret_in) Crash VM iff MMR auth path in ND not valid (57c3ed74)
  • (!) Rename ExecutionState to InitVmState (b9f23818)
  • Expose row-verification snippets to tasm-lang (fa36198d)
  • Use dep injection to set XFE-MR's static mem pointer (6e9ddec2)
  • Use TVM macro in multiset_equality snippet (9976e1ef)
  • (!) Remove unused STARK-verify parameter (3b59b5e3)
  • Canonicalize use statements (36f39291)
  • Rewrite add_u128 to implement modern traits (1e3bc497)
  • Rewrite u64::lt to use modern code macro (45989c4f)
  • Minor fix in 'contains' snippet test (90449c7e)
  • (multiset_equality_digests) Use modern trait (8dfd4126)
  • Drop mention of leaf_index (11463b43)
  • Dynamically map proof to vm proof iter (1f55e675)
  • Make interface for StarkVerify dynamic (2f5f5c58)
  • Relativize to (static or dynamic) memory layout with field (f85d5ef8)
  • (AIR eval) Refactor quotient-summands to divide-out-zerofier (ac8f2226)
  • (verifier::air_constraint_evaluation) Improve implementation of memory-integrity check (d202d0ba)
  • (stark_verify) Remove shared code from AIR evaluation branches (d4276bed)
  • (TasmObject) Reduce max dyn-field size indicator by factor 4 (f5af5426)
  • Convert VerifyMmrSuccessor to new MemPreserver trait (498857b9)
  • (!) Rename master_aux_table to master_table (1ae65291)
  • Add public constructor of ND-data size-indicator ingrity check snippet (e52e9fb5)
  • (!) (test) Move test structs into test mod (434d393f)
  • (!) Make ChainMap's internals private (c59a0c7e)
  • (verifier) Remove authentication paths from TVM memory (9a586410)
  • (fri) Assert that there are no auth paths in memory (b10a886e)
  • Add more metadata to vm_proof_iter struct (3260cd63)
  • Add call to VmProofIter's drop in verifier (04e9d723)
  • (!) Generalize random element generation (28ee0519)
  • (test) Test concrete assertion failures (f0265623)
  • Only write debuggable VM state to disk (33b202f5)
  • (!) (inner_product) Drop randomizer_length (327c7581)
  • Introduce error IDs to Stark Verify (9eef6a29)

✅ Testing

  • Dequeue multiple elements from the same memory instance (f06cea2c)
  • Add tests comparing terminal calculation snippets (01f1c53c)
  • Verify that static/dynamic versions of repeated squeezing agree (2bf8129c)
  • That FriVerify consumes all extracted nondeterministic digests (3e198b0a)
  • Add benchmarks of inner prod, relevant for TVM (ff289a77)
  • Add more tests of map with different input/output types (07ddbc6f)
  • Reduce number of test cases for FRI property-test (9617a23f)
  • Add basic test of and rename VerifyTableRow (9e5435e3)
  • Make stark parameters configurable in test of verifier (4fcea082)
  • Add negative tests for verifying table rows (3a53146b)
  • Test STARK verifier with different FRI expansion factors (dc7d8a2c)
  • Add test-helper for negative tests (b86efaab)
  • Deflake merkle_verify_negative_test (5080fc58)
  • Add test revealing soundness error in multiset_equality_digests (55c189e5)
  • Add negative tests for MmrSuccessorProof (7dbef5c4)
  • Add test for verifying two STARK proofs (5771ae09)
  • (memory) Add tests of memory region for ND memory (a039ddc6)
  • Add negative test for bounds check on field getter (58d98f47)
  • (tasm_object) Verify that all macros crash VM on bad lengths (68a4a131)
  • (tasm_object) Verify failure on manipulated size indicators in struct with named fields (fdb2cfdd)
  • (tasm_object) Add more negative tests of compute_size_and_assert_valid_size_indicator (9cca5883)
  • Add Accessor trait (eab75d6b)
  • Fix off-by-one-error in swap_unchecked's test case gen (30f02cd9)
  • (tasm_object) Add neptune-like witness structs for test of size-verification (1b082efc)
  • (tasm_object) Test more neptune-core-like structs for size-verification (2f4d7a24)
  • (RawCode) Inline only labels and instructions (e07b698c)
  • Don't print to std-out in trait test runners (110926f3)
  • (vm_proof_iter::new) More proof items in PBT test (383005b3)

🎨 Styling

  • Remove duplicate code (06db7ed1)
  • Make linter happy (ea945dc1)
  • Use TVM's function for rust-shadowed barycentric evaluation (be3d90d8)
  • (mmr::verify_from_memory) Use TVM macro for snippet (c8a5e195)
  • Modernize swap_digests code expression (ce8c3d67)
  • Use vector version of triton_asm! more (2144a6c3)
  • Clean up debug aid (746e958f)
  • Rename quotient-summands to divide-out-zerofiers (7f6d1bc5)
  • Drop println! statements in FRI's inner_verify (3a04448e)
  • Simplify numeric bindings in match arms (0b8d6d8d)
  • Remove superfluous block (02f5cfca)
  • Align “BEFORE” and “AFTER” comments (2ecd7e17)

🛠 Build

  • Prefix macro use statements with crate:: (24d4df23)

⏱ Bench

  • Make Merkle Root bench size relevant to FRI (4e32162a)
  • Add benchmark for MmrSuccessorProof (b231a38e)
  • (MmrSuccessorProof) Make sizes and leaf numbers deterministic (59344ba8)
  • Reduce size of STARK benchmark for recursion (17f17b15)
  • (Map) Benchmark Map with dyn length items (f848fd26)

Note: (!) indicates a breaking change.