00:02:47  * keith_millerjoined
00:06:26  * keith_mi_quit (Ping timeout: 255 seconds)
00:34:10  * jwaldenquit (Ping timeout: 252 seconds)
00:39:33  * jwaldenjoined
01:28:03  * srl295joined
01:41:20  * AtumTquit (Read error: Connection reset by peer)
02:04:22  * jwaldenquit (Quit: back later)
02:21:03  <jmdyck>bterlson: ok, my commit is ready to go once you merge async-iter
02:51:45  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:52:54  * jmdyckquit (Remote host closed the connection)
05:07:54  * jwaldenjoined
05:34:10  * srl295quit (Quit: Connection closed for inactivity)
05:50:56  * caridyquit (Remote host closed the connection)
05:51:22  * caridyjoined
05:55:35  * caridyquit (Ping timeout: 240 seconds)
05:57:02  * gibson042quit (Ping timeout: 260 seconds)
06:01:10  * jwaldenquit (Quit: back later)
06:26:35  * caridyjoined
06:30:53  * caridyquit (Ping timeout: 256 seconds)
06:40:47  * caridyjoined
06:49:07  * jwaldenjoined
06:49:16  * caridyquit (Ping timeout: 252 seconds)
07:15:36  * caridyjoined
07:19:57  * caridyquit (Ping timeout: 240 seconds)
07:28:41  * caridyjoined
07:33:17  * caridyquit (Ping timeout: 255 seconds)
08:25:47  * caridyjoined
08:30:24  * caridyquit (Ping timeout: 268 seconds)
08:57:56  * keith_millerjoined
09:02:27  * not-an-aardvarkquit (Quit: Connection closed for inactivity)
09:03:07  * STRMLquit (Ping timeout: 256 seconds)
09:05:55  * gskachkovjoined
09:07:31  * STRMLjoined
09:18:55  * boazquit (Ping timeout: 248 seconds)
09:29:29  * caridyjoined
09:32:24  * gskachkovquit (Ping timeout: 260 seconds)
09:32:32  * gskachkovjoined
09:36:16  * caridyquit (Ping timeout: 265 seconds)
09:51:57  * gskachkovquit (Quit: gskachkov)
09:56:03  * gskachkovjoined
10:00:21  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:06:14  * AtumTjoined
10:36:39  * caridyjoined
10:40:48  * caridyquit (Ping timeout: 240 seconds)
11:01:50  * caridyjoined
11:06:26  * caridyquit (Ping timeout: 255 seconds)
11:11:40  * caridyjoined
11:16:26  * caridyquit (Ping timeout: 276 seconds)
11:25:11  * mylesborinsquit (Quit: farewell for now)
11:25:42  * mylesborinsjoined
12:18:29  * jwaldenquit (Quit: g'morning)
12:23:17  * caridyjoined
12:25:03  <jschoi>“Static semantic rules that depend upon substructure generally do not look into function definitions.” The `Contains` Static Semantic Rule is overridden by function/method definitions to hide most their grammatical symbols. Let’s say a proposal would add a new grammatical symbol. Let’s also say that it is also desired, for early-error purposes, to statically determine whether that symbol was contained even in
12:25:03  <jschoi>function definitions. In this case, would it be okay for the proposal to edit the `Contains` algorithms for function/method definitions, to add an exception for that new grammatical symbol? Or would doing so be somehow frowned upon?
12:27:12  <jschoi>Also, “should ‘Static Semantic Rule’ be capitalized? The algorithm convention section does so, but that informative note on Contains for method/function definitions does not capitalize it.
12:28:08  * caridyquit (Ping timeout: 256 seconds)
12:34:06  * jmdyckjoined
13:02:40  <jschoi>One more question: Is there a particular reason why `this`’s runtime semantics are isolated into a `ResolveThisBinding` abstract operation,
13:03:10  <jschoi>instead of being inlined into `this`’s section for runtime semantics?
13:03:29  <jschoi>Doesn’t look like `ResolveThisBinding` is used anywhere else.
13:25:41  <jmdyck>jschoi: re Contains: is there anything that would stop the containment-search for this new symbol?
13:34:27  <jmdyck>re capitalization: only the first 2 references use title-case, so you should probably use normal case.
13:35:48  * caridyjoined
13:40:35  * caridyquit (Ping timeout: 268 seconds)
13:41:02  <jmdyck>re ResolveThisBinding: for a while, it was called from more than one place, so having it separated out did make sense.
13:42:37  * caridyjoined
13:45:48  <jschoi>jmdyck: [capitalization, ResolveThisBinding] Thanks! [Contains] Yes, certain syntax structures would stop the containment search for this symbol (hypothetically call it `#`), which would be a new non-identifier that is lexically bound by those syntax structures.
13:45:51  <jschoi>I need to statically detect, for any given syntactic structure, whether the outer lexical context’s `#` is used anywhere within that syntactic structure, except where `#` is shadowed by an inner `#`-binding syntactic structure. I could use Contains directly, or I could create a new static semantic rule and not mess with Contains.
13:47:12  * caridyquit (Ping timeout: 260 seconds)
13:47:16  <jschoi>Background: This is for a proposed “smart pipe operator” `1 |> # + 3`, such that the `1` LHS is first evaluated, then its value is bound to `#` which is lexically scoped only within the RHS expression `# + 3`. The RHS is then evaluated `1 + 3`, and that value is the result of the operation.
13:48:56  <jschoi>ljharb wants a degenerate case, `1 |> 3`, to be statically invalid, because it’s useless (always evaluates to `3`) and almost certainly not what the developer intended.
13:49:57  <jmdyck>my guess would be, don't mess with Contains, but it'd be the editors' call.
13:50:58  <jschoi>This pipe operator is left associative, so that `5 |> # - 2 |> # - 3` is `(5 - 2) - 3)`. But in the current proposal, RHS-nested pipelines are also permitted, such as `5 |> (# - 2 |> - + 3)`; this is actually equivalent to the left-associative version.
13:51:18  <jschoi>…That last code was supposed to be `5 |> (# - 2 |> # - 3)`.
13:52:49  <jschoi>Anyways, they’re equivalent. The RHS-nested version is such that the `#` in `# - 2` refers to `# - 2`’s outer `#`, which will be `5`. This is because the `# - 2` in `# - 2 |> # - 3` is on the pipe operation’s LHS, whose `#` comes from its outer scope (the outer pipe operation).
13:53:01  <jschoi>Okay.
13:53:10  <jschoi>So I should make a new static semantic rule.
13:54:20  <jschoi>So I want `5 |> (# - 2 |> 3)` to *also* be an error, as a natural extrapolation of ljharb’s desired static rejection. It too is a degenerate case.
13:54:38  <jschoi>But I also would want it to work with inner functions.
13:55:17  <jschoi>5 |> function () { 3 } should also be a static error.
13:55:40  <jschoi>`5 |> function () { 3 }` also never uses the LHS value.
13:56:02  <jschoi>So I need to be able to make this new static semantic rule also be able to detect containment of `#` within function definitions.
13:56:37  <jschoi>I think this is actually quite simple, but I just want to know whether I should leave `Contains`’s algorithms for function definitions completely alone, even for this new symbol `#`.
13:57:28  <jschoi>I’ll go with No, and see how far I can get.
13:57:31  <jschoi>Thanks!
14:09:28  * bradleymeckjoined
14:31:04  * caridyjoined
14:35:10  * caridyquit (Ping timeout: 240 seconds)
14:45:22  * caridyjoined
14:45:55  <jmdyck>so `5 |> function () { # + 3 }` would be valid?
14:55:03  * bradleymeckquit (Quit: bradleymeck)
15:18:07  * bradleymeckjoined
15:48:08  * gskachkovquit (Ping timeout: 255 seconds)
15:50:58  <jschoi>Yes.
15:52:54  <jschoi>I’m currently making a separate “usesOuterTopic” static semantic rule with a special case for function/method definitions.
15:53:41  <jschoi>Where “topic” refers to the topic-reference symbol `#`.
16:53:41  * gskachkovjoined
16:57:22  * gskachkovquit (Client Quit)
17:06:30  * gskachkovjoined
17:07:15  * gskachkovquit (Client Quit)
17:09:52  * bradleymeckquit (Quit: bradleymeck)
17:28:26  <bterlson>jschoi: how does # work with nested pipelines?
17:28:49  <bterlson>async iteration is pulled btw, grats Domenic et. al. :)
17:31:59  * bradleymeckjoined
17:38:25  <jmdyck>cool
17:41:40  * gskachkovjoined
17:47:02  <bterlson>jmdyck: you are working on another editorial PR IIUC?
17:47:13  <jmdyck>yup
17:47:20  <bterlson>if I wait to snap until this afternoon will it be ready?
17:47:35  <jmdyck>should be ready in less than an hour
17:47:46  <bterlson>alright!
17:48:07  <bterlson>caridy: you ready to branch and cut an RC this afternoon? :-D
18:03:40  * bradleymeckquit (Quit: bradleymeck)
18:06:58  <jmdyck>bterlson: https://github.com/tc39/ecma262/pull/1101
18:13:54  <jmdyck>oh, and do you want me to pr the [[Get]] -> [[Getter]] change, or are you going to do that yourself?
18:14:35  <bterlson>I'll do it as part of the DO change if that's ok?
18:15:01  <jmdyck>whatever you like
18:15:57  <jmdyck>and i can review the DO change before you land it, if you like
18:16:10  <bterlson>sure
18:16:25  <bterlson>I mean if you've got bandwidth, the transformation is pretty mechanical....
18:16:37  <bterlson>a little bit of thought goes in to picking the right receiver symbol
18:19:44  * gskachkovquit (Quit: gskachkov)
18:28:58  * keith_millerjoined
18:30:06  * Jayfluxjoined
18:30:06  * Jayfluxquit (Changing host)
18:30:06  * Jayfluxjoined
18:30:57  * gskachkovjoined
18:33:31  <caridy>yes, we can do it today @bterlson
18:37:17  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:43:52  <jschoi>bterlson: I assume you mean nesting on the RHS side like `4 |> (# - 3 |> # - 2)`, instead of the typical left-associative `(4 |> # - 3) |> # - 2`. Both work, because of the nested lexical contexts for each body on the RHS, although using RHS-nested pipelines might generally be bad style.
18:44:16  <jschoi>Because `4 |> (# - 3 |> # - 2)` is a pipeline, its head `4` is first evaluated. Then a new inner lexical environment created for its body `# - 3 |> # - 2`, in which `#` is bound to its head value 4. Then that body is evaluated in that inner environment.
18:44:46  <bterlson>is that second # going to be 4 or 3?
18:44:53  <jschoi>We’re now evaluating `# - 3 |> # - 2`. Because that body is also a pipeline, its own head is evaluated first. `# - 3` evaluates to 4 - 3 → 2. Then a second new inner lexical environment is created for the inner pipeline’s body `# - 4`, in which `#` is bound to the inner pipeline’s head value 1. Then `# - 2` is evaluated in that second inner environment: 1 - 2 → -1.
18:45:27  <bterlson>oh
18:45:39  <bterlson>I see
18:45:50  <jschoi>👍🏻👍🏻
18:47:03  * keith_millerjoined
18:47:38  <jschoi>Note also that this is the same end result as the left-associative version `(4 |> # - 3) |> # - 2`.
18:48:22  <jschoi>My draft specs the grammar with left recursion. But the operation technically has the associative property.
18:55:50  <jschoi>The left-associative version is obviously simpler to evaluate: `4 | > # - 3` first, then `1 |> # - 2`, with two separate and un-nested inner lexical scopes (`# - 3`) and (`# - 2`) rather than two nested inner lexical scopes. But it still evaluates to -1.
18:58:28  <jschoi>Also, is there a particular distinction in the way the spec uses the phrases “lexical context”, “environment”, and “scope”?
19:04:58  * srl295joined
19:06:28  * bradleymeckjoined
19:25:57  * Jayfluxquit (Ping timeout: 240 seconds)
19:28:05  * bradleymeckquit (Quit: bradleymeck)
19:30:24  * bradleymeckjoined
19:41:23  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:44:20  * bradleymeckquit (Read error: Connection reset by peer)
19:44:43  * bradleymeckjoined
19:46:20  * keith_millerjoined
19:47:10  * Jayfluxjoined
19:55:08  * Jayfluxquit (Ping timeout: 276 seconds)
19:59:18  * bradleymeckquit (Quit: bradleymeck)
20:14:16  * Jayfluxjoined
20:14:16  * Jayfluxquit (Changing host)
20:14:16  * Jayfluxjoined
20:29:21  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:31:28  * keith_millerjoined
20:33:33  * vikashjoined
20:52:35  * vikash-afkjoined
20:56:21  * vikashpart
21:00:29  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:00:42  * bradleymeckjoined
21:03:09  * keith_millerjoined
21:07:04  * Jayfluxquit (Quit: Leaving)
21:08:09  * bradleymeckquit (Ping timeout: 264 seconds)
21:14:31  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:05:07  * caridyquit (Remote host closed the connection)
22:05:42  * caridyjoined
22:20:25  * keith_millerjoined
22:36:35  * Jayfluxjoined
22:36:35  * Jayfluxquit (Changing host)
22:36:35  * Jayfluxjoined
22:50:11  * jwaldenjoined
23:05:30  <bterlson>caridy: master is now es2019, you got your branches and such all set up?
23:05:46  <bterlson>caridy: just waiting on travis, though it looks like all my commits today are stuck in the backlog :(
23:06:32  <bterlson>possibly this 30 minute test262 job is to blame? https://travis-ci.org/tc39/test262 /cc leobalter rwaldron
23:06:55  <rwaldron>lol
23:07:19  <bterlson>I could see them giving one bot per github org
23:07:30  <rwaldron>I'm going to cancel that
23:08:05  <rwaldron>All set
23:08:28  <bterlson>and indeed my builds are starting now
23:08:32  <bterlson>iiiinteresting
23:08:37  <bterlson>good to know for future reference
23:11:06  <bterlson>rwaldron: gah it's alternating between mine and test262. Will this next one take 30m too? :)
23:11:34  <rwaldron>I shall cancel them all!
23:12:32  <bterlson>are there any you care about or can I cancel all builds for t262 for th enext few minutes?
23:12:51  <rwaldron>No, we've actually been running them locally, linting etc
23:12:57  <rwaldron>We were sitting side by side
23:13:07  <bterlson>rwaldron: ahh alright, I'll cancel them then
23:13:10  <rwaldron>A lot of mac book pro fans are blowing right now
23:14:22  <rwaldron>bterlson you may cancel any test262 jobs that get in the way
23:14:52  <rwaldron>Also, we just used jsvu for installing all the engines and it was basically like being a god
23:15:20  <bterlson>mathiasbynens: ^ :-D
23:15:48  <rwaldron>Yeah, we are dumping all of our "built from source" binaries
23:16:34  <rwaldron>good night!
23:39:20  * AtumTquit (Remote host closed the connection)