| 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 |