00:31
<zewt>
fascinating is justifying blob urls not working for workers in IE because "it's not specifically allowed"
00:31
<zewt>
maybe the spec should enumerate every possible allowable URL, just to be "clear"
02:09
<TabAtkins>
JakeA: Right, but why do you need the friendly failover behavior? Just deny the stylesheet entirely if the cors check fails.
04:51
<Hixie>
zewt: actually it's specifically disallowed, unless blob: URLs (not their contents, the URL themselves) are defined as having a specific origin (as opposed to the unique origin, like data: URLs -- that's why the spec hard-codes data: URLs to make them work)
07:20
<JakeA>
TabAtkins: maybe I got the wrong end of the stick. When you mentioned fixing the spec when it came to stylesheets and CORS, what changes were you thinking of?
07:22
<TabAtkins>
I answered from the hip, and wasn't sure if cssom allowed the crossorigin attr yet.
08:17
<annevk_>
https://docs.google.com/file/d/0B4PVbLpUIdzoMDR5dWstRllXblU/edit async generators
23:06
<Hixie>
aw man
23:07
<Hixie>
i'm going through the parser tests in a somewhat random order
23:07
<Hixie>
but it seems somehow unfair that the second tree constructor test that i ended up having to deal with does foster parenting
23:11
SamB
hands Hixie some orphaned MIME messages
23:12
<Hixie>
hm?
23:15
<gsnedders>
Hixie: What random order?
23:15
<gsnedders>
Hixie: the order they're in the files?
23:15
<gsnedders>
that's pretty random :)
23:16
<Hixie>
well the file order i'm using is random
23:16
<Hixie>
apparently html5lib-tests/tree-construction/tests7.dat is the first test file i'm doing
23:17
<Hixie>
i got <!doctype html><body><title>X</title> to work
23:17
<Hixie>
now it's <!doctype html><table><title>X</title></table>
23:17
<gsnedders>
:)
23:17
<Hixie>
which seems ambitious for a second test to get right :-)
23:17
<gsnedders>
Just convert the spec into code using some NLP tool!
23:17
<Hixie>
hah
23:18
<Hixie>
how long does html5lib take to do all the tests, btw?
23:18
<Hixie>
i'm doing this to be faster, but i've no idea if i am :-)
23:18
<gsnedders>
some number of seconds
23:18
<gsnedders>
And on what implementation of Python?
23:19
<Hixie>
is there that much difference?
23:19
<zewt>
the universe is some number of seconds old
23:19
<gsnedders>
Hixie: tests, maybe not; general parsing, massively!
23:19
<gsnedders>
(tests have a lot of weird branches for parse errors taken frequently, real stuff mostly doesn't)
23:20
<Hixie>
interesting
23:24
<gsnedders>
for complete.html — CPython 2: 14.7s; CPython 3: 16.4s; PyPy: 7.7s
23:26
<gsnedders>
Hixie: also remembers whether modules for optional tree formats are installed; PyPy takes 33s to run all the tests in my current WC
23:26
<gsnedders>
I English good, it seem
23:27
<Hixie>
what's the difference between CPython and PyPy?
23:28
<gsnedders>
CPython is the reference implementation, a mere interpreter; PyPy is a tracing JITing VM
23:28
<Hixie>
ah
23:29
<Hixie>
i'll have to give you a binary when i'm done, have you compare that
23:29
<Hixie>
right now it probably does it in aout 20ms but crashes with "not implemented" about 2 lines in :-P
23:29
<gsnedders>
also note that that figure for the tests including serializer/sanitizer/etc. tests
23:29
<Hixie>
ah
23:29
<Hixie>
i'm only doing tokeniser/tree-constructor
23:29
<Hixie>
(and excluding some of those too, e.g. fragment tests)
23:29
<Hixie>
(iirc)
23:30
<gsnedders>
(it appears I really can't watch Buffy and type at the same time :))
23:31
<Hixie>
ho ho ho, i just found a bug in the html parser
23:31
<gsnedders>
in the spec?
23:31
<zewt>
nondeterministic GC in pypy makes me hesitant to go near it, though
23:31
<Hixie>
yeah
23:31
<Hixie>
one sec while i check my work
23:31
<gsnedders>
Do we implement the spec correctly? :)
23:31
<Hixie>
that's what i'm checking :-)
23:32
<gsnedders>
It wouldn't be the first time we've had bogus behaviour on the basis the spec did :)
23:34
<Hixie>
well gecko and blink seem to just ignore my mistake here, which seems wise
23:34
<gsnedders>
zewt: CPython is non-det GC too
23:34
<Hixie>
since otherwise they'd probably crash or create a crazy non-dom-valid dom
23:34
<Hixie>
http://software.hixie.ch/utilities/js/live-dom-viewer/saved/3054
23:34
<zewt>
only with cycles
23:34
<gsnedders>
Besides, you can make it deterministic in both cases through gc.disable() :)
23:34
<zewt>
memory.splode()
23:36
<Hixie>
oh nevermind
23:36
<Hixie>
the spec actually checks for this later
23:40
<gsnedders>
Other problems with converting the spec text: coreference resolution.
23:40
<gsnedders>
Or not
23:40
<gsnedders>
Not such a big problem as I thought
23:40
<Hixie>
cowhat now?
23:41
<gsnedders>
Consider: "Consume the next input character; output the character".
23:41
<gsnedders>
What does "the character" refer to?
23:41
<Hixie>
aah
23:41
<Hixie>
yeah
23:41
<Hixie>
good luck!
23:42
<gsnedders>
I don't think you actually have that much coreference in the tokenizer at least though
23:42
<gsnedders>
Because you almost always (maybe always?) use "the current input character"
23:43
<Hixie>
man the foster parenting algorithm sure is described in a round-about way
23:43
<gsnedders>
Yes.
23:44
<gsnedders>
I think this Hixie guy is to blame there :)
23:44
<Hixie>
pah
23:44
Hixie
implements it completely differently and hopes he's right that it's isomorphic
23:44
<gsnedders>
Proving stuff is equivilent is hard given the spec machine is infinite state :(
23:45
<Hixie>
well proving that this subpart is equivalent should be easier
23:46
<gsnedders>
tbf, one can likely bound the stack of open elements at something like 10 elements and the list of active formatting elements similarly and then just argue everything will just be those with extra elements of no effect inbetween
23:46
<Hixie>
be careful about that
23:46
<Hixie>
noah's ark really screws with that
23:46
<Hixie>
if you do that you want a pretty high cap, iirc
23:47
<gsnedders>
Yeah, you will
23:47
<gsnedders>
I haven't tried to work it out
23:47
<SamB>
noah's ark is a technical term now?
23:47
<gsnedders>
I fear it's exponential to the number of formatting elements.
23:47
<Hixie>
SamB: so many silly terms in the parser, you've no idea
23:47
<Hixie>
SamB: it's the only way i could stay sane
23:47
<Hixie>
while writing it
23:47
gsnedders
takes a deep breath and carries on
23:48
<Hixie>
yeah, that one too :-)
23:48
Hixie
implemented that just yesterday (commented out, of course)
23:48
<gsnedders>
Hixie: Do you know of any bug for the spec being slow in Firefox?
23:48
<Hixie>
slow to load?
23:48
<Hixie>
no
23:48
<Hixie>
but it's a problem for sure
23:48
<SamB>
Hixie: that reminds me of \relax
23:49
<Hixie>
is it worrying when you implement an algorithm and your implementation has none of the variables of the original? :-)
23:49
SamB
isn't really TeXnically aware enough to know all that relax is good for ...
23:49
<SamB>
Hixie: it should worry someone
23:49
<gsnedders>
Hixie: Not replicating the WebKit HTML parser bug with </sarcasm> then? :)
23:50
<SamB>
hmm
23:50
<gsnedders>
Hixie: something around layout is slow when the window changes size, like to open the find box :(
23:50
<SamB>
gsnedders: where did that crop up?
23:50
<Hixie>
gsnedders: i still love that that happened
23:50
<SamB>
someone forgot to escape </sarcasm>, or was it inside a script or something?
23:50
<Hixie>
gsnedders: yeah, reflow is slow. dunno of a specific bug. cc me if you file one.
23:51
<gsnedders>
Hixie: k
23:51
<Hixie>
gotta go, bbl
23:51
<gsnedders>
SamB: https://bugs.webkit.org/show_bug.cgi?id=45645
23:51
<gsnedders>
SamB: This is the reason html5lib has tests for </sarcasm> :)
23:51
SamB
looks around for something spritely to open that on
23:52
<SamB>
has the standard managed to avoid mentioning </sarcasm> thus far?
23:52
<gsnedders>
The WebKit bug is there because the standard *does* mention it
23:52
<SamB>
hah
23:53
<gsnedders>
As Hixie said, the parser section is full of jokes
23:53
<zewt>
sure am tired of having to find obscure switches to tell MSVC to stop telling me that C functions like read() are "deprecated"
23:53
<gsnedders>
An end tag whose tag name is "sarcasm"
23:53
<gsnedders>
Take a deep breath, then act as described in the "any other end tag" entry below.
23:53
<gsnedders>
SamB: ^^
23:53
<SamB>
zewt: ouch
23:54
<gsnedders>
That's far too funny if you're actually in the middle of just implementing every single case one by one :)
23:54
<SamB>
does "take a deep breath" link somewhere?
23:54
<gsnedders>
nah
23:54
<gsnedders>
SamB: Seems like a bug. Report it! :)
23:55
<zewt>
uh, woah, now it's defaulting to having them as errors
23:58
<SamB>
zewt: so, um, the headers don't make it clear how to disable that?
23:58
<SamB>
you *did* look at the headers, right?
23:58
<zewt>
some of the warnings do ("#define this special thing" for sprintf()), but not read()
23:58
<SamB>
the funny thing is, read() doesn't have any buffer-size issues or anything
23:59
<zewt>
hell no i'm not going to dig into seventy-deep system headers, i'll let the web figure it out
23:59
<SamB>
I mean, like, can you see what construct is causing MSVC to treat those things as deprecated
23:59
<SamB>
yeah, I really don't like MSVC very much