<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 6, 2016 at 9:58 AM, Douglas Gregor via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><span class=""><blockquote type="cite"><div>On Apr 5, 2016, at 4:04 PM, Drew Crawford &lt;<a href="mailto:drew@sealedabstract.com" target="_blank">drew@sealedabstract.com</a>&gt; wrote:</div><br><div><div style="word-wrap:break-word"><br><div><blockquote type="cite"><div>On Apr 5, 2016, at 12:06 PM, Douglas Gregor &lt;<a href="mailto:dgregor@apple.com" target="_blank">dgregor@apple.com</a>&gt; wrote:</div><div><div style="font-family:HelveticaNeue;font-size:12px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br></div><div style="font-family:HelveticaNeue;font-size:12px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">I would not want this to be implicit behavior: it should be recorded in the source with, e.g.,</div><div style="font-family:HelveticaNeue;font-size:12px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br></div><div style="font-family:HelveticaNeue;font-size:12px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="white-space:pre-wrap">        </span>@availability(iOS: 9.3) import YourCustomFramework</div><div style="font-family:HelveticaNeue;font-size:12px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br></div><div style="font-family:HelveticaNeue;font-size:12px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">so that it is clear that the imported declarations are only available on iOS 9.3 or newer.</div><div style="font-family:HelveticaNeue;font-size:12px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br></div><div style="font-family:HelveticaNeue;font-size:12px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="white-space:pre-wrap">        </span>- Doug</div></div></blockquote></div><br><div>Would you promote using this syntax for the Apple frameworks as well?</div></div></div></blockquote><div><br></div><div><br></div><blockquote type="cite"><div><div style="word-wrap:break-word"><div>A major goal for me is syntax consistency between Apple&#39;s and third-party frameworks.  That way the knowledge of how to use one transfers to the other, and we ensure people with fresh ideas about how to build frameworks are not burdened with educating application developers about &quot;novel&quot; import syntax.</div></div></div></blockquote><div><br></div></span>Apple frameworks tend to have ail their various classes and other APIs annotated with availability attributes, so I wouldn’t expect to need this import syntax for any of those. Really, this syntax is a shorthand for “treat the imported library as if the author had put this availability annotation on all of its public APIs”. If your goal is consistency between Apple frameworks and other frameworks, I don’t think this is the way to go.</div><div><br></div><div><br></div></div></blockquote><div><br></div><div>Does this mean that the recommended best practice for framework authors is to set the deployment target low and then add an availability attribute for every public symbol? </div></div></div></div>