Releases: TritonVM/tasm-lib
Releases · TritonVM/tasm-lib
v1.0.0
v0.50.0
v0.49.0
v0.48.0
v0.47.0
0.47.0
♻️ Refactor
- (!) Remove trait
DeprecatedSnippet(eb53c844)
🖋 Snippet Sign-Off
- U128::overflowing_add (5a006ad7)
- (!) U32::is_odd (a9f3f885)
- (!) U32::is_u32 (647c2795)
- (!) U32::or (b303c7f4)
- (!) U32::safe_add (73f92c33)
- (!) U32::safe_mul (b69af017)
- (!) U32::safe_sub (1db90474)
- (!) U32::shift_left and u32::shift_right (99e38029)
- (!) U64::or (0914583d)
- (!) U64::MulTwoU64sToU128 (84e2fd1f)
- (!) U128::SafeMul (fc5ac068)
- (!) U128::Sub (dfec7488)
- (!) U128::ShiftRight (5ccbad33)
- (!) U128::ShiftLeft (4e36025c)
- (!) U128::ShiftRightStatic (23361590)
- (!) List::SetLength (f42a2449)
- (!) List::Range (f7d708c4)
- Mmr::verify_from_memory (655ca1f2)
VerifyMmrSuccessorProof(2af7c95d)
v0.46.0
0.46.0
✨ Features
- Derive more for various
BasicSnippets (3a66965b) - Add snippet exports (e6a44361)
- (TasmObject) Decode more types from iterators (44976534)
🐛 Bug Fixes
- (TasmObject) Check all size indicators (a1813e24)
- (Fri) Don't access array as if it was a list (369fca5a)
- Run VM on
InnerFunction::BasicSnippet(fdf70e23)
⚡️ Performance
- (TasmObject) Accumulate static jumps in TASM (ae839408)
- (!) Improve
CalculateNewPeaksFromAppend(69ad217c) - (MerkleRoot) Simplify power-of-2 check (5c3388a8)
📚 Documentation
- Fix start of code block in docstring (42426e39)
- Document absence of “capacity” from lists (bb4245c9)
- Fix intra-doc link (cc01e5f3)
- Fix internal intra-doc links (687cc309)
⚙️ Miscellaneous
- Remove deprecated items (ea54a09c)
- (!) (TasmObject) Overhaul generated code (beb3f2cd)
- (!)
MerkleVerify(ab7d221c)
♻️ Refactor
- (!) Fail gracefully when looking up exports (5b7f9fac)
- (!) Consistify u32-Snippets exports (1968b578)
- (!) Remove field from some “list” snippets (ca6da237)
- (!) Check bounds in “list” helper functions (1bc79a03)
- (!) Check bounds in
list::get::Get(7f5729ca) - (!) Remove “contiguous list” (55fc928d)
- (!) Check bounds in
list::set::Set(138fecb7) - Check bounds in
list::pop::Pop(83bc62c4) - (!) Check bounds in
list::push::Push(8d292754) - (!) Make field of
Containsprivate (a399b067) - (!) Remove snippet
BfeAdd(1cbf9e2f) - (!) Remove
DeprecatedSnippetforDivMod(cb18098b) - (!) Remove impl for
DeprecatedSnippet(eafc76a6) - (!) Make helper type
MemoryIterprivate (8887e566) - (!) Remove unused snippets (d3d0eeea)
- (!) Remove trivial snippets (b5d874ab)
- (!) Remove unused helper functions (16a1c1c9)
- (!) Remove trivial snippet
u64::Eq(e0ef6ca6) - (!) Drop “generic” if no counterpart exists (10263084)
✅ Testing
- Check failure conditions of
list::get::Get(293805a3) - (TasmObject) Test decoding from iterator (00a5507b)
🖋 Snippet Sign-Off
- (!) U64::xor (8d272de8)
- (!) U64::safe_mul (eb8502ad)
- (!) U64::wrapping_mul (9a2f8ac8)
- U128::lt (c35e8896)
- Xfe::to_the_power_of_power_of_2 (8efe4f38)
- Horner evaluation (67441b63)
- Inner product of
XFieldElements (cdfbb7ef) - Inner product of three rows with weights (2975d7b8)
- (hashing) Absorb multiple (bd57aa2a)
- (!) (hashing) Hash varlen (bba98bfb)
- MutatorSet::commit (50ea214b)
- (!) List::length (e54ce189)
- (!) List::pop (4e17043c)
- (!) List::split_off (6975e5c8)
- MerkleRoot (bdf48c6f)
- (!)
u64::Incr(6dbdb067) MerkleRootFromXfes(6774c9f2)
Note: (!) indicates a breaking change.
v0.45.0
0.45.0
✨ Features
- LessThan for U128 (0492f3b6)
- (i128) Add
ltfori128(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 xoverpush 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) - (!)
TasmObjectisBFieldCodecsubtrait (bb67184b) - Deprecate public type aliases (a880abbd)
- (!) Drop
Rc<RefCell<_>>fromRustShadow(f82b2952) - (!) (
Closure) De-duplicate boilerplate (19361715)
♻️ Refactor
- (!) (arithmetic) Drop type suffixes (af934daa)
- (!) Simplify testing framework (b7334898)
- Remove superfluous
'staticbounds (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
- Primitive root of unity (ee5fcc4b)
- U32::next_power_of_two (f22eef97)
- Xfe to the fourth (3bd722ac)
- U64::add and u64::overflowing_add (8263f873)
- U64::log_2_floor (fd4c0353)
- (!) U64::lt and u64::lt_preserve_args (6a254f02)
- (!) U64::popcount (d46d1540)
- (!) U64::shift_right (4bb397b9)
- (!) U64::{ε, wrapping_, overflowing_}sub (cc878fa9)
- (!)
mmr::bag_peaks(21877936) - (!) U64::and (2b9c031e)
- (!) U64::pow2 (904e5b65)
- (!) U64::decr (bb022cbe)
- (!) Leaf index to Merkle tree index (565ea09d)
merkle_step_u64_index(d66ac023)- (!) U64::div2 (0ea12d29)
- (!) U64::shift_left (a8be2020)
v0.43.0
0.43.0
✨ 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
TasmObjectforOption<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
Challengesstruct (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_offsnippet (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_varlenfor 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_STOREis 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
containssnippet 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 methodget_encoding_length(a7caa8c3) -
(
TasmObject) Add hints to fields obtained viafield!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
Dropsnippet for post-verification-check on VmProofIter (6267a86c) - Add bounds-checks on V...