Commits

John McCall committed 4d1b6e2eb65
Reform the runtime interface for unowned reference-counting. This is a bit of a hodge-podge of related changes that I decided weren't quite worth teasing apart: First, rename the weak{Retain,Release} entrypoints to unowned{Retain,Release} to better reflect their actual use from generated code. Second, standardize the names of the rest of the entrypoints around unowned{operation}. Third, standardize IRGen's internal naming scheme and API for reference-counting so that (1) there are generic functions for emitting operations using a given reference-counting style and (2) all operations explicitly call out the kind and style of reference counting. Finally, implement a number of new entrypoints for unknown unowned reference-counting. These entrypoints use a completely different and incompatible scheme for working with ObjC references. The primary difference is that the new scheme abandons the flawed idea (which I take responsibility for) that we can simulate an unowned reference count for ObjC references, and instead moves towards an address-only scheme when the reference might store an ObjC reference. (The current implementation is still trivially takable, but that is not something we should be relying on.) These will be tested in a follow-up commit. For now, we still rely on the bad assumption of reference-countability.