cc @pradeep90 — This removes leaf sets and should be enough to get you started.
This series of patches combines various layout passes to eliminate the overhead involved with bottom-up passes. It also makes assign-widths and flow construction run in parallel. No raw layout code was touched (except in trivial ways); rather this just changes the way methods are invoked. So the overall level of code cleanliness should remain the same. In fact, this is a (slight) net loss in LOC, and should be an improvement in safety due to not having to ensure that the nodes in the leaf sets stay alive!
This was quite a nice speedup; we're now 38% faster than Blink sequentially for style recalc on the rainbow page and 2.56x faster with 4 cores. (The relatively low speedup is because the LRU cache hits perfectly on that page sequentially.)
There is a data race somewhere in the unsafe code I added, so *do not merge yet*.
The specs currently have only Document; this may well change, but the split won't be along the lines we've implemented right now. In the meantime, this simplifies our code quite a bit.
Forgot to actually claim #922. I hope no one is working on it.
I removed `PYTHONDONTWRITEBYTECODE=1` from every relevant file and I added code for removing `*.pyc` files in `clean-script` in `mk/clean.mk`. You might want to move the main logic into a function like `REMOVE_PYC_FILES`, since the files will exist eventually in other trees under `/src`. I used `find` in order to find all `*.pyc` files, since they might be in other subdirectories.
This is my first PR, so feel free to give me any feedback you might think is necessary.
This fixes#221.
I used the `BaseDisplayItem` class to define rectangle in which the line will be drawn. The width of the rectangle will be used as the thickness of the line segment.
These commits remove @mut from the rest of Servo except for the script crate.
They rely on the hack `Rc` type exported from rust-layers, which will be removed once that same version lands in our Rust upgrade, but is required for now because otherwise I'd have to make all of these structures either `Send` or `Freeze`.
r? @metajack or @kmcallister
This fixes a hang in content tests in my deleafset branch. No idea why it worked before though…
This just replicates the code in non-headless mode over to the headless mode.
r? @kmcallister