13:47
<ystartsev>
heads up everyone, notes go up tomorrow
13:47
<ystartsev>
please make sure you reviewed them
15:35
<shu>
akirose: bterlson: MylesBorins: do any of you know how i get write access to the TC39 calendar?
15:37
<MylesBorins>
I don
15:37
<MylesBorins>
't
15:37
<MylesBorins>
but can ping chairs
15:50
<shu>
ty
16:30
<ystartsev>
shu: i will give it to you
17:06
<shu>
ystartsev: littledan: MylesBorins: i'll try to write up a document laying out participation expectations of champion group, core stakeholders, and non-core stakeholders for these calls
17:06
<MylesBorins>
thanks
17:06
<shu>
for us to iterate on, that is
17:07
<littledan>
good idea
17:07
<littledan>
maybe in the how-we-work repo?
17:07
<shu>
+1
17:07
<MylesBorins>
I think perhaps the problem with how I expressed it was more "lets prioritize based on blockers" not "if this isn't brought up y'all can't say anything later
17:08
<MylesBorins>
but I'm happy to augment my approach or thinking on these calls if that framing is not productive
17:10
<ystartsev>
greeat
17:21
<ystartsev>
great first meeting by the way. Some more concrete feedback from my side: This is just a brain dump of what i was thinking, you can decide if this is realistic or not. Some "structures" i could see making this really useful are the following "types":
17:21
<ystartsev>
type 1: introduce major changes to the proposal or a new proposal for people to chew on (resource: readme / presentation with usecases and problems solved; expectation: clarifying questions, discussion points identified for new issues, follow on meeting expected),
17:21
<ystartsev>
type 2: walk through a small set of issues for deep discussion (resources: the set of issues, max 3? max 1?; expectation: feedback per issue / questions and clarifications, follow on meeting expected),
17:21
<ystartsev>
type 3: identify blockers (follow up meeting after a first meeting, resource: meeting notes + readme, expectation: deep discussion on identified blockers or issues, follow on meeting on this topic not expected),
17:21
<ystartsev>
type 4: open "lets just talk about whatever comes to mind" (resource: the problem statement; expectation: whatever, no follow on expected).
17:21
<ystartsev>
My preference would be to focus on one of these, and let stake holders know what is expected (read the explainer plus these issues) so that we don't rehash stuff. Also we should be careful about getting sidetracked -- for example the options bag discussion i think was something that could have been moved to a different forum.
17:22
<littledan>
I feel like we really didn't do a good job of laying things out in a clear way. I regret the use of everyone's time.
17:23
<ystartsev>
nah its fine, it was very similar to committee in a way
17:23
<ystartsev>
plus this is a learning experience, i am really glad we are doing this
17:23
<littledan>
I'd like to cycle through everyone else's topics before we get back to module attributes
17:23
<ystartsev>
being the first is pretty hard
17:50
<shu>
ystartsev: very good feedback, i'll try to incorporate them in the document
17:56
<littledan>
I do think the original format of doing multiple topics would be best. That's what I've found in outreach group calls
17:56
<littledan>
Half an hour or 40 minutes could be spent on one "main" topic, with 10-20 minutes on some other topics
17:57
<littledan>
so those topics where less time is spent may be more of "type 1" and the longer deep dive might be "type 2" for example
17:57
<littledan>
the agenda can include links to supporting resources for people to prepare, as well as timeboxes
17:58
<littledan>
I think module attributes needed something of "type 2", but our presentation style was sort of mixed between 1, 2 and 3
18:02
<shu>
in general i want the guiding question to always be "would this discussion result in a more polished proposal for committee consideration at large?"
18:08
<littledan>
hmm, in that case, maybe we should focus on earlier stage proposals
18:08
<littledan>
module attributes is more in need of debating things out somehow than polishing
18:10
<littledan>
people have several kinds of disagreements about what the goals shoudl be of things which involve module loading
18:12
<shu>
littledan: i wouldn't categorically exclude existential disagreements from incubator calls, especially if it's new
18:12
<shu>
but otherwise i agree, re-raising an existential disagreement is usually not going to be worked through in ~30-40 mins
18:13
<littledan>
no, I definitely don't want to exclude any concerns people have
18:13
<littledan>
I'm just thinking, what are the proposals which would benefit from this sort of polishing format
18:13
<shu>
ah
18:14
<shu>
thinking on it now, existential disagreements are great to surface, and i hope at the end of the call there is no misunderstanding on what the disagreement is
18:14
<shu>
i hope to better understand realms in exactly this way, for instance
18:20
<littledan>
yes, I think it'll be a valuable discussion. At the same time, I've worked for a while with the Realms champions to polish Realms, and I doubt that "more polish" will come out of the discussion.
18:21
<littledan>
and that's after they have spent years refining the proposal, of course
18:21
<shu>
i see what you mean, fair enough
18:21
<littledan>
within the call, we might give guidance to some champion groups about what kinds of polish they should work on before presenting; that's just not the case with these groups
20:34
<keith_miller>
Am I crazy or is there no apparent reason why iteratorClose checks that the iterator.return function returns an Object?
20:47
<shu>
you had me at "iteratorClose"
20:48
<shu>
but let me see
20:55
<shu>
keith_miller: https://github.com/tc39/notes/blob/master/meetings/2014-06/jun-5.md#closing-iterators and https://github.com/tc39/notes/blob/master/meetings/2014-06/closing-iterators.pdf
20:56
<shu>
keith_miller: dherman's slide deck suggests the object return type is mainly for symmetry with all other iterator methods
20:56
<shu>
and i suppose no one objected?
20:56
<keith_miller>
weird
20:56
<keith_miller>
ok, w/e
20:57
<keith_miller>
Seems like that just adds a ergonomics overhead unnecessarily
21:00
<shu>
actually how do you even get out the final iteration result
21:03
<ljharb>
keith_miller: iterator return seems like an unnecessary overhead overall ¯\_(ツ)_/¯
21:04
<keith_miller>
ljharb: True, for-of is so complicated that it completely blows out all our inlining heuristics...
21:04
<keith_miller>
So, we never inline anything that has a for-of loop
21:05
<shu>
dherman's slides also have the original motivation: async
21:05
<shu>
it concedes return for sync iterators seem not useful
21:05
<ljharb>
keith_miller: would it also be true to say you don't optimize them either?
21:06
<shu>
but now i'm just kind of confused how you even observe the returned object in iterator return
21:06
<keith_miller>
no, they're optimized just they're too big to inline into another function so you'll always make a call to them
21:06
<ljharb>
keith_miller: ah k
21:06
<shu>
at least when called as part of an abrupt completion in a loop
21:06
<keith_miller>
I guess you could say they're not optimized in that we won't infer things for the caller into the for-of loop but that's true for anything we don't inline
21:06
<ljharb>
gotcha
21:07
<keith_miller>
shu: You don't other than to ensure it's an object lol
21:07
<shu>
that is a dumdum
21:07
<keith_miller>
AFAICT, I could have missed something
21:07
<shu>
i implemented this too long ago now i don't really remember
21:08
<shu>
but i do remember being generally confused why it's there
21:08
<shu>
and how complicated it makes bytecode generation
21:08
<shu>
like, implicit try-finally around all iterator-protocol iterations, including destructuring
21:08
<shu>
kinda gross
21:16
<devsnek>
i really appreciate the existence of "closing-iterators.pdf"
21:17
<shu>
yes, especially after i recently found out that the link to one of my circa 2016 google sheets presentation is dead
21:17
<shu>
maybe i should export to pdf for the agenda/notes repos in the future
21:18
<ljharb>
that seems like a good idea in general
21:18
<ljharb>
we could probably build a bot to scrape all the slides links after every meeting
21:18
<shu>
it's possible that that sheets presentation was hosted on my old grandfathered, free gsuite instance
21:18
<shu>
and that's why it's gone
21:18
<devsnek>
speaking of bots
21:18
<devsnek>
i wanted to set up a thing that opens an issue in my engine262 repo every time someone pushes to ecma262
21:19
<devsnek>
but that might require setting up a webhook in ecma262
21:19
<devsnek>
which seems nasty
21:19
<ljharb>
it would, but that's not a huge deal
21:19
<ljharb>
for a known implementation
21:31
<Bakkot>
or just having a script somewhere which checks the most recent commit every five minutes or whatever
21:31
<devsnek>
maybe
21:31
<ljharb>
polling works absent a webhook, true
21:31
<shu>
yeah the directionality seems wrong, feels weird to have the specs do the pushing
21:31
<devsnek>
i know gh actions can do cronjob syntax
21:32
<devsnek>
i'm not entirely sure where to store "latest commit processed"
21:32
<ljharb>
true, i use one to automatically keep forks up to date
21:32
<ljharb>
devsnek: make a git submodule, and use its sha as that marker
21:33
<devsnek>
hm maybe this https://help.github.com/en/actions/configuring-and-managing-workflows/persisting-workflow-data-using-artifacts
21:33
<devsnek>
i'll into this more after i finish rewriting the parser
21:34
<Bakkot>
you can also just roll a gcp or aws instance. I have two or three scrapers running like this and they collectively cost me something like $5/yr, I think