00:02
<Domenic>
shu: you are in for a treat. https://github.com/whatwg/wattsi/blob/46f60c90509a7d0dd898eda234095629012c69bb/src/wattsi.pas#L310
00:03
<shu>
can't tell if this is cursed "Wattsi is written in Free Pascal"
00:04
<shu>
anyway thanks! should be fun reading
00:16
<leobalter>
the free pascal got me concerned too early as I'm now glad that html-build just do the tricks without me worrying about it if I use docker. Even though, my concern is only out of ignorance on something not popular that exists since forever.
00:35
<Domenic>
Nobody is exactly ecstatic about the Free Pascal situation :). However the performance requirements of the HTML spec mean that our choices are basically in the C++/Rust/Swift family. (Maybe Go too; probably a GC is not that bad.) Apparently FreePascal is in that family and is Hixie's favorite language, so here we are.
00:35
<Domenic>
I am not sure if rewriting in Rust would actually improve comprehensibility enough to be worth anything.
00:55
<MikeSmith>
shu: the data that associates anchors in the HTML spec with particular MDN articles is at https://github.com/w3c/mdn-spec-links/blob/master/html.json
00:56
<MikeSmith>
the top-level keys are the spec anchors/IDs
00:56
<MikeSmith>
Bikeshed and Respec spec all use data from that same repo
00:57
<MikeSmith>
and one day we will also have MDN links in the ES spec, because we already have all the data needed
00:57
<MikeSmith>
https://github.com/w3c/mdn-spec-links/blob/master/ecmascript.json
00:58
<MikeSmith>
and for the ECMA-402 spec, and even for 10+ TC39 proposals
00:58
<MikeSmith>
for the JavaScript features the spec URLs are in the data in the https://github.com/mdn/browser-compat-data/tree/master/javascript tree
01:00
<MikeSmith>
but for all non-JavaScript features/specs (e.g., the HTML spec) the spec-URL data is regularly (re)generated by a script I run that scrapes all the MDN articles and extracts the spec URL from the Specifications sections/tables of the MDN articles
01:06
<shu>
MikeSmith: i'm calling it for the day, but speaking as an ecma262 editor, MDN linking would definitely be great for ecma262
01:06
<shu>
let's chat more about that later
01:06
<MikeSmith>
yup
01:16
<leobalter>
Domenic: I'm definitely not advocating changes for something that just works. The little I know about wattsi, I don't see any fair reason to rewrite it. Using html-build I get what I want, it's sufficient for me so far.
01:17
<leobalter>
MikeSmith: I'm glad to know you have what you need for ECMA-402, but please let me know if there is anything else I can help
01:23
<MikeSmith>
Hi leobalter
01:24
<leobalter>
hi!
01:24
<MikeSmith>
great to see you hear and it’s also been great to see you getting involved with the web-components work
01:25
<MikeSmith>
about what we need for MDN annos and ECMA-402, it’s the same as for the ES spec itself and I think for the proposals too
01:25
<MikeSmith>
by which I mean, I think they are all published using the same build tool
01:26
<MikeSmith>
so it’s a matter of adding support to that common build tool
01:26
<MikeSmith>
and for that I think maybe some of the same code from Respec could maybe be reused
01:27
<MikeSmith>
the current Respec main maintainer is really savvy about JavaScript coding for this kind of thing
01:27
<MikeSmith>
I think he even actually has some of the source in TypeScript
02:02
<leobalter>
I'll sync this with the ECMA-262 as the build process is basically the same. For now, let me also ping Bakkot ^^
02:49
<EveryOS>
The WhatWG HTML docs are so long, the inlined table of contents does not fit on my monitor :/ https://usercontent.irccloud-cdn.com/file/VI4Lhpkv/image.png
04:44
<annevk>
Well, it took several months, but one IANA registration is updated now: https://www.iana.org/assignments/media-types/application/x-www-form-urlencoded
04:45
<annevk>
Not sure we’ll be done by 2022 at this rate
05:13
<MikeSmith>
annevk: are the other pending ones from the URL spec?
05:16
<MikeSmith>
I am looking for recent issue where Julian Reschke commented
05:17
<MikeSmith>
I don’t understand why github doesn’t provide an easy way to browse all comments somebody has made
05:18
<MikeSmith>
having that would make it much easier to find issue discussions when you can’t remember what issue tracker they happened to be in
05:22
<MikeSmith>
finally found it
05:22
<MikeSmith>
https://github.com/whatwg/fetch/issues/1052
05:22
<MikeSmith>
Fetch
05:23
<MikeSmith>
(resorted to using Google search rather than trying to find it with Github’s own internal search/browsing)
05:25
<MikeSmith>
annevk: I think plh would have told me if, like the application/x-www-form-urlencoded had been, that registration were being held up due to IANA asking W3C about i
05:25
<MikeSmith>
*it
05:26
<MikeSmith>
but I’ll doublecheck with him
05:28
<MikeSmith>
but as far as any W3C relationship to it, it seems like if falls pretty much into the same criteria as the application/x-www-form-urlencoded case
05:30
<MikeSmith>
and in the W3C response in that case was basically to say, the relevant spec is completely a WHATWG spec and not in the WHATWG-W3C MoU, and so the WHATWG should have sole ownership of the registration
05:41
<MikeSmith>
annevk: pinged mnot about it the Access-Control registrations
05:46
<annevk>
MikeSmith: oh sorry, I haven't really initiated anything yet beyond the one that now succeeded
05:46
<annevk>
MikeSmith: it does seem that everything we have needs updating, including the stuff in HTML
07:22
annevk
notices the Reference column in https://www.iana.org/assignments/media-types/media-types.xhtml wasn't updated
07:23
<annevk>
Again, if they did this through Pull Requests that'd be easy to spot
09:55
<annevk>
MikeSmith: https://github.com/whatwg/html/pull/5545#discussion_r453546765 (opt into vs opt in to)
09:59
<annevk>
There are a quite a few hits for "opt into" on lists.whatwg.org
12:11
<MikeSmith>
annevk: I think it’s a judgement call but it should be styled consistently one way or the other
12:12
<annevk>
Yeah, if Domenic wants opt in to that'd be easy enough to align on
12:12
<annevk>
It reads a lil funny to me, but meh
12:12
<MikeSmith>
yeah I think Domenic’s rationale there for going with “opt in to...” is right
12:14
<MikeSmith>
well I like dashes so much that I might go so far as to always just do “opt-in to”
12:51
<Ms2ger>
Thought you'd go for "opt in-to"
12:54
<jgraham>
opt-in-to
14:48
<annevk>
opt out
14:52
<hober>
o-p-t- -i-n- -t-o
17:09
<annevk>
Domenic: what I don't want is specs adding event listeners for mouse events or some such or multiple specs adding event listeners to the same target
17:09
<annevk>
Domenic: event listeners just doesn't seem like the right kind of system for specs
17:09
<Domenic>
annevk: you'd rather they duplicate the event machinery?
17:09
<annevk>
Domenic: how would you even enforce ordering?
17:10
<Domenic>
annevk: the same way as for web-developer-added ones... first-added, first-fired.
17:10
<annevk>
Domenic: I'd rather they plug into the fundamental machinery, e.g., for mouse events, it seems wrong if a developer can trigger those algorithms with synthetic events
17:10
<annevk>
Domenic: how does that work across specifications?
17:10
<Domenic>
annevk: sure, if they don't want to react to developer-triggered events, then they definitely wouldn't use addEventListener
17:11
<Domenic>
But for cases like AbortSignal...
17:11
<annevk>
Domenic: again, https://dom.spec.whatwg.org/#action-versus-occurance is pretty important here
17:11
<Domenic>
annevk: whichever spec's step runs first...
17:11
<Domenic>
annevk: yes, I think specs can react to occurrences too
17:11
<Domenic>
annevk: such as, for example, something getting aborted
17:11
<annevk>
Domenic: AbortSignal doesn't run the user agent algorithm if you just dispatch an event
17:12
<annevk>
that's quite intentional
17:12
<Domenic>
annevk: that seems like a big bug
17:12
<annevk>
o_O
17:12
<annevk>
again, https://dom.spec.whatwg.org/#action-versus-occurance
17:12
<Domenic>
It seems like a big problem that .dispatchEvent("abort") and .abort() behave differently depending on who wrote the code
17:12
<Domenic>
annevk: again, treat specs like web developer code
17:12
<annevk>
abort() dispatches the event
17:12
<Domenic>
annevk: aborting is an occurence
17:12
<annevk>
it doesn't cause it to be dispatched
17:12
<annevk>
scratch that last sentence
17:13
<Domenic>
.dispatchEvent("abort") signals the occurrence of something being aborted
17:13
<Domenic>
It's bizarre to me that you'd want that to trigger user-defined "occurrence listeners" but not spec-defined ones.
17:13
<annevk>
it's a signal that such an action is happening, but it shouldn't cause the action
17:13
<Domenic>
Indeed, it doesn't cause any actions
17:13
<Domenic>
It just triggers event listeners
17:13
<Domenic>
Which are watching for the occurrence of aborting
17:14
<annevk>
yeah no, I guess we disagree on this
17:14
<Domenic>
It doesn't itself abort; it signals that a request for aborting is happening, which various watchers of that occurence listen for
17:14
<Domenic>
Some in specs, some in user code
17:14
<Domenic>
The fact that those diverge depending on how you signal the abort request is really bad
17:15
<annevk>
that's a pretty fundamental property of how events work everywhere
17:15
<Domenic>
I totally agree
17:15
<annevk>
a click on a link follows the link
17:15
<Domenic>
Oh, I misunderstood what you were calling a fundamental property
17:15
<annevk>
but the event doesn't necessarily cause that
17:15
<Domenic>
Clicking on a link triggers a mouse event which triggers mouse event listeners
17:16
<Domenic>
And clicking on a link also causes other things
17:16
<Domenic>
But an abort request occurring, or a message event occurring, is a signal that others are listening for to perform some actions, like cleanup, or message processing
17:16
<Domenic>
And those "others" should not be treated differently if they are UA code vs. web-dev code.
17:16
<Domenic>
They're both watching for an occurrence (abort request, or message)
17:17
<Domenic>
The action (abort request, message sending) has already happened
17:17
<annevk>
if it's a synthetic event the action might not have happened and maybe shouldn't happen though
17:18
<Domenic>
Sure, you can fake occurrences without a corresponding action
17:18
<Domenic>
But that doesn't mean that we shouldn't react to the fake occurence
17:18
<annevk>
the way the abort() action is tied to rejecting fetch()'s promise is through signal reactions (forgot what it's called)
17:18
<Domenic>
Otherwise you're blurring the action/occurrence distinction
17:18
<Domenic>
And saying some occurrences are more real than others
17:19
<Domenic>
responding to a message occurrence shouldn't depend on how that occurrence happened
17:19
<annevk>
well yes, abort() is a thing, and dispatchEvent() is not a thing
17:19
<Domenic>
I don't understand how dispatchEvent() is not a thing
17:19
<annevk>
that's what the action vs occurrence section is about
17:19
<Domenic>
Stated another way: how does author code get access to figure out if an abort request is "real"?
17:20
<Domenic>
Since you've decided that only some abort occurrences represent actions now
17:20
<Domenic>
And occurrence-handlers should apparently only react to "real" occurrences
17:23
<annevk>
I'm not sure where the mismatch comes from, but there's a reason dispatchEvent() returns a boolean, to allow the action to take different paths. If the event itself triggers the action you get a very different system
17:24
<Domenic>
The event doesn't trigger the action. There is no action when you just dispatch an event
17:24
<Domenic>
The issue is why should occurrence-handlers care about the action?
17:25
<Domenic>
An abort has occurred. That's what dispatchEvent("abort") signals
17:25
<Domenic>
s/abort/abort request/
17:25
<Domenic>
When an abort is requested, i.e. when an abort request occurs, we run some cleanup steps
17:26
<Domenic>
Again, let's say I am writing a promise-returning setTimeout that takes an AbortSignal. I listen for abort request occurrences using addEventListener("abort", ...). But you're telling me now that doing that violates action-vs.-occurrence because those are not real occurrences.
17:26
<Domenic>
How am I supposed to code that function?
17:27
<Domenic>
I think this notion that some occurrences are not real and should be ignored is violating action-occurrence separation
17:37
<annevk>
Something else, IANA lists us as https://www.whatwg.org/ now on https://www.iana.org/assignments/media-types; I tried; they started with http://www.whatwg.org/
17:40
<Domenic>
Interesting; do they have some www policy?
17:41
<annevk>
They did not say. I mentioned avoiding redirects and secure connections when I suggested the actual URL and they just got back to me with a different one
17:41
<annevk>
And since that thread was already a dozen emails in for a single MIME type I kinda want to leave it at that 🙂
17:43
<annevk>
17 emails, 3 from me
18:00
<Domenic>
link?
18:01
<annevk>
It's all private...
18:01
<annevk>
I can forward later
18:01
<Domenic>
Eh just idly curious
18:04
<annevk>
Reportedly there'll be a better process for headers soonish so I suggest we wait with registering those
18:52
<EveryOS>
When I joined IRC, I had felt like I recognized your names from somewhere, and now I figured it out. Ya'll maintain https://wpt.live/tools/runner/index.html/
18:56
<Domenic>
Well, a lot of us contribute to https://github.com/web-platform-tests/wpt, although I don't know about that page in particular.
18:58
<EveryOS>
Ah, ok. Anyways, that page will (eventually) be some use for me.
19:05
<annevk>
Domenic: you wrote Otherwise, rather than Otherwise:
19:05
<Domenic>
Hmm, staring at too many other specs today I guess
19:06
<annevk>
I should also stop, but I do think it's good now modulo that
19:06
<Domenic>
Awesome
19:06
<Domenic>
I'm not sure I want to merge until I get the tests updated for the getter rename
19:06
<Domenic>
Which might be a bit annoying since then Chromium will lose a bunch of test coverage until we rename
19:06
<Domenic>
So no rush
19:07
<annevk>
Okay, let me know when you're satisfied and I'll read it one more time to be sure at that point
19:08
<Domenic>
Sounds good, thanks for all the review so far
21:57
<EveryOS>
People are weird. I created an almost empty GH repo earlier, and 2 people cloned it
22:07
<EveryOS>
Ug, I can't delete IRC messages