[Accepted pending revision review] SE-0176 Enforce Exclusive Access to Memory

Proposal link: swift-evolution/0176-enforce-exclusive-access-to-memory.md at master · apple/swift-evolution · GitHub

The review of SE-0176 "Enforce Exclusive Access to Memory" ran from April 14 to April 21, 2017. This proposal has been accepted with revisions.

Feedback was strongly positive. Some participants raised concern about the overhead of dynamic checking. The core team shares this concern but feels that there will be adequate opportunities later to make pragmatic decisions about when to enable dynamic checking.

Most of the proposal is accepted. An implementation issue has been discovered with the use of dynamic enforcement on inout parameters. The proposal implementors suggest adopting a stronger rule governing the use of non-escaping closures which will also allow Swift to make firm guarantees about the use of static enforcement when a variable does not escape. The core team tentatively supports this new rule but believes it is a substantial enough revision that it requires a separate review period.

Thanks to everyone who participated. I will send out an additional announcement kicking off the further review shortly.

Review Manager