On Sep 3, 2017, at 5:01 PM, Jonathan Hull <jh...@gbis.com> wrote:
>> On Sep 3, 2017, at 9:04 AM, Chris Lattner via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>>> On Sep 3, 2017, at 4:00 AM, David Hart <da...@hartbit.com 
>>> <mailto:da...@hartbit.com>> wrote:
>>>> Please don’t read too much into the beginAsync API.  It is merely a 
>>>> strawman, and intended to be a low-level API that higher level 
>>>> abstractions (like a decent futures API) can be built on top of.  I think 
>>>> it is important to have some sort of primitive low-level API that is 
>>>> independent of higher level abstractions like Futures.
>>>> 
>>>> This is all a way of saying “yes, having something like you propose makes 
>>>> sense” but that it should be part of the Futures API, which is outside the 
>>>> scope of the async/await proposal.
>>> 
>>> But it would be nice for all high-level APIs that conform to a Awaitable 
>>> protocol to be used with await without having to reach for a get property 
>>> or something similar everytime.
>> 
>> The futures API that is outlined in the proposal is just an example, it 
>> isn’t a concrete pitch for a specific API.  There are a bunch of 
>> improvements that can (and should) be made to it, it is just that a futures 
>> API should be the subject of a follow-on proposal to the basic async/await 
>> mechanics.
> 
> Would it be possible to have the manifesto be a series of proposals then?  I 
> really think it is important for us to look at how all of these things fit 
> together.  I agree that async/await should come first, but looking at how 
> concrete things like Futures would work may help to inform the design of 
> async/await.  We should do the back-propigation in our design before anything 
> is locked in…

Sure, that would be great.  I don’t have time to write up a futures proposal 
myself, but I’d be happy to contribute editorial advice to someone (or some 
group) who wants to do so.

> The thing I would most like to see as a quick follow-on to async/await is the 
> ability to use the ‘async’ keyword to defer ‘await’. 

This keeps coming up, and is certainly possible (within the scope of the swift 
grammar) but a decision like this should be driven by a specific cost/benefit 
tradeoff.  That tradeoff decision can only be made when the futures API has a 
specific proposal that people generally agree to.  

Because of this, I think that the Futures proposal should be a *library only* 
proposal on top of the async/await language stuff, and them mention something 
like “async foo()” as a possible future extension - the subject of its own 
proposal.

-Chris

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to