00:16:00  <aklein>dherman, cloudshu: thanks!
00:16:26  <cloudshu>aklein: i wasn't very successful :)
00:32:25  * rbucktonquit (Ping timeout: 260 seconds)
00:50:14  * bradleymeckjoined
01:05:38  * bradleymeckquit (Quit: bradleymeck)
02:26:30  <Domenic>I still haven't seen a good LINQ-style lazy iterator library
02:27:15  <Domenic>where e.g. lazy(iter).map(f).filter(g).reduce(h) creates an iterator where looping over it performs f-g-h in a single loop, instead of three passes
03:36:20  * gskachkov_joined
03:40:50  * gskachkov_quit (Client Quit)
03:45:51  <ljharb>doesn't lodash do that with its chaining stuff?
03:55:59  * jmdyckquit (Quit: Leaving.)
03:58:19  * bradleymeckjoined
04:02:02  * bradleymeckquit (Client Quit)
05:10:05  * tcarequit (Quit: Connection closed for inactivity)
06:20:55  * brabjoined
06:27:03  * gskachkov_joined
06:55:25  * gcommerquit (Ping timeout: 260 seconds)
06:56:09  * gcommerjoined
07:33:08  * gskachkov_quit (Quit: gskachkov_)
07:33:57  * gskachkov_joined
07:35:43  * gskachkov_quit (Client Quit)
07:40:55  * gskachkov_joined
07:45:49  * gskachkov_quit (Quit: gskachkov_)
07:59:02  * gskachkov_joined
07:59:50  * gskachkov_quit (Client Quit)
08:14:51  * Havvyquit (Remote host closed the connection)
08:15:15  * Havvyjoined
08:23:45  * gskachkov_joined
08:24:45  * gskachkov_quit (Client Quit)
08:37:06  * gskachkov_joined
08:38:53  * not-an-aardvarkquit (Quit: Connection closed for inactivity)
08:38:56  * gskachkov_quit (Client Quit)
09:11:30  * M-IvanSanchezquit (Read error: Connection reset by peer)
09:13:36  * M-IvanSanchezjoined
09:35:13  * gskachkov_joined
10:07:09  * gskachkov_quit (Quit: gskachkov_)
10:25:10  * mylesborinsquit (Quit: farewell for now)
10:25:40  * mylesborinsjoined
10:26:13  * gskachkov_joined
10:27:53  * gskachkov_quit (Client Quit)
10:34:38  * gskachkov_joined
10:39:18  * gskachkov_quit (Client Quit)
10:55:30  * gskachkov_joined
11:03:50  * jmdyckjoined
11:06:57  * gskachkov_quit (Quit: gskachkov_)
11:11:14  * gskachkov_joined
11:42:17  * gskachkov_quit (Quit: gskachkov_)
11:56:25  * brabquit (Quit: ERC (IRC client for Emacs 25.2.1))
12:26:55  * gskachkov_joined
12:36:20  * gskachkov_quit (Quit: gskachkov_)
12:37:47  * gskachkov_joined
12:51:21  * gskachkov_quit (Quit: gskachkov_)
12:54:00  * gskachkov_joined
13:26:27  * gskachkov_quit (Quit: gskachkov_)
13:28:48  <annevk>leobalter: do we have SAB tests? Do we have tests for the [[CanBlock]] bit on agents?
13:29:59  * gskachkov_joined
13:38:39  * gskachkov_quit (Quit: gskachkov_)
13:45:50  * gskachkov_joined
13:46:58  * gskachkov_quit (Client Quit)
13:50:52  * gskachkov_joined
14:00:33  * gskachkov_quit (Quit: gskachkov_)
14:02:12  * gskachkov_joined
14:04:24  * gskachkov_quit (Client Quit)
14:40:09  * Fishrock123joined
14:42:03  * bradleymeckjoined
14:59:03  * bradleymeckquit (Quit: bradleymeck)
15:45:15  * bradleymeckjoined
16:17:51  * gskachkov_joined
16:18:05  <bradleymeck>my brain my not be awake yet, but I don't see the Promise state adoption w/o enqueueing a new job in https://tc39.github.io/ecma262/#sec-promise-resolve-functions ? I know it was a big part of the A+ stuff but wasn't around for spec adoption
16:18:16  <bradleymeck>anyone know if that was just an oversight?
16:18:21  <bradleymeck>or was it talked about?
17:24:11  * tcarejoined
17:28:22  * bradleymeckquit (Quit: bradleymeck)
17:28:30  <leobalter>annevk: we do have SAB tests. I need to check on the CanBlock, maybe cloudshu has a quick answer
17:28:33  <leobalter>let me check
17:29:42  <cloudshu>annevk: leobalter: i don't recall any tests for [[CanBlock]]
17:29:56  <leobalter>me neither
17:30:48  <leobalter>and `git grep -i CanBlock` is not returning anything
17:35:30  <annevk>That would be good to test, web has 3 globals that want it false, 2 for true
17:36:07  <annevk>We can also write tests I suppose, never quite sure what is best
17:36:09  <leobalter>which reminds me: how can we determine the value for CanBlock in test262. For what I'm seeing in the tests for Atomics.wait, we need to rely in agent with a [[CanBlock]] == true
17:36:47  <leobalter>annevk: Atomics.wait is the observable place for test CanBlock, I believe.
17:36:56  <annevk>Nothing ends up throwing? I have not studied this much
17:37:03  <leobalter>let me check
17:37:12  * bradleymeckjoined
17:37:31  * gskachkov_quit (Quit: gskachkov_)
17:37:40  <annevk>And when I say globals I mean agents
17:38:11  <annevk>How do you test multiple agents? Those are host-supplied somehow again?
17:38:12  <leobalter>we have a $262.agent api abstraction
17:38:57  <leobalter>and we don't have any tests for Atomics.wait throwing when [[CanBlock]] is not true
17:39:22  <leobalter>https://tc39.github.io/ecma262/#sec-atomics.wait steps 6, 7
17:39:35  <annevk>Is CanBlock all a host needs to determine btw?
17:39:52  <annevk>Other fields did not seem applicable
17:54:27  <Domenic>annevk: leobalter: I am pretty sure we'll need to write the tests ourselves instead of in test262; test262 doesn't have the infrastructure for differentiating between window/worker/serviceworker/worklet/...
17:54:43  <Domenic>And people might argue that it shouldn't have such infrastructure as they're web-only concepts
17:55:13  <annevk>Domenic: yeah, but my impression is that test262 provides abstractions for this so user agents can fill in for the various forms
17:55:36  <annevk>Domenic: there's a similar thing for how detached ArrayBuffer is tested
17:55:47  <Domenic>I think it might aspire to, but nobody runs the tests in multiple globals
17:56:14  <annevk>Domenic: now whether everyone implements those hooks and does things properly etc. I don't know, but then folks also seem to ignore large swaths of web-platform-tests :/
17:56:16  <Domenic>In other words, the abstractions in place right now allow the host to supply one behave (e.g. "detach an array buffer") not multiple behaviors for multiple globals
17:56:57  <Domenic>Nobody runs test262 on multiple globals from what I understand. Maybe they should, but it seems easier to do this in WPT, which has good multi-global infrastructure in place.
17:57:35  * gskachkov_joined
17:58:39  * gskachkov_quit (Client Quit)
17:59:57  <annevk>They should run it in all the globals :/
18:00:19  <annevk>Which apparently is upwards of five
18:00:37  <annevk>All these Worklet subclasses are going to be the downfall
18:00:51  <leobalter>Domenic annevk: it's easy to the $262.agent abstraction to determine CanBlock in a very simple way, but consuming it holds the complexity
18:01:19  <annevk>leobalter: I don't understand that sentence
18:01:19  <leobalter>maybe we should mention the tests for Atomics.wait are relying in a CanBlock != false only agent
18:01:53  <leobalter>annevk: it's easy to create some $262.agent.canBlock(false) thing
18:01:57  <leobalter>for test262
18:02:20  <leobalter>how the runtimes will deal with that is where the whole complexity is
18:02:26  <annevk>Okay
18:02:55  <annevk>Domenic brings up some good points about coverage
18:03:14  <leobalter>adding this api I mentioned, it would be just about using it to create a test throwing a TypeError for a otherwise valid call on Atomics.wait
18:03:29  * cloudshuwill read backlog later
18:03:32  <cloudshu>can't right now
18:03:37  <annevk>We need tests to run in [maybe variants]Worklet*, ServiceWorker*, DedicatedWorker*, and SharedWorkerGlobalScope, and also Window
18:03:56  <annevk>And any kind of shared memory business needs to run in arbitrary combinations
18:04:42  <annevk>For instance Service* and SharedWorkerGlobalScope end up creating their own agent cluster
18:10:32  * bradleymeckquit (Quit: bradleymeck)
18:19:05  * bradleymeckjoined
18:19:46  * bradleymeckquit (Client Quit)
18:24:53  * gskachkov_joined
18:28:31  <annevk>To continue, I don't have good solutions, and I'd rather avoid writing all these things myself, I didn't add this to the platform and I'm already spending enough time on it as it is
18:44:08  * gskachkov_quit (Quit: gskachkov_)
18:44:34  * gskachkov_joined
19:12:33  * gskachkov_quit (Quit: gskachkov_)
19:14:29  * gskachkov_joined
19:22:25  * Fishrock123quit (Remote host closed the connection)
19:29:18  * Fishrock123joined
20:15:06  <aklein>annevk: it seems like there are two things you want to test
20:15:38  <aklein>on the test262 side, test that when [[CanBlock]] is false, whatever is supposed to happen happens (if that's actually visible from ES)
20:15:52  <aklein>on the WPT side, test that each of the globals behaves as expected
20:16:17  <aklein>that is, it's not test262's job to make sure that a given user-agent's ServiceWorkerGlobalScope is set up properly
20:16:30  <aklein>cloudshu: ^^ when you return
20:25:41  * gskachkov_quit (Quit: gskachkov_)
20:26:17  * gskachkov_joined
21:00:31  * gskachkov_quit (Quit: gskachkov_)
21:23:04  * not-an-aardvarkjoined
22:01:02  <cloudshu>Domenic: annevk: i agree with aklein here. similar to what Domenic said, i think it's outside of test262 purview to test web globals behave certain ways -- and in practice nobody's going to run it that way even if we do somehow check in tests that test web globals
22:02:04  <cloudshu>as for testing [[CanBlock]] itself, there's the easy case of having Atomics.wait throw
22:02:10  <cloudshu>testing 8.9 Forward Progress is probably... good luck
22:02:50  <cloudshu>aklein: that's the only case of [[CanBlock]] being visible, i think, if your agent can't block, wait throws
22:03:42  <aklein>cloudshu: ah, sounds good. I think someone may have already mentioned Atomics.wait above (I actually have very few of the details of SAB in my head)
22:03:56  <cloudshu>annevk: as for your concern of actual tests, i think the test262 test would leave you unsatisfied, since you really want the web global tests
22:04:43  <cloudshu>annevk: i don't know who's best to do that, i don't know much about WPT. someone at Bocoup who's working on WPT maybe (i think lyza is)? ^leobalter
22:25:56  <leobalter>cloudshu annevk: Lyza was workign on WPT w/ Mozilla.
22:26:02  <leobalter>aklein: that's accurate
22:26:47  <leobalter>I'll contact Lyza and the team here working on WPT
23:33:48  * Fishrock123quit (Remote host closed the connection)