What's Changed
💥 Language Breaking Changes
- Change member access semantics by @SupunS in #2573
- Add builtin entitlements to array/dictionary functions by @SupunS in #2598
- Allow external mutation for owned values by @SupunS in #2599
- Make indexing assignment entitled by @SupunS in #2664
- Allow default functions to co-exist with conditions in interface conformance by @SupunS in #2697
- Remove linking based capability API and associated code by @turbolent in #2595
- Add external mutability improvements by @SupunS in #2718
- Remove type requirements by @dsainati1 in #2670
- sort entitlement sets alphabetically when generating strings by @dsainati1 in #2754
- Account type by @turbolent in #2648
- Improve and fix static types and their ID and string functions by @turbolent in #2756
- Add view annotations to newly added array functions by @dsainati1 in #2771
💥 Go API Breaking Chance
- Update randomness runtime interface method by @tarakby in #2706
- Add the
NewEmulatorBackend
method onTestFramework
interface by @m-Peter in #2744
⭐ Features
- Introduce built-in mutability entitlements by @SupunS in #2586
- Allow entitlement mappings to be used in container-typed composite-fields by @SupunS in #2587
- Add identity entitlement mapping by @SupunS in #2588
- Return a reference with all entitlements, when access through owned values by @SupunS in #2637
- Introduce
filter
in Fixed/Variable sized Array types by @darkdrag00nv2 in #2678 - Allow declaration of events in interfaces by @dsainati1 in #2662
- Add a utility method to the
Test.Blockchain
struct for moving the blockchain time by @m-Peter in #2729 - Add capability field to capabilitity controllers by @turbolent in #2724
- Introduce
map
in Fixed/Variable sized Array types by @darkdrag00nv2 in #2737 - Composition of entitlement mappings by @dsainati1 in #2743
- Allow use of type code generator in any package, refactor RLP and BLS contracts by @turbolent in #2753
- Add functions on testing framework's blockchain to create/load snapshots by @m-Peter in #2763
🛠 Improvements
- Temporarily remove deprecations for existing capability API by @m-Peter in #2673
- Cleanup by @turbolent in #2692
- Improve view annotations for account type functions by @turbolent in #2699
- Cadence testing framework improvements by @m-Peter in #2696
- Clean up capability value by @turbolent in #2727
- Add purity/view annotations by @turbolent in #2728
- Entitlements error improvements by @dsainati1 in #2730
- Allow
moveTime
function to accept negative time deltas for going backwards in time by @m-Peter in #2734 - Give
CompositeTypeHandler
higher precedence overgetUserCompositeType
by @m-Peter in #2717 - Improve REPL by @turbolent in #2731
- add suggestions for missing entitlements in access errors by @dsainati1 in #2736
- Improve error message for overloaded declaration by @PratikDhanave in #2738
- Improve composite and interface static types by @turbolent in #2751
- Avoid unnecessary static to sema type conversions for
Type
by @turbolent in #2750 - Make CodesAndPrograms public by @janezpodhostnik in #2746
- update account type mappings to include identity by @dsainati1 in #2761
- Add entitlement CopyValue and require it for Account.Storage.copyValue by @turbolent in #2765
- Better error messages for use of old restricted types by @dsainati1 in #2764
- Suggested fixes for
pub
andpriv
parser errors by @dsainati1 in #2767 - Improve capability API by @turbolent in #2772
🐞 Bug Fixes
- Wrap host env errors with external errors by @SupunS in #2683
- Fix interface member inheritance by @dsainati1 in #2686
- Fix storage iteration and error misclassification by @SupunS in #2676
- Fix error on reference creation with invalid type by @SupunS in #2687
- Invalidate references to nested resources upon the move of the outer resource by @SupunS in #2460
- Hex encode user input in error to avoid invalid UTF-8 by @fxamacker in #2704
- Use thread safe data structures for entitlement maps by @dsainati1 in #2716
- Properly meter the creation of entitlement static types by @dsainati1 in #2723
📖 Documentation
- Add meeting notes for 2023-08-15 by @turbolent in #2740
Other Changes
- Sync mutability restrictions branch with stable-cadence by @SupunS in #2600
- Rename mutability entitlements by @SupunS in #2690
- Update to Go 1.20, improve random value generation by @turbolent in #2694
- Merge
release/v0.40.0
tomaster
by @github-actions in #2695 - Update storage iteration value check and related tests by @SupunS in #2702
- Sync Stable Cadence branch with master by @turbolent in #2701
- Update mutability restrictions feature branch by @turbolent in #2714
- Add test for borrowing as inherited interface by @SupunS in #2722
- Add test for attachment on built-in composite by @turbolent in #2732
- Add test for inner container mutation while iterating outer by @SupunS in #2733
- Add
cadence-tools/test
as a dependency to the language server by @SupunS in #2742 - Sync Stable Cadence feature branch by @turbolent in #2755
- Clean up intersection types by @turbolent in #2757
- Add tests for invalidation of references created with index/field-access by @SupunS in #2758
- Merge
master
into Stable Cadence by @dsainati1 in #2770
New Contributors
- @PratikDhanave made their first contribution in #2738
Full Changelog: v0.41.0-stable-cadence.1...v1.0.0-preview.1