Boxes#12
Merged
Merged
Conversation
Contributor
|
Curious to know when this is planning to be merged :-) @fergalwalsh |
Collaborator
Author
Was just waiting for me to get some time for docs & tests. I have added these now so I think it is good to merge. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR adds high level support for Boxes with a new
box<struct>type and some functions for creating/opening boxes.Where
Itemis a previously definedstruct:Example:
See the included example for more details.
Box field assignments use
box_replacewhile box field access usesbox_extractto ensure support for large boxes - the total box size can be up to the 32K bytes limit but individual fields can be up to 4096 to allow them to fit on the stack. Future enhancements to Tealish may add support for arrays and nested structs. It would then be possible to have larger fields if only portions were assigned/accessed.Note: This PR also includes an update to the langspec.json to sync with go-algorand/master including avm8 opcodes.