[swift-evolution] A case for postponing ABI stability
jgroff at apple.com
Tue Jan 24 16:16:03 CST 2017
> On Jan 24, 2017, at 12:15 PM, Freak Show via swift-evolution <swift-evolution at swift.org> wrote:
> I do not see how you can consider standardizing ABI without first standardizing the dynamic features and the desired programmatic interfaces to them.
> We know that dynamic features need to come. They will impact everything. My personal ideal is a language that smoothly transitions from fully dynamic to fully static without a lot of fuss.
There will inevitably be features at some point that require added runtime support that won't backward-deploy to older runtime versions. However, a lot of the information you'd need for many dynamic features is already there, and planned to be stabilized as part of the ABI. We already emit reflection data that describes the physical layouts of types, and once those formats are stabilized, building a library that interprets the metadata is additive (and could conceivably be done by a third party independent of the standard library). There may not be metadata for individual methods yet, but there is tracking of protocol conformances, and once the standard library protocols are stabilized, someone could make assumptions about the protocol witness table layouts for those protocols to find particular method implementations even if you're running on an older standard library without the full method metadata we might support one day.
More information about the swift-evolution