00:00
<Hixie>
8115 tests
00:00
<gsnedders>
Last time anyone was claiming stuff about the AAA around me I didn't claim to know what it did, I just threw assertions into html5lib and ran the testsuite and said, "that appears to be true' :)
00:00
<Hixie>
yeah
00:00
<Hixie>
seems reasonable
00:01
<Hixie>
goddamnit, "<div><a><b><u><i><code><div></a>"
00:01
<gsnedders>
It amusing watching you go through this pain for a change. :)
00:01
<Hixie>
hey, i was the first one to implement this damn algorithm :-P
00:01
<Hixie>
this is my third attempt
00:02
<Hixie>
(second in a programming language, i'm counting the spec as one)
00:02
<Hixie>
one day i'll do it in a language that's actually useful to someone
00:02
<gsnedders>
XD
00:02
<zewt>
if the spec counts as an implementation, shouldn't it count towards interop
00:02
<Hixie>
ok this bug appears to be related to the bookmark thing in the AAA
00:02
<Hixie>
unfortuantely i don't actually understand the bookmark thing in the AAA
00:03
<Hixie>
i was hoping i had it right...
00:03
<gsnedders>
Thereby proving your statement about the AAA above correct. :)
00:04
<Hixie>
it's really tempting to implement the bookmark thing by literally inserting something into the array
00:04
<Hixie>
and then searching for it
00:04
<Hixie>
but that's pretty terrible
00:04
<gsnedders>
Pretty sure that's what html5lib does
00:07
<Hixie>
aha
00:07
<Hixie>
i think i got it
00:08
<Hixie>
i remove something from the list but don't fix the bookmark
00:13
<Hixie>
and now <p><b><b><b><b><p>x !
00:13
<Hixie>
noahhhhh!
00:13
<gsnedders>
noah's ark?
00:13
<Hixie>
could have sworn i implement noah
00:14
<gsnedders>
but do you implement it correctly?
00:14
<Hixie>
i guess not...
00:15
<Hixie>
oh
00:15
<Hixie>
hahaha
00:15
<Hixie>
they were only considered matches if they had attributes
00:16
<Hixie>
holy kittens!!!
00:16
<Hixie>
8123 tests passed
00:16
<Hixie>
that's all of them
00:16
<Hixie>
well, all except the fragment mode tests
00:22
<Hixie>
gsnedders: so, i skip 106 tests, but i do run all the tree construction ones twice, so that kind of makes up for it. total time to run all the tests in an optimised build on the machine hosting whatwg.org (a dreamhost virtual host) is: 1.5s.
00:23
<Hixie>
gsnedders: you gonna be online in a couple of hours?
00:23
<gsnedders>
Hixie: I need to sleep!
00:24
<Hixie>
gsnedders: k
00:24
<Hixie>
gsnedders: ping me tomorrow, we can go through the test fixes
00:24
<gsnedders>
Hixie: am hosting party tomorrow, starting probably around the time you get up :)
00:24
<Hixie>
k well ping me whenever
00:25
<Hixie>
d'oh
00:25
<gsnedders>
will do, or ping me w/e
00:25
<Hixie>
i tried to optimise it further and the compiler said "Fatal: Procedure too complex, it requires too many registers"
00:25
<Hixie>
(specifically, trying to inline all the stuff into the function that handles entities)
00:26
<Hixie>
guess 1.5s will have to be fast enough
00:26
<Hixie>
next thing to try is parsing the spec
00:26
<Hixie>
but i gotta go now
00:37
<jamesr_>
what language is hixie writing this parser in?
00:38
<TabAtkins>
object pascal
00:39
<gsnedders>
It's Hixie, what makes you think he'd choose something sane?
00:39
<TabAtkins>
(i think - i've said so once already, and he didn't correct me)
00:39
<gsnedders>
(you are)
00:46
<Hixie>
freepascal, technically, but yeah
00:47
<Hixie>
http://software.hixie.ch/libraries/pascal/html/src/htmlparser.pas
01:03
<Hixie>
ok so my parser parser the HTML spec source (6 megs,) and then reserialises it in the test format used by the tests, in 24 seconds
01:05
<Hixie>
(13s user+sys)
01:06
<Hixie>
gonna have to work on improving that
01:06
<gsnedders>
surprisingly large diff between real and cpu time
03:20
<Hixie>
gsnedders: it's a busy machine
15:57
<annevk>
Hixie: https://twitter.com/fvsch/status/477797954385113089 (seems easy enough)