Changes made to assigner itself are pretty significant and made in a separate commit. Other commits are organized by files they changed, so they can be reviewed one by one.
Apart from changes related to new memory model, some other tiny changes were made:
Added return_value field to assigner, where the return value of circuit function should be stored at the end of evaluation. I made it with std::vector<BlueprintFieldType::integral_value>, so non-native fields may be unmarshalled into it and stored as a single value.
Tests will be run in sync with other PRs containing [SyncWith NilFoundation/zkLLVM#438] in title. You can find related PRs as linked with mentioned issue.
This PR implements new memory model described in RFC: Assigner memory model v2.
Changes made to assigner itself are pretty significant and made in a separate commit. Other commits are organized by files they changed, so they can be reviewed one by one.
Apart from changes related to new memory model, some other tiny changes were made:
return_value
field to assigner, where the return value of circuit function should be stored at the end of evaluation. I made it withstd::vector<BlueprintFieldType::integral_value>
, so non-native fields may be unmarshalled into it and stored as a single value.