Warning
This post was published 400 days ago. The infomation described in this article may have changed.
Triton VM v0.35.0 is now live. The main highlights are:
Up until now, the only way to initialize the Sponge for hashing input of variable length was to use instruction absorb_init
. As the name suggests, this instruction not only initializes the Spongeโs state, it also absorbs the stackโs top ten elements. As of this version, this behavior is completely de-coupled: new instruction sponge_init
initializes the Sponge state, (existing but renamed) instruction sponge_absorb
does the absorbing.
This has immediate runtime effects for the programs that are necessary for Neptune, speeding up variable length hashing by around 16%.
As the logic of the programs written for Triton VM grows more complex, debugging options become more important. As of this version, the parser understands the break
command. Normal program execution is not affected. While this debugging information is not used yet, the added support makes building a full fledged debugger a lot easier.
Note: (!) indicates a breaking change.
assert_vector
(ee83ab6d)Program
(d11aa541)absorb_init
with sponge_init
(aca87471)break
(df6dc4b5)Copy
-trait of StarkParameters
(70f3d957)swap
to 0 (bcf61ee6)sponge_init
(cde031f0)Program
and its new methods (5ff137dc)div
to div_mod
(c3ad923a)as
castings (540cf66f)impl Display for InstructionToken
(1550f8de)padded_height()
into AET
(f88d94f3)address_to_label
in Program
(d857e838)Program
decoding (e3741d68)VMProfiler
(97ecef8d)assert_vector
(9bcdac2d)ensure_eq
(86b97993)sponge_init
(f5f64963)VMProfiler
(a109b890)