Summary
Lars Knoll
lars@trolltech.com
Thu, 20 Feb 2003 08:15:47 +0100
Hi ,
thanks for summing the conference up. I think you got most points. I have some
comments on parts of the points:
> re: rendering/font.cpp: its clear that we never reach a common codebase
> here. I'll just rename our file to font_x11.cpp soon in CVS, Safari
> can just fork the complete file and name it font_darwin.cpp or whatever.
With Qt-3.2 out codebase will get simpler aswell, as QFont in 3.2 can do CSS
style name matching of a list of families. I think the safari code already
relies on this being handledd by the OS.
> re: misc/decoder.cpp: Our code is crap basically, as we don't do
> automatic encoding guessing properly and are by far wrong in many cases.
Yes. The autodetection needs quite some work.
> It was suggested to sync up safari codebase with the latest stable
> release, which is KDE 3.1 (3.1.1 soon). Should Konqueror backport the
> new CSS parser for 3.1.1 ? Its definitely still hardly tested. Also
> I'm personally unsure about the performance impact of the new CSS parser,
> I've heard that bison generated code is quite slow (gcc developers
> are bitching about that). IMHO it requires profiling first.
I'll bite into my keyboard if it's slower than the old code ;-)
The old parser relied on thousands of string comparisons, while we now do most
of the work in a state machine. The old code was doing a huge amount of
string copying, simplifyWhiteSpace calls etc. All this went away.
Anyway, the CSS parser was never a speed bottleneck, it's the style selector
that could need further tuning.
But you're right it's not tested as extensively as the old code. However it
does pass almost all of the CSS1 test suite (except for the stuff which would
need the rewrite of the inline box model), and I haven't seen a bug on real
world web page I could assign to the css parser for some time now.
The parser honours the CSS "forward compatible parsing rules", but I am
currently not sure these error handling rules do not introduce some memory
leaks, as the bison code just pops elements of the stack in this case. This
is solvable however.
> - Testsuite: The "No regression" topic was discussed, and both sides
> expressed interest in achieving an automated regression testing before
> commit. Safari codebase apparently has automated testing already for
> rendering quality, stability, memory impact and performance (Mozilla
> development style comes to my mind..).
The safari team also does testing of speed regressions. I think this (aswell
as maybe memory usage regressions) would be good for us aswell.
Cheers,
Lars