> On 21 Dec 2017, at 4:06 pm, Johannes Weiß via swift-evolution
> <[email protected]> wrote:
>
>>
>> On 21 Dec 2017, at 12:19 am, Ted Kremenek via swift-evolution
>> <[email protected]> wrote:
>>
>> The review of "SE-0193 - Cross-module inlining and specialization" begins
>> now and runs through January 5, 2018.
>>
>> The proposal is available here:
>>
>> https://github.com/apple/swift-evolution/blob/master/proposals/0193-cross-module-inlining-and-specialization.md
>> Reviews are an important part of the Swift evolution process. All review
>> feedback should be sent to the swift-evolution mailing list at:
>>
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>> or, if you would like to keep your feedback private, directly to the review
>> manager.
>>
>> When replying, please try to keep the proposal link at the top of the
>> message:
>>
>> Proposal link:
>> https://github.com/apple/swift-evolution/blob/master/proposals/0193-cross-module-inlining-and-specialization.md
>> ...
>> Reply text
>> ...
>> Other replies
>> What goes into a review of a proposal?
>>
>> The goal of the review process is to improve the proposal under review
>> through constructive criticism and, eventually, determine the direction of
>> Swift.
>>
>> When reviewing a proposal, here are some questions to consider:
>>
>> • What is your evaluation of the proposal?
>
> I'm working on a performance sensitive library and we're sometimes bitten
> quite hard by not being able to cross-module inline & specialise. Therefore,
> it's thrilling to see that you're working in this area.
>
> However, I have to admit that I believe this language feature will most
> likely be grossly abused. The library I'm working on will presumably never
> have stable ABI as you'd naturally build it with your application. However we
> also don't want to miss on the cross-module optimisation & specialisation and
> I suspect there are quite a few (mostly open-source) libraries in the same
> space. I'm pretty sure everybody would just end up littering their code with
> @abiPublic/@inlinable (or the @available(...) syntax Chris Lattner proposed)
> without actually meaning that.
>
> Summing up: I think this feature is crucial but shouldn't come without a
> compiler "where all declarations become implicitly @inlinable, and all
> private and internal declarations become @abiPublic". I really don't want to
> litter the code with attributes that aren't what I mean. (basically `swift
> build --global-resilience-domain`) Having this compiler mode also makes these
> attributes IMHO really niche and therefore I can only sympathise with's
> Chris' sentiment to not litter the global attribute namespace.
>
>
>> • Is the problem being addressed significant enough to warrant a change
>> to Swift?
>
> see above.
>
>
>> • Does this proposal fit well with the feel and direction of Swift?
>
> to back up the 'swift' claim, cross-module inlining & specialisation is
> absolutely necessary. However this should also be achievable with a 'I don't
> need a stable ABI for this product' mode in the compiler :).
>
>
>> • If you have used other languages or libraries with a similar feature,
>> how do you feel that this proposal compares to those?
>
> C(++) as described in the proposal and Haskell
> (https://wiki.haskell.org/Inlining_and_Specialisation), where {-# INLINABLE
> myFunction #-} (quoting the docs) causes exactly two things to happens.
>
> • The function's (exact) definition is included in the interface file
> for the module.
> • The function will be specialised at use sites -- even across modules.
> Note that [the Haskell compiler] GHC is no more keen to inline an INLINABLE
> function than any other.
forgot to mention GHC's -fspecialise-aggressively which is its way of saying,
just specialise things across modules even without '{-# INLINABLE ... #-}'
which is basically the compilation mode I'm asking for :).
>
>
>> • How much effort did you put into your review? A glance, a quick
>> reading, or an in-depth study?
>
> read the proposal (and believe to understand it).
>
> -- Johannes
>
>>
>> Thanks,
>> Ted Kremenek
>> Review Manager
>>
>> _______________________________________________
>> swift-evolution mailing list
>> [email protected]
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution