Skip to content

Conversation

@gibson042
Copy link
Member

Fixes #3046
Fixes #3051
Fixes #3052

Description

  • Update functions for computing covering bounds to account for the "~" prefix of format "compactOrdered".
  • Improve getRankCover implementations and output, particularly for non-Key CopyArrays that have an all-Keys prefix.
  • Add property-based testing for getRankCover.
  • Fix bugs uncovered by that testing.

Security Considerations

None known; the bugs do not seem to be exploitable in the hardened environment relied upon by @endo/patterns.

Scaling Considerations

n/a

Documentation Considerations

Functions that assume the absence of an encoding prefix have been marked as deprecated in both JSDoc comments and in NEWS.md.

Testing Considerations

New and improved.

Compatibility Considerations

The included fix for #3052 results in the range corresponding with an unknown kind matcher covering all (and only) tagged values, effectively precluding the addition of any new pass style in the future. That could instead be changed to e.g. cover all values (à la M.any()), or to maintain the existing behavior of throwing an exception.

Upgrade Considerations

These improvements should be harmless to include, and AFAICT will have only minor effects on agoric-sdk because that system does not even use compactOrdered, let alone support composite collection keys in durable storage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants