-
Notifications
You must be signed in to change notification settings - Fork 139
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Port internal fixes #3740
Port internal fixes #3740
Conversation
Merge `release/v1.0.3` to `v1.0`
Currently, Cadence interpreter.SomeValue is opaque to packages like Atree, so interpreter.SomeValue is treated as atomic value. This causes container wrapped by interpreter.SomeValue to be treated as atomic value since it becomes opaque. Given this, the integration between Cadence and Atree does not establish parent-child relationship of a wrapped container since the inner values of interpreter.SomeValue are not visible to Atree. Resolving this issue requires unwrapping containers wrapped by interpreter.SomeValue. This commit implements these new interfaces provided by atree to unwrap inner Value and inner Storable in Cadence: - atree.WrapperValue - atree.WrapperStorable When Cadence passes objects that implement these interfaces, Atree will call the interface functions (that implement unwrapping) when setting child-parent callbacks.
This commit adds an integration test that uses a hardcoded seed which produced a test failure.
This commit implements a new interface function available in atree.WrapperStorable: - WrapAtreeStorable(Storable) Storable
…atch the new behavior
Co-authored-by: Bastian Müller <[email protected]>
…128, Int256, UInt256, Word128, and Word256.
Unlike on v1.0, I had to disable the atree health storage validation during the test setup, when writing the test value to the storage map, see 9fb44fd. I think that makes sense: With the account storage map refactor on master, the storage map itself is not immediately referenced from the root of the account (but maybe should? 🤔). @fxamacker Could you please have a look and see if that looks right? |
Cadence Benchstat comparisonThis branch with compared with the base branch onflow:master commit 764dae5 Collapsed results for better readability
|
@turbolent It looks good to me. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@turbolent LGTM! I focused on changes related to cadence-internal issue 286.
Description
Port the internal fixes originally for v1.0 to master.
Given that master has a significantly different structure compared to the v1.0 branch, I merged v1.0 into master, and used patchutils' filterdiff to extract individual commits' changes to e.g.
value.go
and applying them to the respective value type'svalue_xxx.go
file.master
branchFiles changed
in the Github PR explorer