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

Sync stable cadence branch with master #2899

Merged
merged 40 commits into from
Oct 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
05e3c08
allow native functions to have type parameters
turbolent Oct 5, 2023
82c5e4b
mjs build for cadence-parser
nialexsan Oct 5, 2023
5cb52ff
bump version
nialexsan Oct 5, 2023
38078f5
Merge branch 'master' into nialexsan/mjs-build
nialexsan Oct 5, 2023
735a071
Merge pull request #2851 from onflow/nialexsan/mjs-build
turbolent Oct 6, 2023
38640c0
Allow specifying a mapping with human-friendly aliases for locations …
m-Peter Oct 9, 2023
e69d6bb
Merge pull request #2850 from onflow/bastian/allow-native-generic-fun…
turbolent Oct 12, 2023
4871d50
Handle identifier locations and make some fields non-exported
m-Peter Oct 15, 2023
6b9d9f2
Remove crAlias relic type and update JSON tags for CoverageReport
m-Peter Oct 16, 2023
be4a169
do not inject native PublicKey functionality during construction
turbolent Oct 17, 2023
f1d0e88
inject composite value functions
turbolent Oct 18, 2023
6bcf816
allow setting composite value functions handler for type ID in enviro…
turbolent Oct 18, 2023
faf6612
lint
turbolent Oct 18, 2023
f9990cb
pass composite value to composite value handler
turbolent Oct 18, 2023
87df1ad
pass location range to composite value functions handler
turbolent Oct 18, 2023
9dcb88b
Add computation metering to array function
SupunS Oct 18, 2023
a07342f
Meter on each iteration
SupunS Oct 19, 2023
c16b00f
Merge pull request #2880 from onflow/supun/computation-metering
SupunS Oct 19, 2023
46bef9c
allow different base activations per location in checker and interpreter
turbolent Oct 20, 2023
c9ef8e3
Use ComputationKindLoop for internal array-value iterations
SupunS Oct 20, 2023
076c7e2
Merge pull request #2891 from onflow/supun/computation-metering
SupunS Oct 20, 2023
32c5afe
assert location of error
turbolent Oct 20, 2023
1354191
improve naming, add comments
turbolent Oct 20, 2023
e44edd7
store default base activations in separate fields
turbolent Oct 20, 2023
2f573e2
Merge pull request #2859 from m-Peter/coverage-report-source-file-map…
turbolent Oct 23, 2023
d6f80e0
lint
turbolent Oct 23, 2023
6947cfa
Merge pull request #2887 from onflow/bastian/per-location-base-activa…
turbolent Oct 23, 2023
31d873d
fix version number
turbolent Oct 23, 2023
8f371bc
v0.42.1
turbolent Oct 23, 2023
465f137
Merge pull request #2893 from onflow/release/v0.42.1
turbolent Oct 23, 2023
39136cf
fix string atree value comparison: handle storage as slab
turbolent Oct 24, 2023
2f2ad6a
add meeting notes for 2023-10-24
turbolent Oct 24, 2023
5ac63e6
Merge pull request #2897 from onflow/bastian/meeting-notes-2023-10-24
turbolent Oct 24, 2023
c00aedc
Merge pull request #2895 from onflow/bastian/fix-string-atree-value-c…
turbolent Oct 24, 2023
8da58bd
Merge branch 'master' into bastian/native-functionality-linking
turbolent Oct 24, 2023
06c7664
lint
turbolent Oct 24, 2023
20e1fa8
adjust tests
turbolent Oct 24, 2023
e878449
Merge pull request #2878 from onflow/bastian/native-functionality-lin…
turbolent Oct 25, 2023
3e084c4
Merge branch 'master' of https://github.com/onflow/cadence into supun…
SupunS Oct 25, 2023
7d1317d
lint
SupunS Oct 25, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
277 changes: 277 additions & 0 deletions meetings/2023-10-24.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,277 @@

## Oct 24th, 2023

### FLIPs

#### 134: Relax interface conformance restrictions

* FLIP: [https://github.com/onflow/flips/pull/134](https://github.com/onflow/flips/pull/134)

* Overview:

* Follow up on interface conformance improvements ([https://github.com/onflow/flips/pull/83](https://github.com/onflow/flips/pull/83)).

* Proposes to allow empty function declaration defined in one interface to coexist with a default function implementation defined in another interface.

* Currently the same is allowed if the empty declaration has a pre/post condition.

* When interface default functions were introduced, interface inheritance did not exist yet

* Current behavior was intentional, tried to avoid interface author breaking implementations by adding function implementation (default function)

* Status:

* FLIP is waiting for a final decision

* Reference implementation is complete: [https://github.com/onflow/cadence/pull/2725](https://github.com/onflow/cadence/pull/2725)

* Next steps:

* Would like to get more feedback

* Provide means / explanation to try out

* Notes:

* Accepted

#### 210: Improvement to entitlement mapping syntax

* FLIP: [https://github.com/onflow/flips/pull/210](https://github.com/onflow/flips/pull/210)

* Overview:

* Got some feedback that visually entitlements and entitlement mappings appear too similar when used in an `access` modifier. This can be confusing to developers because the former cannot be accessed on an unentitled reference, while the latter can be (and produces an unentitled output)

* Proposed needing a `mapping` keyword in access modifiers: e.g. `access(mapping M)`

* Status:

* FLIP proposed, has general approval

* Next Steps:

* Accept FLIP, merge implementation?

* Notes:

* Approved

#### 196: Restrict Capabilities Publish

* FLIP: [https://github.com/onflow/flips/pull/197](https://github.com/onflow/flips/pull/197)

* Overview:

* Current Cap Cons API allows publishing capabilities of another account

* Was not possible with linking API

* Could lead to confusion for developers (e.g. query balance, but balance is from another account)

* Status:

* Ready for vote

* Next Steps:

* Notes:

* Approved

#### 212: Reject references to references

* FLIP: [https://github.com/onflow/flips/pull/212](https://github.com/onflow/flips/pull/212)

* Overview:

* It is currently possible to create references to references, e.g. &&T

* Such references are not useful

* In Cadence 1.0, additional work is requires to keep them working

* Proposal is to forbid them

* Status:

* Ready for vote

* Next Steps:

* Notes:

* Approved

#### 131: Remove custom destructors

* FLIP: [https://github.com/onflow/flips/pull/131](https://github.com/onflow/flips/pull/131)

* Overview:

* Proposal to address inability for users to destroy resources they own

* One of the discussed options (others: try/catch, etc.)

* Originated from attachments feature (attachment might prevent destruction of whole resource)

* Remove destroy

* Allows users to always destroy resources

* Status:

* Updated FLIP with default events

* Discovered that introduction of attachments would require additional code in e.g. Vault.deposit to prevent exploit

* FLIP ready for another round of discussion

* Open problems:

* Philosophical question (sending to "burner account")

* Existing code / applications

* "Migration" path for use-cases like FT total supply

* Tombstoning implementation

* Next steps:

* Need to discuss implementation approach more

* Implementation is not blocking Stable Cadence release, but can vote on change itself, removal of custom destructors

* Do not need a solution for "large resource deletion" problem

* Breakout session next week, after giving time to read through updated proposal

* Feedback:

* Non-mutable contraction mainnet using custom destructor

* Overhead creating workaround

* Will USDC implement a workaround ?

* Notes:

* Approved

#### 95: Entitlements migration

* FLIP: [https://github.com/onflow/flips/pull/95](https://github.com/onflow/flips/pull/95)

* Overview:

* Status:

* Next Steps:

#### 179: Staged Contract Updates

* FLIP: [https://github.com/onflow/flips/pull/179](https://github.com/onflow/flips/pull/179)

* Overview:

* Contract mechanism to define contract update deployments and execute updates in stages at/beyond a block height. Execution can also be delegated to a third party via Capabilities

* Status:

* Proposed & approved by Jerome & Josh

* Was hoping for community approval on the FLIP before moving to approval, but only feedback provided so far

* Next Steps:

* Approve unless recent feedback is opposed

* Merge tryUpdate() to finalize v0 implementation & build out tests

* Design automated update solution so delegated updates can be executed immediately post-spork

* Begin to address callouts around:

* Creating update configuration

* Emulating configured updates

* Monitoring update status

### Other

#### Discuss changes to attachments

* Overview

* Problem:

* Attachments are able to declare what entitlements they need, to perform operations on base

* A *third-party* might prepare a value with an attachment. With the transfer of the value, also the attachment and thus the permissions on the base, are transferred

* The receiver might not realize

* Reference to base stays "alive" beyond TX/script

* Running example:

* Currency converter on vault, can deposit and withdraw

* Proposal:

* Remove support for requirement of entitlements

* Only allow public access to begin with

* Later: Add support for entitled access,

* e.g. through

* Entitlement mapping

* `access(M) attachment A for S {}`

* Privilege escalation through mapping?
E.g. Deposit → Withdraw

* ```cadence
mapping M {
X -> Y
}

access(Y) fun foo() {
// can use X on base
}
```

* Maybe hardcode to Identity mapping?

* `access(X) fun foo() { … }`

* no mapping

* Requirements on per-function level (instead of whole attachment)

* Do not want to require splitting attachments into parts

* Alternative: Sanitization

* Doesn’t scale, too easy to forget, footgun ("malicious USB stick")

* Status:

* Decide if this / what should be proposed in a FLIP

* Next steps:

* Propose FLIP for

* Requirement removal

* Propose unentitled access to start with

* Can add entitled access later (see above)

* Examples for proposals which allow entitlements
Loading