Re: [dev-servo] Roadmap Q2 goal : Pass Acid3
On 2/25/14 3:55 AM, Robert O'Callahan wrote: I don't think we should be setting these kinds of goals for Servo in the short term. Passing Acid-style tests or meeting site-compatibility criteria require doing a lot of work that is not particularly risky and does not have much architectural impact on the engine ... but there's a lot of work to do that is risky and does have significant architectural impact, and that work should be higher priority, IMHO. If I may defend the Acid tests just a little bit... From my point of view, especially with my work lately, one of the most important questions that Servo needs to answer is how much parallelism can we gain on real-world Web sites? To that end, Web site compatibility (which Acid2 is a rough proxy for a large subset of, if used sensibly [1]) is a useful thing to work on. Otherwise, we don't know whether the parallel gains that we are getting will scale up to real-world usage, or whether we're only getting them because we don't implement the difficult features. To give a concrete example, the work on block formatting contexts [2] and absolute positioning [3] has been hugely illustrative. Not only was this work a sea change to our layout algorithm, it helped us establish exactly what the parallel hazards with floats were. At the beginning before we implemented floats, we got massive parallel gains on all sites, but these were unrealistic. In Servo master, we're using a conservative algorithm to handle floats that completely erases any parallel gains on most sites. Only with this block formatting context work--which is also necessary for Web compat--do we start to see gains on most sites. Handling absolute positioning properly will let us perform further measurements on how much parallelism is impacted on sites: in particular, how often in the real world is an absolute frame's hypothetical box impacted by floats? We don't know the answer to that right now, but this seems to me to be a very important question. So I agree that we must not make architectural decisions that make it difficult to implement Web features. But I do think that Web compat is useful, because it helps us to identify the parallel hazards and know where we stand in terms of the Web of today, which helps us answer the big questions that Servo set out to answer. Patrick [1]: Sensibly means implementing the features that the test tests in a way that handles even edge cases that are not tested, and not accepting patches that would make it hard implement more complex features that are not tested, such as incremental reflow, bidi, etc. [2]: https://github.com/mozilla/servo/pull/1734 [3]: https://github.com/mozilla/servo/pull/1681 ___ dev-servo mailing list dev-servo@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-servo
Re: [dev-servo] Roadmap Q2 goal : Pass Acid3
On 25/02/2014 18:02, Patrick Walton wrote: So I agree that we must not make architectural decisions that make it difficult to implement Web features. But I do think that Web compat is useful, because it helps us to identify the parallel hazards and know where we stand in terms of the Web of today, which helps us answer the big questions that Servo set out to answer. Yes, Web compat is important. But Acid3 in particular is a poor proxy for Web compat, IMO. -- Simon Sapin ___ dev-servo mailing list dev-servo@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-servo
Re: [dev-servo] Roadmap Q2 goal : Pass Acid3
Is it possible to programmatically identify CSS rules or page layouts which would benefit from the parallelism that Servo potentially offers? For the CSS un/prefixing debate I/we had some success in deploying web crawlers that parsed and summarized millions of CSS rules from thousands of sites. Could something similar be of use for quantifying the lowest hanging parallelism fruit for Servo? Said another way, is it possible to create a targeted benchmark for Servo compatibility and performance? I think the answer is yes, but I would be interested in talking about this more. We've done some preliminary work discussing and estimating this for specific sites, but it sounds like you are much farther down this road with tooling. We'd like to leverage what you've already done if possible. jack. ___ dev-servo mailing list dev-servo@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-servo
Re: [dev-servo] Roadmap Q2 goal : Pass Acid3
On Wed, Feb 26, 2014 at 7:02 AM, Patrick Walton pcwal...@mozilla.comwrote: So I agree that we must not make architectural decisions that make it difficult to implement Web features. But I do think that Web compat is useful, because it helps us to identify the parallel hazards and know where we stand in terms of the Web of today, which helps us answer the big questions that Servo set out to answer. That's a good point, but Acid3, and to a lesser extent Acid2, are about testing edge cases and the presence of obscure features. I don't think they tell you anything significant about parallelism in the mass of pages on the Web. No single page can, but Acid3 is probably even worse than picking a page at random. You'd be much better off picking, say, a Wikipedia page (which I know you've done!) or the HTML5 single-page spec. Otherwise, we don't know whether the parallel gains that we are getting will scale up to real-world usage, or whether we're only getting them because we don't implement the difficult features. That's a good point too, but the problem is that key parts of the Web like GMail, Youtube, Facebook etc require so much work for full support that I don't think we draw broad conclusions until very far in the future, when it will be far too difficult to make architectural changes. If you must discover those conclusions earlier then we should probably piggyback some analysis on an existing browser engine instead of doing it in Servo. The good news is that I think CSS layout is by far the largest piece of the Web where we have implicit parallelism that is subject to unpredictable hazards. Other big chunks of work, like almost all DOM APIs, are either obviously not parallelizable or obviously parallelizable. Rob -- Jtehsauts tshaei dS,o n Wohfy Mdaon yhoaus eanuttehrotraiitny eovni le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o Whhei csha iids teoa stiheer :p atroa lsyazye,d 'mYaonu,r sGients uapr,e tfaokreg iyvoeunr, 'm aotr atnod sgaoy ,h o'mGee.t uTph eann dt hwea lmka'n? gBoutt uIp waanndt wyeonut thoo mken.o w ___ dev-servo mailing list dev-servo@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-servo