Commit graph

163 commits

Author SHA1 Message Date
bors-servo
9e0d269353 Auto merge of #14754 - upsuper:skip-bindgen, r=emilio
Skip invoking bindgen if no header changes

This can avoid doing bindgen when build script is called for updating other files, e.g. properties.

This uses a global modified time, so there is a chance that some of the files which can be skipped but not skipped. But given that we do all three files in parallel, that would unlikely affect the actual runtime.

Using lots of `Mutex` could be an issue, but it doesn't seem to be in practice. Since only one thread would hold the lock of `ADDED_PATHS`, there is never a competitor for the lock of `LAST_MODIFIED`.

r? @emilio

<!-- 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/14754)
<!-- Reviewable:end -->
2016-12-28 04:51:53 -08:00
Xidorn Quan
b6ea9976ba Skip invoking bindgen if no header changes
This can avoid doing bindgen when build script is called for updating
other files, e.g. properties.
2016-12-28 18:10:27 +11:00
Bobby Holley
ab71b29959 style: Add a special, explicit path for lazy style resolution and use it for GetComputedStyle.
MozReview-Commit-ID: KAM9mVoxCHE
2016-12-28 11:52:46 +08:00
Cameron McCormack
fc808d9030 Update bindings build script and glue for recent changes. 2016-12-27 10:30:24 +08:00
Emilio Cobos Álvarez
f08e851f81
style: Update bindings because of bug 1325006 2016-12-25 01:31:08 +01:00
Manish Goregaokar
211682ab49 Regen bindings 2016-12-22 23:26:21 -08:00
Xidorn Quan
e73bb054c5 Update CSSOM FFI to use string and nsCSSProperty 2016-12-16 18:09:12 +11:00
Xidorn Quan
cbfe1832c5 Parallelize build-time bindgen 2016-12-15 18:25:08 +11:00
bors-servo
a6cfec972f Auto merge of #14563 - upsuper:buildtime-bindgen, r=emilio
Add asserts to make failure clearer

Gecko currently doesn't pass absolute path for `MOZ_DIST`, which leads to obscure panic when running the build script. This patch adds some assertions so that failures around this would be clearer.

r? @emilio

<!-- 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/14563)
<!-- Reviewable:end -->
2016-12-13 01:40:23 -08:00
Xidorn Quan
ac5c09c929 Add asserts to make failure clearer 2016-12-13 17:22:45 +11:00
Cameron McCormack
d0a8958edd Bindings update for latest mozilla-central. 2016-12-13 13:55:21 +08:00
Bobby Holley
3a56954069 Bug 1322945 - Change skip_root to unstyled_children_only and use StyleNewChildren in more places. r=heycam
I noticed that our current behavior in ContentRangeInserted is incorrect. Unlike
ContentInserted (where this code lived originally), ContentRangeInserted takes a
start and end element. I'm not sure if we ever take that path for new content that
needs style, but it seemed sketchy. And generally, it seems nice to just always
style new content the same way (though we still need to style NAC by the subtree
root, since it hasn't been attached to the parent yet).

For situations where there is indeed only one unstyled child, the traversal
overhead should be neglible, since we special-case the single-element in
parallel.rs to avoid calling into rayon.

Being more explicit about what we want here also makes us more robust against
the other handful of callpaths that can take us into
nsCSSFrameConstructor::{ContentRangeInserted,ContentAppended}. Currently we
can call StyleNewSubtree on an already-styled element via RecreateFramesForContent,
which triggers an assertion in the servo traversal.

MozReview-Commit-ID: DqCGh90deHH
2016-12-12 18:50:33 -08:00
Xidorn Quan
1cefd1bef0 Do build-time bindgen
Majority of build_gecko.rs is just the straightforward conversion from
regen.py. There are two differences that:
1. Side in whitelist is changed to mozilla::Side
2. std::atomic__My_base is added to opaque types for Windows
2016-12-10 00:33:41 -10:00