On Sun, Jul 10, 2011 at 2:06 PM, Mark Rowe <[email protected]> wrote: > On Jul 10, 2011, at 13:57, Adam Barth <[email protected]> wrote: >> On Sun, Jul 10, 2011 at 1:26 PM, Mark Rowe <[email protected]> wrote: >>> On 2011-07-10, at 13:20, Adam Barth wrote: >>>> Sure. I'll highlight the relevant section of my original email: >>>> >>>> On Sun, Jul 10, 2011 at 10:52 AM, Adam Barth <[email protected]> wrote: >>>>> These changes have the following virtues: >>>>> >>>>> A) The resulting fallback graph will be a tree, making the fallback >>>>> graph easier to understand for both humans and automated tools. >>> >>> I don't see how Windows falling back to mac-snowleopard has any effect on >>> that. It's no different than mac-leopard in that regard. Then again, >>> maybe the diagram is trying to convey something that I'm missing due to >>> having no idea what the difference is between the myriad of different line >>> styles in the diagram. >> >> Notice that the circle for "win" has two arrows emanating from it. >> One of those arrows goes to "mac" and the other goes to >> "mac-snowleopard". That means that of the fallback paths that transit >> "win", one path flows through "mac-snowlepard" where as the remainder >> flow through "mac". If we change "win" to fall back to "mac", then >> the graph becomes more tree-like. (If make change (2) as well, then >> the graph globally becomes a tree.) > > Can you please clarify what the edges in your diagram, along with what the > different line styles, represent?
Sure. The solid arrows at the "normal" transitive fallback path. For example, mac-leopard falls back to mac-snowleopard, which falls back to mac, which falls back to all (the platform independent results). Some directories have non-transitive fallback paths, which a indicated in dashed lines. For example, chromium-mac-snowleopard falls back to chromium-mac, which falls back to chromium. However, the next step in the fallback path depends on where the path started. If the path started at chromium-mac-leopard, the next step in the fallback is to mac-snowleopard whereas if the path started at chromium-mac, the next step in the path is to mac-snowleopard. Similarly, if we arrive at chromium by falling back via chromium-win (regardless of how we got to chromium-win), the next steps in the fallback path is win, mac, and, finally, "all". IMHO, these non-transitive fallback paths are nutty and not worth their complexity. Now, suppose we disabuse the chromium fallback paths of their nuttiness and have every fallback path that transits "chromium" have "all" as its next step, then we'll have a reasonably understandable fallback system, with the sole exception of "win" being strangely captive on "mac-snowleopard". In practice, there's extremely little actual difference (e.g., just one image baseline) between "mac" and "mac-snowleopard", so changing "win" to fallback to "mac" has very little operational cost. Adam _______________________________________________ webkit-dev mailing list [email protected] http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

