Mark S. Miller (2014-02-05T14:39:20.000Z)
On Wed, Feb 5, 2014 at 6:37 AM, Mark S. Miller <erights at google.com> wrote:

> On Wed, Feb 5, 2014 at 12:43 AM, Brendan Eich <brendan at mozilla.com> wrote:
>
>> Kevin Smith wrote:
>>
>>>
>>>
>>>     - Promise.cast is renamed to Promise.resolve (remove old
>>>     Promise.resolve)
>>>     - Keep then, reject chain (NOT DEFER, reject!)
>>>     - Renaming .cast thus removes over-wrapping (always-wrap)
>>>     deoptimization in old Promise.resolve
>>>
>>> So basically, since September, we've seen:
>>>
>>> - A design proposal which achieved "consensus"
>>> - A spec implementation which completely ignored that "consensus"
>>> - And now a third design, which also throws out "consensus" and has been
>>> implemented by precisely no-one
>>>
>>> And all of this over 200 to 300 LOC.
>>>
>>> These shenanigans are deeply disturbing.
>>>
>>
>> I agree. I kept my nose out of it until it was front-and-center on the
>> last day of the last TC39 meeting, and in context of threads here that were
>> pushing (I was on side with you) to add .chain.
>>
>> The design proposal in September did not have consensus, for real. That
>> proposal was changed after the September meeting (Mark has details). The
>> implementation in V8 then added .chain based on an understanding from the
>> May 2013 meeting (multiple, "Rashomon" views of consensus).
>>
>> There's still some concern about supporting Promise subclassing, too, but
>> I think it can be handled without controversy (I could be wrong). It
>> entails using the public-named methods (in case of overrides) consistently,
>> and not using internal methods or other such shortcuts some of the time.
>> Basically "always use .then".
>>
>> Can we regain consensus on the September status quo ante, minus any "do
>> both" half-hearted compromises that don't work? Mark, what do you think?
>
>
> I see no need to reopen this yet again. At this last meeting, we declared
> a new consensus, to keep the .cast and .then level, dispense with the
> .accept (previously renamed .resolve) and .chain level, and to rename .cast
> to .resolve.
>
> This kills the September AP2 consensus, in that we are no longer
> constraining the .then level's mechanics to be compatible with introducing
> (whether now or in the future) a .chain level. The September consensus was
> a compromise, in the "do both" mode that standards committees are tempted
> by. I have a deeper appreciation of those temptations now, having promoted
> it at the time. Given that we were trying to do both, Todd's AP2 was a
> wonderful way to minimize the pain. But I am now proud to see our committee
> once again rise above the "do both" failure mode.
>
> IMO, the most important argument against "do both" is that it would lead
> to perpetual confusion, as some libraries are written to the .then style
> and others are written to the .chain style. With AP2, these would live
> together as well as possible, but that's still not well.
>
> Regarding the comments in this thread, I haven't engaged since I have not
> seen any new points raised. All the old arguments are publicly archived. If
> you're about to repost a previously posted argument, please instead just go
> read the previously posted response. No one convinced anyone of very much
> that time, and repetition is unlikely to do better.
>
> The one remaining open issue for me is the means of flattening the output
> side of a .then operation. The end-of-september "consensus" flattened one
> level, but nominal typing and use of internal properties.
>

Should be

    *by* nominal typing and use of internal properties.



> The current spec flattens using .then. The change was made to make
> subclassing more flexible in ways I have yet to appreciate. But since we
> are no longer trying to co-exist with .chain, now or in the future, I no
> longer object to using .then for the output flattening of .then. I am fine
> with the .then spec as currently written, in the context of the rest of our
> decisions at the end of January meeting.
>
>
>>
>> /be
>>
>
>
>
> --
>     Cheers,
>     --MarkM
>



-- 
    Cheers,
    --MarkM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20140205/48f58e9c/attachment-0001.html>
domenic at domenicdenicola.com (2014-02-05T20:24:38.422Z)
On Wed, Feb 5, 2014 at 6:37 AM, Mark S. Miller <erights at google.com> wrote:
> The end-of-september "consensus" flattened one
> level, but nominal typing and use of internal properties.

Should be

*by* nominal typing and use of internal properties.