make all ops but keccak and things that use Wrapping const fns 💥 #184
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
With the new rust 1.83 changes, we are able to make most zisk ops const fns. The only remaining blockers are on keccak and any ops that make use of
Wrapping
. The keccak limitation stems from a key limitation right now which is thatVec::as_slice()
as a const fn has not been stabilized yet. Once this is stabilized, we can upgradeMem
such thatread
is a const fn, and then we will be able to make the keccak op itself a const fn.The
Wrapping
stuff might be up-gradable now, but we would have to do away with usingWrapping
, and I don't know much about this one.If all of these blockers are removed, the
execute
/call
/ etc methods onZiskOp
can all become const fns, which would be a HUGE boon for performance in situations where operands are known at compile-time.