Skip to content
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

Improve and fix static types and their ID and string functions #2756

Merged
merged 24 commits into from
Sep 1, 2023

Conversation

turbolent
Copy link
Member

@turbolent turbolent commented Aug 31, 2023

Depends on #2648

Description

So far, both sema.Type and cadence.Type had ID functions, which returned the type ID. With #2750, also interpreter.StaticType got an ID function.

Most of these functions re-implemented the ID generation, which is hard to maintain and error prone (inconsistencies). In some cases the ID generation was mixed with the string (human-readable) representation, and the string formatting was re-implemented as both metered and unmetered variants.

Reduce the potential for inconsistencies by implementing the ID generation in a central place, as sema.Format*TypeID functions, and use them in the ID functions of all three Go types representing types.

#2754 had previously already started to sort entitlement sets.
We also need to sort type IDs in intersection type IDs.

Avoid code duplication in string formatting functions, by delegating unmetered functions (String) to metered ones (MeteredString). Also fix memory metering along the way (in some cases memory was allocated before it was metered).

Ensure that the type ID generation for entitlement sets in entitlement set authorizations and for intersection types sorts the type IDs. Keep the user-defined order in string formatting functions (e.g. String and QualifiedString). Avoid allocating multiple ordered maps when generating the sorted type IDs.

Add tests for the ID and string functions of authorizations, reference types, and intersection types, on all three levels (sema, interpreter, and cadence).

Also:

  • Refactor interpreter.StaticTypes to be pointer types, as they might get nested and could potentially lead to lots of data being copied. This wasn't really necessary, but noticed a bit late, but maybe still a good improvement.
  • Remove any type ID caching, as it might result in lots of memory being allocated
  • Improve the tests for entitlements, e.g. use assert where it makes sense, fix argument order (expected, actual), avoid repeated casts, etc.

  • Targeted PR against master branch
  • Linked to Github issue with discussion and accepted design OR link to spec that describes this work
  • Code follows the standards mentioned here
  • Updated relevant documentation
  • Re-reviewed Files changed in the Github PR explorer
  • Added appropriate labels

Base automatically changed from bastian/account-type to feature/stable-cadence September 1, 2023 17:28
@codecov
Copy link

codecov bot commented Sep 1, 2023

Codecov Report

Patch coverage: 87.71% and project coverage change: +0.02% 🎉

Comparison is base (978dc9d) 79.60% compared to head (9c733bb) 79.63%.
Report is 6 commits behind head on feature/stable-cadence.

Additional details and impacted files
@@                    Coverage Diff                     @@
##           feature/stable-cadence    #2756      +/-   ##
==========================================================
+ Coverage                   79.60%   79.63%   +0.02%     
==========================================================
  Files                         337      337              
  Lines                       80575    80462     -113     
==========================================================
- Hits                        64145    64077      -68     
+ Misses                      14125    14086      -39     
+ Partials                     2305     2299       -6     
Flag Coverage Δ
unittests 79.63% <87.71%> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Changed Coverage Δ
runtime/common/metering.go 92.32% <ø> (ø)
runtime/common/orderedmap/orderedmap.go 82.55% <ø> (-1.98%) ⬇️
runtime/stdlib/account.go 89.38% <ø> (ø)
runtime/stdlib/block.go 88.17% <ø> (ø)
encoding/ccf/decode_typedef.go 74.04% <18.18%> (ø)
runtime/interpreter/decode.go 46.66% <22.72%> (+0.09%) ⬆️
runtime/convertTypes.go 88.47% <75.00%> (ø)
runtime/interpreter/encode.go 65.43% <85.71%> (ø)
runtime/sema/access.go 92.09% <87.09%> (-0.71%) ⬇️
runtime/interpreter/statictype.go 84.62% <88.88%> (+7.29%) ⬆️
... and 12 more

... and 2 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@github-actions
Copy link

github-actions bot commented Sep 1, 2023

Cadence Benchstat comparison

This branch with compared with the base branch onflow:feature/stable-cadence commit 978dc9d
The command for i in {1..N}; do go test ./... -run=XXX -bench=. -benchmem -shuffle=on; done was used.
Bench tests were run a total of 7 times on each branch.

Collapsed results for better readability

old.txtnew.txt
time/opdelta
DecodeBatchEventsCCF-2200ms ± 0%216ms ± 0%~(p=1.000 n=1+1)
DecodeBatchEventsJSON-2614ms ± 0%629ms ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.FeesDeducted-24.47µs ± 0%4.73µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.TokensWithdrawn-23.30µs ± 0%3.65µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-24.45µs ± 0%4.88µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-25.15µs ± 0%5.23µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.NewWeeklyPayout-23.50µs ± 0%3.68µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.RewardsPaid-24.16µs ± 0%4.42µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensDeposited-24.07µs ± 0%4.43µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensDeposited_with_nil_receiver-23.93µs ± 0%4.31µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensMinted-23.40µs ± 0%3.51µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensWithdrawn-24.21µs ± 0%4.34µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowFees.FeesDeducted-215.3µs ± 0%15.1µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowFees.TokensWithdrawn-28.59µs ± 0%8.46µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-213.4µs ± 0%13.6µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-218.8µs ± 0%19.1µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.NewWeeklyPayout-28.54µs ± 0%8.68µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.RewardsPaid-211.5µs ± 0%11.1µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensDeposited-212.1µs ± 0%11.9µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensDeposited_with_nil_receiver-210.8µs ± 0%10.7µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensMinted-28.56µs ± 0%8.68µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensWithdrawn-212.1µs ± 0%12.6µs ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsCCF-2118ms ± 0%154ms ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsJSON-2159ms ± 0%158ms ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.FeesDeducted-22.89µs ± 0%4.85µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.TokensWithdrawn-21.91µs ± 0%3.67µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-22.47µs ± 0%4.65µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-23.36µs ± 0%5.97µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.NewWeeklyPayout-21.85µs ± 0%3.77µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.RewardsPaid-22.10µs ± 0%4.14µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensDeposited-22.36µs ± 0%3.02µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensDeposited_with_nil_receiver-22.21µs ± 0%3.90µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensMinted-21.94µs ± 0%2.50µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensWithdrawn-22.32µs ± 0%2.89µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowFees.FeesDeducted-24.77µs ± 0%3.84µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowFees.TokensWithdrawn-22.63µs ± 0%2.16µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-24.30µs ± 0%3.45µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-26.12µs ± 0%4.85µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.NewWeeklyPayout-22.49µs ± 0%2.20µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.RewardsPaid-22.74µs ± 0%2.79µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensDeposited-23.08µs ± 0%3.27µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensDeposited_with_nil_receiver-22.67µs ± 0%2.57µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensMinted-22.02µs ± 0%2.16µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensWithdrawn-23.14µs ± 0%3.33µs ± 0%~(p=1.000 n=1+1)
ExportType/composite_type-2580ns ± 0%511ns ± 0%~(p=1.000 n=1+1)
ExportType/simple_type-2118ns ± 0%120ns ± 0%~(p=1.000 n=1+1)
InterpretRecursionFib-22.80ms ± 0%2.90ms ± 0%~(p=1.000 n=1+1)
NewInterpreter/new_interpreter-21.53µs ± 0%1.57µs ± 0%~(p=1.000 n=1+1)
NewInterpreter/new_sub-interpreter-2863ns ± 0%812ns ± 0%~(p=1.000 n=1+1)
ParseArray-29.90ms ± 0%9.86ms ± 0%~(p=1.000 n=1+1)
ParseDeploy/byte_array-214.9ms ± 0%15.4ms ± 0%~(p=1.000 n=1+1)
ParseDeploy/decode_hex-21.64ms ± 0%1.56ms ± 0%~(p=1.000 n=1+1)
ParseFungibleToken/With_memory_metering-2243µs ± 0%245µs ± 0%~(p=1.000 n=1+1)
ParseFungibleToken/Without_memory_metering-2196µs ± 0%189µs ± 0%~(p=1.000 n=1+1)
ParseInfix-28.27µs ± 0%8.49µs ± 0%~(p=1.000 n=1+1)
QualifiedIdentifierCreation/One_level-22.92ns ± 0%2.81ns ± 0%~(p=1.000 n=1+1)
QualifiedIdentifierCreation/Three_levels-2155ns ± 0%166ns ± 0%~(p=1.000 n=1+1)
RuntimeScriptNoop-25.92µs ± 0%5.72µs ± 0%~(p=1.000 n=1+1)
SuperTypeInference/arrays-2430ns ± 0%447ns ± 0%~(p=1.000 n=1+1)
SuperTypeInference/composites-2176ns ± 0%176ns ± 0%~(p=1.000 n=1+1)
SuperTypeInference/integers-2197ns ± 0%191ns ± 0%~(p=1.000 n=1+1)
ValueIsSubtypeOfSemaType-2118ns ± 0%118ns ± 0%~(all equal)
 
alloc/opdelta
DecodeBatchEventsCCF-267.3MB ± 0%66.1MB ± 0%~(p=1.000 n=1+1)
DecodeBatchEventsJSON-2246MB ± 0%244MB ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.FeesDeducted-21.41kB ± 0%1.39kB ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.TokensWithdrawn-21.22kB ± 0%1.20kB ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-21.49kB ± 0%1.47kB ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-21.50kB ± 0%1.48kB ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.NewWeeklyPayout-21.26kB ± 0%1.25kB ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.RewardsPaid-21.38kB ± 0%1.37kB ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensDeposited-21.34kB ± 0%1.31kB ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensDeposited_with_nil_receiver-21.33kB ± 0%1.30kB ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensMinted-21.22kB ± 0%1.20kB ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensWithdrawn-21.35kB ± 0%1.32kB ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowFees.FeesDeducted-26.02kB ± 0%6.00kB ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowFees.TokensWithdrawn-23.62kB ± 0%3.60kB ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-25.45kB ± 0%5.43kB ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-27.37kB ± 0%7.35kB ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.NewWeeklyPayout-23.66kB ± 0%3.64kB ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.RewardsPaid-24.55kB ± 0%4.54kB ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensDeposited-24.91kB ± 0%4.88kB ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensDeposited_with_nil_receiver-24.49kB ± 0%4.46kB ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensMinted-23.62kB ± 0%3.60kB ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensWithdrawn-24.91kB ± 0%4.88kB ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsCCF-237.1MB ± 0%62.4MB ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsJSON-234.0MB ± 0%39.1MB ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.FeesDeducted-2736B ± 0%1216B ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.TokensWithdrawn-2688B ± 0%1168B ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-2800B ± 0%1440B ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-2768B ± 0%1408B ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.NewWeeklyPayout-2704B ± 0%1344B ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.RewardsPaid-2784B ± 0%1424B ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensDeposited-2752B ± 0%1216B ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensDeposited_with_nil_receiver-2736B ± 0%1200B ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensMinted-2688B ± 0%1168B ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensWithdrawn-2752B ± 0%1216B ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowFees.FeesDeducted-2768B ± 0%864B ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowFees.TokensWithdrawn-2408B ± 0%504B ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-2760B ± 0%888B ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-2952B ± 0%1080B ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.NewWeeklyPayout-2424B ± 0%552B ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.RewardsPaid-2624B ± 0%752B ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensDeposited-2680B ± 0%776B ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensDeposited_with_nil_receiver-2544B ± 0%640B ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensMinted-2416B ± 0%512B ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensWithdrawn-2672B ± 0%768B ± 0%~(p=1.000 n=1+1)
ExportType/composite_type-2136B ± 0%120B ± 0%~(p=1.000 n=1+1)
ExportType/simple_type-20.00B 0.00B ~(all equal)
InterpretRecursionFib-21.00MB ± 0%1.00MB ± 0%~(p=1.000 n=1+1)
NewInterpreter/new_interpreter-2928B ± 0%928B ± 0%~(all equal)
NewInterpreter/new_sub-interpreter-2200B ± 0%200B ± 0%~(all equal)
ParseArray-22.74MB ± 0%2.74MB ± 0%~(p=1.000 n=1+1)
ParseDeploy/byte_array-24.09MB ± 0%4.32MB ± 0%~(p=1.000 n=1+1)
ParseDeploy/decode_hex-2214kB ± 0%214kB ± 0%~(p=1.000 n=1+1)
ParseFungibleToken/With_memory_metering-229.7kB ± 0%29.7kB ± 0%~(all equal)
ParseFungibleToken/Without_memory_metering-229.7kB ± 0%29.7kB ± 0%~(p=1.000 n=1+1)
ParseInfix-21.92kB ± 0%1.91kB ± 0%~(p=1.000 n=1+1)
QualifiedIdentifierCreation/One_level-20.00B 0.00B ~(all equal)
QualifiedIdentifierCreation/Three_levels-264.0B ± 0%64.0B ± 0%~(all equal)
RuntimeScriptNoop-23.21kB ± 0%3.21kB ± 0%~(all equal)
SuperTypeInference/arrays-296.0B ± 0%96.0B ± 0%~(all equal)
SuperTypeInference/composites-20.00B 0.00B ~(all equal)
SuperTypeInference/integers-20.00B 0.00B ~(all equal)
ValueIsSubtypeOfSemaType-248.0B ± 0%48.0B ± 0%~(all equal)
 
allocs/opdelta
DecodeBatchEventsCCF-21.48M ± 0%1.48M ± 0%~(p=1.000 n=1+1)
DecodeBatchEventsJSON-24.70M ± 0%4.70M ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.FeesDeducted-230.0 ± 0%30.0 ± 0%~(all equal)
DecodeCCF/FlowFees.TokensWithdrawn-226.0 ± 0%26.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-230.0 ± 0%30.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-232.0 ± 0%32.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.NewWeeklyPayout-226.0 ± 0%26.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.RewardsPaid-229.0 ± 0%29.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensDeposited-231.0 ± 0%31.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensDeposited_with_nil_receiver-229.0 ± 0%29.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensMinted-226.0 ± 0%26.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensWithdrawn-231.0 ± 0%31.0 ± 0%~(all equal)
DecodeJSON/FlowFees.FeesDeducted-2126 ± 0%126 ± 0%~(all equal)
DecodeJSON/FlowFees.TokensWithdrawn-271.0 ± 0%71.0 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-2102 ± 0%102 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-2159 ± 0%159 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.NewWeeklyPayout-270.0 ± 0%70.0 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.RewardsPaid-287.0 ± 0%87.0 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensDeposited-295.0 ± 0%95.0 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensDeposited_with_nil_receiver-286.0 ± 0%86.0 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensMinted-271.0 ± 0%71.0 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensWithdrawn-295.0 ± 0%95.0 ± 0%~(all equal)
EncodeBatchEventsCCF-2467k ± 0%950k ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsJSON-2757k ± 0%853k ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.FeesDeducted-29.00 ± 0%19.00 ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.TokensWithdrawn-29.00 ± 0%19.00 ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-29.00 ± 0%19.00 ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-29.00 ± 0%19.00 ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.NewWeeklyPayout-29.00 ± 0%19.00 ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.RewardsPaid-29.00 ± 0%19.00 ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensDeposited-210.0 ± 0%20.0 ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensDeposited_with_nil_receiver-210.0 ± 0%20.0 ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensMinted-29.00 ± 0%19.00 ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensWithdrawn-210.0 ± 0%20.0 ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowFees.FeesDeducted-217.0 ± 0%19.0 ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowFees.TokensWithdrawn-210.0 ± 0%12.0 ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-214.0 ± 0%16.0 ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-223.0 ± 0%25.0 ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.NewWeeklyPayout-210.0 ± 0%12.0 ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.RewardsPaid-213.0 ± 0%15.0 ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensDeposited-217.0 ± 0%19.0 ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensDeposited_with_nil_receiver-212.0 ± 0%14.0 ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensMinted-211.0 ± 0%13.0 ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensWithdrawn-216.0 ± 0%18.0 ± 0%~(p=1.000 n=1+1)
ExportType/composite_type-23.00 ± 0%3.00 ± 0%~(all equal)
ExportType/simple_type-20.00 0.00 ~(all equal)
InterpretRecursionFib-218.9k ± 0%18.9k ± 0%~(all equal)
NewInterpreter/new_interpreter-215.0 ± 0%15.0 ± 0%~(all equal)
NewInterpreter/new_sub-interpreter-24.00 ± 0%4.00 ± 0%~(all equal)
ParseArray-259.6k ± 0%59.6k ± 0%~(p=1.000 n=1+1)
ParseDeploy/byte_array-289.4k ± 0%89.4k ± 0%~(p=1.000 n=1+1)
ParseDeploy/decode_hex-263.0 ± 0%63.0 ± 0%~(all equal)
ParseFungibleToken/With_memory_metering-2778 ± 0%778 ± 0%~(all equal)
ParseFungibleToken/Without_memory_metering-2778 ± 0%778 ± 0%~(all equal)
ParseInfix-248.0 ± 0%48.0 ± 0%~(all equal)
QualifiedIdentifierCreation/One_level-20.00 0.00 ~(all equal)
QualifiedIdentifierCreation/Three_levels-22.00 ± 0%2.00 ± 0%~(all equal)
RuntimeScriptNoop-251.0 ± 0%51.0 ± 0%~(all equal)
SuperTypeInference/arrays-23.00 ± 0%3.00 ± 0%~(all equal)
SuperTypeInference/composites-20.00 0.00 ~(all equal)
SuperTypeInference/integers-20.00 0.00 ~(all equal)
ValueIsSubtypeOfSemaType-21.00 ± 0%1.00 ± 0%~(all equal)
 

runtime/sema/access.go Show resolved Hide resolved
runtime/sema/type.go Show resolved Hide resolved
types.go Outdated Show resolved Hide resolved
@turbolent turbolent merged commit 147803a into feature/stable-cadence Sep 1, 2023
8 of 11 checks passed
@turbolent turbolent deleted the bastian/improve-static-types branch September 1, 2023 20:11
@turbolent turbolent added the Storage Breaking Change Breaks existing stored data (needs a storage migration) label Sep 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Improvement Storage Breaking Change Breaks existing stored data (needs a storage migration) Technical Debt Testing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants