Releases: TritonVM/tasm-lib
Releases · TritonVM/tasm-lib
v0.45.0
0.45.0
✨ Features
- LessThan for U128 (0492f3b6)
- (i128) Add
lt
fori128
(820f26b3) - Introduce snippet sign-off functionality (6bc26129)
- (u128) Add overflowing add (d9afd642)
- (i128) Shift-right for
i128
s (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
overpush 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
isBFieldCodec
subtrait (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
'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
- 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
TasmObject
forOption<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 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
Drop
snippet for post-verification-check on VmProofIter (6267a86c) - Add bounds-checks on V...