I'd like an *opt-in* way to verify and prevent *unintentional strong
references* in Swift.
This can be used to verify ownership structures, and ultimately avoid
retain cycles.
Read a draft proposal here:
TL;DR:
If you have any questions please read the proposal before asking here.
It's an opt-in attribute that defines a whitelist of types something can
own. For example:
@owns(TypeA, TypeB) struct TypeC { ... }
I wrote this a few months ago, but we weren't accepting additive proposals.
Now we're explicitly looking for something like this:
Memory ownership model: Adding an (opt-in) Cyclone/Rust inspired memory
···
ownership model to Swift is highly desired by systems programmers and folks
who want predictable and deterministic performance (for example, in real
time audio processing code). More pertinent to the goals of Swift 4, this
feature is important because it fundamentally shapes the ABI. It informs
code generation for “inout", how low-level “addressors” work in the ABI,
impacts the Swift runtime, and will have a significant impact on the type
system and name mangling.
- Chris
<https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160725/025676.html>
----
Here's a link to the version of the proposal
<https://github.com/therealbnut/swift-evolution/commit/6ab167825d802c7826804e1957eb515d3009743a>
when
I sent this email.