Re: Multiline template strings that don't break indentation

2014-09-11 Thread 李白|字一日
I would prefer var a = `This is a template string.` `Even though each line is indented to keep the` `code neat and tidy, the white space used to indent` `is not in the resulting string` keepindentation`; as a multiple line string, 2014-09-11 13:55 GMT+08:00 Sebastian Zartner

Re: Multiline template strings that don't break indentation

2014-09-11 Thread Salvador de la Puente González
Hi guys. Notice we are dealing with literals and I would want to keep the strings as literal as possible so I think this is a syntax issue as the programmatic solution like regexp substitution is always available. My proposal: var s = `This is a multiline string. It keeps literal unless

Re: import script -- .esm

2014-09-11 Thread Yehuda Katz
On Thu, Sep 11, 2014 at 12:02 AM, Kevin Smith zenpars...@gmail.com wrote: There's a difference between ZOMG WORKING IN SECRET and talking to people and working on something privately that is still being fleshed out. Hmmm... In many other circles talking to people and working on something

Re: Multiline template strings that don't break indentation

2014-09-11 Thread Brendan Eich
The tag goes at the front. What's missing from the design that can't be provided as a standard exported deindent function? /be Sebastian Zartner wrote: var a = `This is a template string. Even though each line is indented to keep the code neat and

Re: ... A community is writing the spec...

2014-09-11 Thread Andrea Giammarchi
nope, looks like you forgot (sad) parenthesis :P My point was that Array extras have this second argument there to pass a context and fat arrow, as opposite of the thin one, would make that parameter misleading/confusing/pointless (same as bind would but fat makes it easier to mistake the intent)

Re: {Spam?} Re: ... A community is writing the spec...

2014-09-11 Thread Andrea Giammarchi
but only one made it ... I am not comparing but many developers are already confused about fat not behaving like thin. Yes, thin should be part of ES6 ... it's way easier to spec as just regular anonymous `function` shortcut , I still don't understand why it has been left out. The `function`

Re: {Spam?} Re: ... A community is writing the spec...

2014-09-11 Thread Andrea Giammarchi
for record sake, this is my complain on missingn - better explained: https://gist.github.com/qubyte/43e0093274e793cc82ba#comment-1292183 Rick kindly ensured me that it will be discussed for ES7, I see that too late for such little improvement able to cover 100% of use cases ( including

Re: import script -- .esm

2014-09-11 Thread Jussi Kalliokoski
On Thu, Sep 11, 2014 at 12:56 AM, Mark S. Miller erig...@google.com wrote: If there are no objections to recommending .js vs .jsm in this informal way, I propose that we place it there. FWIW, .jsm extension is currently used as a convention in XUL for denoting JavaScript modules (not the

Does async/await solve a real problem?

2014-09-11 Thread Jeswin Kumar
Looking at my project (in which asynchronous calls are entirely done via generators), I can't see how async/await would simplify code for end-users like me (application programmers). End users write the spawn()/Q.async()/co() wrapper *at most* one single time in an application: 1. When using a

Re: Strawman: Tuples

2014-09-11 Thread Michał Wadas
@Jasper: because tuples can be insanely optimized - their immutability (including fixed length) removes almost any overhead (JS objects overhead is quite big). Of course, modern engines can optimize array to be @Jeremy: consistency with other immutable primitives and frozen objects. `(function()

Re: Strawman: Tuples

2014-09-11 Thread Salvador de la Puente González
I'm not an expert but the JIT could keep all the lists as tuples until a modification is performed and then prevent further optimisation. I don't know if current JITs are already doing this way. On 10 Sep 2014 23:42, Jeremy Martin jmar...@gmail.com wrote: Michal - Why have it only throw in

Re: Does async/await solve a real problem?

2014-09-11 Thread Dean Landolt
Yes, async/await solves one problem in particular that generators alone cannot—the ability to `await` some asynchronous value from within a true generator (one yielding actual values, not a coroutine yielding promises or thunks into a trampoline). These coro trampolines are a clever hack, but the

RE: Does async/await solve a real problem?

2014-09-11 Thread Domenic Denicola
There are several problems solved by async/await instead of twisting generators: 1. What if you wanted to use generators for lazy sequences (iterables), instead of asynchronicity? If your framework assumes all generators are for async, you lose the original use case of generators. 2. Say what

Re: ... A community is writing the spec...

2014-09-11 Thread Alex Kocharin
  You can inject the proto but that's not really subclassing ... You know, I'm starting to think that injecting proto is actually the right way to do subclassing. It preserves [[Class]], it doesn't depend on `new`, etc. Here is some code I checked with:

Re: Does async/await solve a real problem?

2014-09-11 Thread Kevin Smith
Also, see https://github.com/lukehoban/ecmascript-asyncawait/issues/14 for previous discussion. On Thu, Sep 11, 2014 at 8:42 AM, Domenic Denicola dome...@domenicdenicola.com wrote: There are several problems solved by async/await instead of twisting generators: 1. What if you wanted to use

Re: Does async/await solve a real problem?

2014-09-11 Thread Florian Bösch
await has also another problem in that if somewhere, deep down the call stack, something is intending to do async, then up the entire call stack everywhere you've got to insert await. It's a bit of a headache for code maintenance (hello bicycle repair man jam session), and it's also fairly

Re: Does async/await solve a real problem?

2014-09-11 Thread Mark S. Miller
On Thu, Sep 11, 2014 at 6:20 AM, Florian Bösch pya...@gmail.com wrote: await has also another problem in that if somewhere, deep down the call stack, something is intending to do async, then up the entire call stack everywhere you've got to insert await. It's a bit of a headache for code

Re: Does async/await solve a real problem?

2014-09-11 Thread Florian Bösch
A - B - C - D - E changes to A - B - C - D - async E and causes A await - B await - C await - D await - async E And of course if A, B, C or D is used anywhere else it percolates trough the entire call graph. Trying to protect people from interlaved code execution effects is noble. But doing so

Re: Does async/await solve a real problem?

2014-09-11 Thread Florian Bösch
Furthermore, since await is call graph infectious, for those really wanting to use it, it means that before long, await is written before every single function call. Which makes no sense. On Thu, Sep 11, 2014 at 4:22 PM, Florian Bösch pya...@gmail.com wrote: A - B - C - D - E changes to A - B

Re: import script -- .esm

2014-09-11 Thread John Barton
I work on Traceur's loader and participate in the loader discussions on es-discuss. I find the lack of engagement by the developers of the loader disheartening. The long, painful, sometimes contentious discussions about classes yielded an outstanding design that works well. Is the loader on track

Re: Does async/await solve a real problem?

2014-09-11 Thread Mark S. Miller
On Thu, Sep 11, 2014 at 7:22 AM, Florian Bösch pya...@gmail.com wrote: A - B - C - D - E changes to A - B - C - D - async E and causes A await - B await - C await - D await - async E And of course if A, B, C or D is used anywhere else it percolates trough the entire call graph. Trying

Re: Multiline template strings that don't break indentation

2014-09-11 Thread Allen Wirfs-Brock
On Sep 11, 2014, at 1:05 AM, Brendan Eich wrote: The tag goes at the front. What's missing from the design that can't be provided as a standard exported deindent function? exactly: var a = dontIndent `This is a template string. Even though each line

Re: Does async/await solve a real problem?

2014-09-11 Thread Florian Bösch
The problem of code interleaving isn't on a fundamental level (like with threads). Threads are a very different best, that interlave at random points in time, and hence require some heavy lifting by the environmnet/OS to not immediately fall flat. Cooperative multitasking between I/O primitives

new instantiation design alternatives

2014-09-11 Thread Allen Wirfs-Brock
At the last TC39 meeting ( https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-07/jul-30.md#44-instantiation-reform-review-create-design-rationale-and-possible-alternatives and

Re: Does async/await solve a real problem?

2014-09-11 Thread Jeff Morrison
On 9/11/14, 10:22 AM, Florian Bösch wrote: A - B - C - D - E changes to A - B - C - D - async E and causes A await - B await - C await - D await - async E And of course if A, B, C or D is used anywhere else it percolates trough the entire call graph. Sort of true, but this is no worse than

Re: Strawman: Tuples

2014-09-11 Thread Brendan Eich
See https://brendaneich.com/2011/01/harmony-of-my-dreams/ tuples -- much of the rest is in ES6 or out of date (e.g. = functions supersede #(){}), but tuples and records might still happen, based on my spider-sense. /be ___ es-discuss mailing list

Re: import script -- .esm

2014-09-11 Thread Brendan Eich
John Barton wrote: The long, painful, sometimes contentious discussions about classes yielded an outstanding design that works well. In no sense were ES6 classes designed by es-discuss draw-out contentious painful committee. If you meant by yielded reviewed the design after champions had

Re: for-of loops, IteratorClose and the rest of the iterations in the spec

2014-09-11 Thread Allen Wirfs-Brock
On Sep 10, 2014, at 6:24 PM, Boris Zbarsky wrote: On 9/10/14, 5:48 PM, Allen Wirfs-Brock wrote: Why not just us ES as the specification language for most things in the WebIDL world? Or if not full ES, a simplified form Spec-ES. There are a few issues with using ES for specifying Web IDL.

Re: for-of loops, IteratorClose and the rest of the iterations in the spec

2014-09-11 Thread Boris Zbarsky
On 9/11/14, 1:47 PM, Allen Wirfs-Brock wrote: To clarify, I wasn't necessarily talking about using ES to specify Web IDL. Rather I meant using ES as an alternative to pseudo code for specifying the semantics of APIs defined with Web IDL interfaces. Ah, I see. Yeah, I'm not sure how much

Re: new instantiation design alternatives

2014-09-11 Thread Boris Zbarsky
On 9/11/14, 12:35 PM, Allen Wirfs-Brock wrote: https://gist.github.com/allenwb/291035fbf910eab8e9a6 summaries the main syntactic changes since the meeting and provides rationales them. These features are common to both alternates. this is a good place to start, after reading the meeting

Re: new instantiation design alternatives

2014-09-11 Thread Allen Wirfs-Brock
oh oops! they are supposed to be new^. Will fix... On Sep 11, 2014, at 12:55 PM, Boris Zbarsky wrote: On 9/11/14, 12:35 PM, Allen Wirfs-Brock wrote: https://gist.github.com/allenwb/291035fbf910eab8e9a6 summaries the main syntactic changes since the meeting and provides rationales them.

Re: ES6 Loader proposed changes

2014-09-11 Thread Ian Hickson
On Wed, 10 Sep 2014, Rob Sayre wrote: On Fri, Aug 29, 2014 at 2:23 PM, Ian Hickson i...@hixie.ch wrote: On Fri, 29 Aug 2014, David Herman wrote: It's still not completely clear to me what your use cases are, so I'm not sure exactly how much user-visible API you need. My goal is to

Re: ES6 Loader proposed changes

2014-09-11 Thread Brendan Eich
Ian Hickson wrote: I must admit though that while I initially assumed that this would be an obvious goal that browser vendors would all be eager to reach, I have yet to see anyone indicate that they're interested in this. So maybe it is in fact not a goal. I don't know. I think it must be a

Re: ES6 Loader proposed changes

2014-09-11 Thread Ian Hickson
On Thu, 11 Sep 2014, Brendan Eich wrote: Ian Hickson wrote: I must admit though that while I initially assumed that this would be an obvious goal that browser vendors would all be eager to reach, I have yet to see anyone indicate that they're interested in this. So maybe it is in fact not

Re: Strawman: Tuples

2014-09-11 Thread Salvador de la Puente González
Did I say a nonsense about JIT and lists? Indeed, AFAIK, making: var tuple = Object.freeze([1, 2]); It is like having a tuple and the JIT could realize the object is frozen and perform the required optimizations. On Thu, Sep 11, 2014 at 7:28 PM, Brendan Eich bren...@mozilla.org wrote: See

Re: new instantiation design alternatives

2014-09-11 Thread Jason Orendorff
It seems like new^ is a new argument that is implicitly passed to all functions. What does new^ mean in an arrow function? How does new^ interact with a proxy whose target is a constructor? -j On Thu, Sep 11, 2014 at 3:00 PM, Allen Wirfs-Brock al...@wirfs-brock.com wrote: oh oops! they are

Re: new instantiation design alternatives

2014-09-11 Thread Jason Orendorff
I meant to add: I think it's *great* that we're still iterating on this. Surely there's a way. On Thu, Sep 11, 2014 at 3:37 PM, Jason Orendorff jason.orendo...@gmail.com wrote: It seems like new^ is a new argument that is implicitly passed to all functions. What does new^ mean in an arrow

Re: Does async/await solve a real problem?

2014-09-11 Thread Bruno Jouhier
I'd like to inject my own experience into this discussion. I am the author of streamline.js, a smalll extension to JavaScript which adds async/await semantics to the language. I developed this language extension in January 2011 and we have been using it since then in a large project (new web

Re: Does async/await solve a real problem?

2014-09-11 Thread C. Scott Ananian
On Thu, Sep 11, 2014 at 4:41 PM, Bruno Jouhier bjouh...@gmail.com wrote: I think that Mark Miller nails it really well: The cost of making atomicity cheap is that interleaving points must be made explicit. With callbacks, this cost is quite high. Promises reduce this cost substantially.

Re: new instantiation design alternatives

2014-09-11 Thread Allen Wirfs-Brock
On Sep 11, 2014, at 1:37 PM, Jason Orendorff wrote: It seems like new^ is a new argument that is implicitly passed to all functions. What does new^ mean in an arrow function? How does new^ interact with a proxy whose target is a constructor? see

Re: Does async/await solve a real problem?

2014-09-11 Thread Bruno Jouhier
I forgot to mention performance. streamline has been an interesting playground to test performance because it supports 3 different backends: - pure callbacks with a sophisticated CPS transform - fibers (much simpler transform) - generators (transform is similar to fibers, runtime is a

Re: ES6 Loader proposed changes

2014-09-11 Thread Brendan Eich
Ian Hickson wrote: On Thu, 11 Sep 2014, Brendan Eich wrote: Ian Hickson wrote: I must admit though that while I initially assumed that this would be an obvious goal that browser vendors would all be eager to reach, I have yet to see anyone indicate that they're interested in

Re: Does async/await solve a real problem?

2014-09-11 Thread C. Scott Ananian
On Thu, Sep 11, 2014 at 5:27 PM, Bruno Jouhier bjouh...@gmail.com wrote: If async/await is baked into the language VM implementers will be able to choose between different strategies: callbacks, single frame continuations, deep continuations, ... ...and transactional speculation. Or at least,

symbols in template literals

2014-09-11 Thread Claude Pache
Recently, `String(symbol)` has been modified in order to not throw, on the ground that it is an explicit conversion, and a safer one than `.toString()`. [1] What about symbols in untagged templates? function foo(num, sym) { if (__debugMode) window.alert( `Got arguments:

Re: symbols in template literals

2014-09-11 Thread Brendan Eich
Claude Pache wrote: Recently, `String(symbol)` has been modified in order to not throw, on the ground that it is an explicit conversion, and a safer one than `.toString()`. [1] And to cite the hazard, because obj[name +''] where name is a non-symbol must continue to work as it has, but if

Re: new instantiation design alternatives

2014-09-11 Thread Brendan Eich
Ob. bikeshed: why not `new?` as the magic pair of tokens? Seems unambiguous given `new` as a reserved identifier since dayone. /be ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss

Re: ES6 Loader proposed changes

2014-09-11 Thread Ian Hickson
On Thu, 11 Sep 2014, Brendan Eich wrote: It may be that you have to keep compatibility, which means larger API surface over time, new more-unified and old less-unified subsystems coexisting. That's how the Web has grown in other areas. Original DOM didn't reflect all elements; in the '90s

Re: new instantiation design alternatives

2014-09-11 Thread Allen Wirfs-Brock
On Sep 11, 2014, at 3:03 PM, Brendan Eich wrote: Ob. bikeshed: why not `new?` as the magic pair of tokens? Seems unambiguous given `new` as a reserved identifier since dayone. /be new? would be fine,. Actually better. But we shied away from it, so as to not impinge upon future use of

Re: new instantiation design alternatives

2014-09-11 Thread Claude Pache
Le 12 sept. 2014 à 00:03, Brendan Eich bren...@mozilla.org a écrit : Ob. bikeshed: why not `new?` as the magic pair of tokens? Seems unambiguous given `new` as a reserved identifier since dayone. If one day we introduce the so-called existential operator `foo?.bar`, it will be quite

Re: symbols in template literals

2014-09-11 Thread Allen Wirfs-Brock
On Sep 11, 2014, at 2:59 PM, Brendan Eich wrote: Claude Pache wrote: Recently, `String(symbol)` has been modified in order to not throw, on the ground that it is an explicit conversion, and a safer one than `.toString()`. [1] And to cite the hazard, because obj[name +''] where name is a

Re: new instantiation design alternatives

2014-09-11 Thread Brendan Eich
Allen Wirfs-Brock wrote: new? would be fine,. Actually better. But we shied away from it, so as to not impinge upon future use of ?. Even if there was no lexical ambiguity there might be conceptual confusion with some future usage. When last we considered refutable patterns, e.g., match

Re: new instantiation design alternatives

2014-09-11 Thread Brendan Eich
Claude Pache wrote: Le 12 sept. 2014 à 00:03, Brendan Eichbren...@mozilla.org a écrit : Ob. bikeshed: why not `new?` as the magic pair of tokens? Seems unambiguous given `new` as a reserved identifier since dayone. If one day we introduce the so-called existential operator `foo?.bar`, it

Re: ES6 Loader proposed changes

2014-09-11 Thread Brendan Eich
Ian Hickson wrote: On Thu, 11 Sep 2014, Brendan Eich wrote: It may be that you have to keep compatibility, which means larger API surface over time, new more-unified and old less-unified subsystems coexisting. That's how the Web has grown in other areas. Original DOM didn't reflect

Re: String(symbol)

2014-09-11 Thread Claude Pache
Le 26 août 2014 à 17:39, Jeff Walden jwalden...@mit.edu a écrit : On 08/12/2014 11:07 PM, Allen Wirfs-Brock wrote: sounds good to me, I'll update the spec. accordingly On Aug 12, 2014, at 7:39 PM, Erik Arvidsson wrote: I was suggesting that String(symbol) should not throw. This can be

Re: Multiline template strings that don't break indentation

2014-09-11 Thread Sebastian Zartner
The tag goes at the front. I know. I didn't see this functionality as a tag, though, but rather as a flag for the client. Having this functionality available as a tag has some consequences. See below. What's missing from the design that can't be provided as a standard exported deindent