10:20
<Michael Ficarra>
FYI a student will be opening some PRs and issues related to https://github.com/tontonialberto/ecma262-spec-inconsistencies
12:24
<jmdyck>
They don't seem to be aware that there are semantically different uses for [[Foo]] notation.
12:39
<jmdyck>
or that objects don't have 'fields'.
12:52
<Michael Ficarra>
yes I spoke to him about that already
12:52
<Michael Ficarra>
he won't be opening a PR for that
12:53
<jmdyck>
the if/else stuff is valid, but he's missing some variations.
12:58
<Michael Ficarra>
those are the only ones he's interested in
12:58
<Michael Ficarra>
I also got a question today about what the repeat-until step's semantics should be https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-bigintbitwiseop
12:59
<Michael Ficarra>
does it imply that the steps should be executed at least once?
12:59
<Michael Ficarra>
like a do-while with a negated condition
13:00
<Michael Ficarra>
by this, I mean ones that have the consequent/alternative on the same line as the if/else/else-if
13:01
<jmdyck>
CreateIntrinsics step 2 is indeed problematic, but I don't think it can be broken into a series of more-parseable steps.
13:02
<Michael Ficarra>
yeah I don't think it needs to be broken down, but its phrasing can probably be modernised
13:03
<Michael Ficarra>
and probably it would be better to explicitly loop over table rows
13:04
<jmdyck>
My inclination is that step 2 should become its own section, where you can at least let things breathe in separate paragraphs, lists.
13:05
<Michael Ficarra>
once he opens the issue about it, we can dump our ideas in there and I'll label it as "editor call"
13:05
<Michael Ficarra>
I think he was hoping that our changes to that step could get esmeta to automatically understand it, but I don't see that happening
13:06
<jmdyck>
The thing about explicitly looping over table rows is you can't make a single pass over the table and completely create an object at each iteration, because there are cycles in the references.
13:07
<Michael Ficarra>
ah, right
13:07
<Michael Ficarra>
you'd have to topo-sort the table, which is... not great if you want to peruse the table manually
13:28
<jmdyck>
You could conceivably do 2 passes, one pass to partially create the objects (without any references), then another pass to add the references (properties + [[Prototype]]). Then you wouldn't need a topo-sort. However, the spec says that built-in functions are created with CreateBuiltinFunction, which takes a prototype arg. So if you want to respect that, you have to do a topo-sort on [[Prototype]].
13:29
<jmdyck>
The table wouldn't have to be topo-sorted in the source, CreateIntrinsics can just say to sort it, which is basically what it does now.
13:29
<jmdyck>
"The creation of the intrinsics and their properties must be ordered to avoid any dependencies upon objects that have not yet been created."
13:30
<jmdyck>
However, the implications of that sentence aren't obvious.
13:38
<jmdyck>
But even if that part of the algorithm were made more explicit, esmeta would probably still need one-off stuff to parse it.
13:43
<Michael Ficarra>
this isn't a KAIST student btw
13:45
<jmdyck>

And that'd still leave the ~half of step 2 that talks about how you invoke CreateBuiltinFunction. I suppose you could do something like:
If the intrinsic to be created is a built-in function, then

  • Let steps be the definition of that function provided by this specification.
  • Let length be the initial value of the function's "length" property.
  • [etc]
  • Let intrinsic be CreateBuiltinFunction(steps, length, ...).
  • Set ... to intrinsic.
13:46
<jmdyck>
That would at least be more readable to humans.
13:48
<Michael Ficarra>
yeah that's exactly what I was thinking
13:52
<jmdyck>
Hm. So now I'm now more optimistic about breaking step 2 into substeps, but (a) they're not necessarily more parseable, and (b) it's not trivial.
17:56
<shu>
so for the week of july 7, we need a new time on either monday or friday
17:56
<shu>
my tue-thu literally have no free time
17:57
<shu>
Michael Ficarra: bakkot slots that work for you?
17:57
<bakkot>
after noon either day is currently free for me
18:04
<jmdyck>
Michael Ficarra: will there be videos of PLSS talks?
21:34
<bakkot>
jmdyck: https://www.youtube.com/live/r4imci31ntw?t=12168s
21:34
<bakkot>
unless you meant something else
21:39
<jmdyck>
That's PLDI, I was asking about PLSS this Friday. Some overlap in talks though.
21:39
<bakkot>
oh, sorry, I stopped reading after the first two letters apparently
21:40
<jmdyck>
heh
21:43
<jmdyck>
or I guess more specifically it was RPLS @ PLDI (vs PLSS @ ECOOP)
21:48
<Michael Ficarra>
I was asked for permission to record, so I guess that implies they will be recorded
21:48
<Michael Ficarra>
though my talk and Jihyeok's talk should be the same as RPLS
21:48
<Michael Ficarra>
or at least very very close
21:49
<jmdyck>
cool, thx
21:52
<Michael Ficarra>
you're gonna have to do before noon if we want to include Linus from now on (or move East)
21:52
<Michael Ficarra>
how about 11:30A Mountain?
21:54
<bakkot>
I was assuming we were just talking about the week of July 7
21:54
<bakkot>
not a permanent slot
22:34
<shu>
think about a permanent slot too
22:34
<shu>
my tue-thu are completely full for the foreseeable future