<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Dec 24, 2017, at 3:04 PM, Howard Lovatt via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="content-type" content="text/html; charset=utf-8" class=""><div dir="auto" class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">Proposal link:</span><span style="background-color: rgba(255, 255, 255, 0);" class=""> </span><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0193-cross-module-inlining-and-specialization.md" dir="ltr" x-apple-data-detectors="true" x-apple-data-detectors-type="link" x-apple-data-detectors-result="5" style="background-color: rgba(255, 255, 255, 0);" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0193-cross-module-inlining-and-specialization.md</a><br class=""><ul style="-webkit-print-color-adjust: exact; margin: 15px 0px; padding-left: 30px;" class=""><li style="-webkit-print-color-adjust: exact; margin: 0px;" class=""><p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">What is your evaluation of <a href="x-apple-data-detectors://7" dir="ltr" x-apple-data-detectors="true" x-apple-data-detectors-type="misc" x-apple-data-detectors-result="7" style="-webkit-text-decoration-color: rgba(0, 0, 0, 0.258824);" class="">the proposal</a>?</span></p><p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">-1</span></p><p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">The proposal puts all the emphasis on the programmer. It is better for the compiler to decide if something is to be inclined both across modules and within modules. </span></p><p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">If something is made public then it should be fixed for a given major version number. No need for extra annotation. </span></p><p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">A module system that allows versioning is a better solution. </span></p><div class=""><br class=""></div></li></ul></div></div></blockquote>Can you explain your proposed solution in more detail?</div><div><br class=""><blockquote type="cite" class=""><div dir="auto" class=""><ul style="-webkit-print-color-adjust: exact; margin: 15px 0px; padding-left: 30px;" class=""><li style="-webkit-print-color-adjust: exact; margin: 0px;" class=""><p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">No, cluttering up declarations is completely against the clarity of Swift. For example who other than people on this group will understand @inline(never) @inlinable. </span></p><div class=""><br class=""></div></li></ul></div></blockquote>We don’t expect this attribute to be used frequently in third-party frameworks. @inline(never) @inlinable is a weird combination, but I hope that @inline(never) is used even less frequently. In fact other than debugging it probably doesn’t have much purpose at all, and it would be nice to deprecate it some day.<br class=""><blockquote type="cite" class=""><div dir="auto" class=""><ul style="-webkit-print-color-adjust: exact; margin: 15px 0px; padding-left: 30px;" class=""><li style="-webkit-print-color-adjust: exact; margin: 0px;" class=""><p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?</span></p><p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">Yes C and C++ and found the equivalent of these annotations problematic. In Java they eliminated all this and let the compiler do the work. In practice this works much better. </span></p><div class=""><br class=""></div></li></ul></div></blockquote>The Java approach works because there’s no separate compilation — having a JIT means the optimizer is free to inline across module boundaries without any resilience considerations. This doesn’t fit with Swift’s compilation model though.</div><div><br class=""></div><div>Slava</div><br class=""></body></html>