Bug 1332969: stylo: Synchronously do a style update when the device changes
Ideally this would be lazy, but eventually we're going to need to restyle in
RebuildAllStyleData anyway, which would require us to have the style up to date,
so no need to complicate our lives.
r? @heycam or @upsuper or @bholley
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15157)
<!-- Reviewable:end -->
style: Expose the traversal kind to the style system.
This way we'll be able to take different paths for the sequential and parallel
traversals in some concrete cases.
This is a preliminar patch to fix bug 1332525.
r? @bholley
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15160)
<!-- Reviewable:end -->
This way we'll be able to take different paths for the sequential and parallel
traversals in some concrete cases.
This is a preliminar patch to fix bug 1332525.
Ideally this would be lazy, but eventually we're going to need to restyle in
RebuildAllStyleData anyway, which would require us to have the style up to date,
so no need to complicate our lives.
MozReview-Commit-ID: AlmUGRCNm2z
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
Remove usage of phf_macros.
It’s a compiler plugin that uses unstable compiler APIs that are not on a path to stabilization.
With this changes, there is one less thing that might break when we update the compiler. For example: https://github.com/sfackler/rust-phf/pull/101
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15099)
<!-- Reviewable:end -->
It’s a compiler plugin that uses unstable compiler APIs
that are not on a path to stabilization.
With this changes, there is one less thing that might break
when we update the compiler. For example:
https://github.com/sfackler/rust-phf/pull/101
The setup is quite different to Servo-land, so add a comment about the different
setup.
Also, check viewport rules when flushing stylesheets. I believe that the
previous behavior is plain wrong, though I haven't taken the time to come up
with a test case.
In any case, it doesn't hurt any of both back-ends.
MozReview-Commit-ID: 46gtTkesOsr
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
Enable codegen-units=4 in debug mode
We previously had this and removed it because it caused runtime slowdowns
(discussion in #11102), but that was in release mode.
Debug mode is already very slow at runtime.
In my opinion, debug mode is mostly for the edit-compile-test cycle
which is currently dominated by compile times, so sacrificing runtime for compile time makes sense.
I’ve observed a ~30% improvement of compile times with this. This figure is consistent between a very fast desktop with 4 cores / 8 threads and a not-as-fast laptop with 2 cores / 4 threads.
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14995)
<!-- Reviewable:end -->
We previously had this and removed it because it caused runtime slowdowns
(discussion in #11102), but that was in release mode.
Debug mode is already very slow at runtime.
In my opinion, debug mode is mostly for the edit-compile-test cycle
which is currently dominated by compile times,
so sacrificing runtime for compile time makes sense.
I’ve observed a ~30% improvement of compile times with this.
This figure is consistent between a very fast desktop with 4 cores / 8 threads
and a not-as-fast laptop with 2 cores / 4 threads.
replace match by if let statements if possible
<!-- Please describe your changes on the following line: -->
Hi there,
This PR replaces `match` statements by `if let` when possible.
Thanks for reviewing
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#14788
<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because this PR is a code cleanup patch.
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14796)
<!-- Reviewable:end -->