Commit graph

385 commits

Author SHA1 Message Date
bors-servo
a54404c921 Auto merge of #6876 - metajack:slice_chars-layout, r=pcwalton
Use local slice_chars

StrExt::slice_chars is deprecated and will be removed in Rust. This
lifts the implementation from Rust libstd and puts it in util::str.

This fixes a bunch of deprecation warnings in Servo.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6876)
<!-- Reviewable:end -->
2015-07-31 12:54:49 -06:00
Patrick Walton
2aa5174246 script: Make the resource task communication use IPC channels. 2015-07-31 11:28:09 -07:00
Jack Moffitt
dae1a398a4 Use local slice_chars
StrExt::slice_chars is deprecated and will be removed in Rust. This
lifts the implementation from Rust libstd and puts it in util::str.

This fixes a bunch of deprecation warnings in Servo.
2015-07-31 12:23:13 -06:00
Patrick Walton
1ff7a51f0a compositing: Use an OptionalIpcSender for communication between the
layout and paint tasks.
2015-07-31 08:42:30 -07:00
Patrick Walton
f041e1aa60 util: Remove the old broken SerializableLinkedList code in favor of
serde's native implementation.
2015-07-31 08:42:29 -07:00
Patrick Walton
ef9fdc6e30 util: Add a multiprocess command-line option and implement
`OptionalIpcSender<T>`.

`OptionalIpcSender<T>`dynamically switches between in-process and
out-of-process communication depending on whether multiprocess mode is
enabled.

The multiprocess command-line switch doesn't actually turn on
multiprocess mode yet, but it does control the behavior of
`OptionalIpcSender<T>`.
2015-07-31 08:42:29 -07:00
bors-servo
4837dd9a1c Auto merge of #6850 - servo:rustup_2015-07-30, r=SimonSapin
Upgrade to rustc 1.3.0-dev (87055a68c 2015-07-30)

This builds and passes unit tests.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6850)
<!-- Reviewable:end -->
2015-07-30 14:46:13 -06:00
David Zbarsky
e484d6b5e3 Implement getComputedStyle 2015-07-29 20:17:50 -04:00
Patrick Walton
bb99b2f3c8 script: Make most of 2D canvas and WebGL run over IPC.
To actually make the multiprocess communication work, we'll need to
reroute the task creation to the pipeline or the compositor. But this
works as a first step.
2015-07-25 00:50:12 -07:00
Simon Sapin
a3c0366bd6 Fix deprecation warnings 2015-07-24 22:16:35 +02:00
Matt Brubeck
dfac8ce4a1 Basic support for bidirectional text 2015-07-23 20:05:55 -07:00
Josh Matthews
fecb2e3960 Make the global options more resilient to unit tests running in parallel. 2015-07-21 09:14:06 -04:00
bors-servo
5ac80bff8e Auto merge of #6666 - glennw:exit-flag, r=larsbergstrom
Restore exit after load command line flag.

Also updates glutin with a crash fix that was exposed by this patch.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6666)
<!-- Reviewable:end -->
2015-07-20 15:37:33 -06:00
Bogdan Cuza
0baa6b477c Replace astersisks with appropriate versions in deps 2015-07-20 20:08:08 +03:00
Glenn Watson
4f28c93f40 Restore exit after load command line flag.
Also updates glutin with a crash fix that was exposed by this patch.
2015-07-20 11:19:13 +10:00
Patrick Walton
b6485a9eaf compositing: Make the constellation messages serializable. 2015-07-18 12:43:08 -07:00
Patrick Walton
6eacb0c995 gfx: Make display lists serializable using serde.
This commit introduces the `serde` dependency, which we will use to
serialize messages going between processes in multiprocess Servo.

This also adds a new debugging flag, `-Z print-display-list-json`,
allowing the output of display list serialization to be visualized.
This will be useful for our experiments with alternate rasterizers.
2015-07-15 19:04:17 -07:00
Patrick Walton
9ce65c08a5 layout: Make the LayoutControlChan use IPC. 2015-07-14 13:45:52 -07:00
Ms2ger
ce4d442941 Move away from the repeat().take().collect() pattern.
This was the preferred pattern between the deprecation of Vec::from_elem and
the addition of the count argument to the vec![] macro.
2015-07-14 16:19:30 +02:00
Simon Sapin
90dbd86ed7 Add a -Z replace-surrogates command-line option.
See #6564.
2015-07-13 20:41:57 +02:00
bors-servo
c76720d67c Auto merge of #6570 - Ms2ger:workqueue-sync, r=pcwalton
Require that WorkQueue's QueueData is Sync rather than Send.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6570)
<!-- Reviewable:end -->
2015-07-07 13:07:31 -06:00
Corey Farwell
7159fe749f Create and utilize utility for joining strs 2015-07-08 05:18:07 +09:00
Ms2ger
028484526d Require that WorkQueue's QueueData is Sync rather than Send. 2015-07-07 11:11:46 +02:00
Michael Tremel
0833c16b00 Remove unused import. 2015-07-06 21:31:03 -07:00
bors-servo
a3821bf240 Auto merge of #6547 - Ms2ger:workqueue-reference, r=pcwalton
Borrow the QueueData for WorkQueue::run.

This allows us to get rid of the raw pointers and unsafe dereferencing in
the parallel layout implementation.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6547)
<!-- Reviewable:end -->
2015-07-06 08:29:17 -06:00
bors-servo
b876a54dce Auto merge of #6365 - pcwalton:sequential-display-list-construction, r=larsbergstrom
layout: Disable parallel display list building by default.

I've never see it result in a speedup. Actually, I don't think I've seen
it result in anything better than a 50% slowdown. The arithmetic
intensity is just too low, at least with the current algorithm.

Parallel DL building can still be enabled with a debug flag if the
algorithm is improved.

r? @metajack

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6365)
<!-- Reviewable:end -->
2015-07-06 07:08:58 -06:00
Ms2ger
d4888dbd4d Fix build warnings. 2015-07-04 14:33:18 +02:00
Ms2ger
24730f1078 Borrow the QueueData for WorkQueue::run.
This allows us to get rid of the raw pointers and unsafe dereferencing in
the parallel layout implementation.
2015-07-04 08:55:48 +02:00
bors-servo
d09881b051 Auto merge of #6513 - Ms2ger:workqueue-data, r=pcwalton
Remove the data field from WorkQueue.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6513)
<!-- Reviewable:end -->
2015-07-03 07:22:44 -06:00
bors-servo
59d3b45b74 Auto merge of #6504 - Ms2ger:workqueue-labeled-break, r=pcwalton
Move back to using a labeled break in WorkQueue.

This was changed in 18a2050a64; it appears to
work fine now.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6504)
<!-- Reviewable:end -->
2015-07-03 06:39:53 -06:00
Matt Brubeck
13072c7b0c Remove string_cache dependency from util.
Move `namespace::from_domstring` from util to script::dom, because it is used
only in that crate.
2015-07-01 10:04:53 -07:00
Matt Brubeck
efa60d3a24 Remove unused dependencies from util 2015-07-01 09:40:33 -07:00
Matt Brubeck
8570b22677 Remove layers dependency from util 2015-07-01 09:40:32 -07:00
Ms2ger
41da4fceee Remove the data field from WorkQueue.
It is only used in the run method.
2015-06-29 15:09:29 +02:00
Ms2ger
b2c226afe6 Move back to using a labeled break in WorkQueue.
This was changed in 18a2050a64; it appears to
work fine now.
2015-06-27 22:10:40 +02:00
Ms2ger
0d0c8f2d42 Use an atomic bool for EXPERIMENTAL_ENABLED.
static mut smells, especially as it can be set and read from multiple threads
(for example in unit tests).
2015-06-27 09:06:45 +02:00
Ms2ger
079049cfac Stop using the deprecated Thunk API. 2015-06-26 22:45:32 +02:00
Ms2ger
d7c0d65cc4 Stop using env::set_exit_code. 2015-06-26 19:46:16 +02:00
Ms2ger
73a7e92bfd Update to rustc 2d0cbf3e3e25e092bd9e4c94d08e446b680869f0. 2015-06-25 20:02:36 +02:00
ecoal95
8cbfb3482c Use euclid from crates.io 2015-06-19 00:04:24 +02:00
Simon Sapin
0229de822b Use string-cache from crates.io 2015-06-16 00:27:50 +02:00
bors-servo
d6263c9b6e Auto merge of #6306 - metajack:shared-target-dir, r=mbrubeck
This speeds up `./mach build --dev` followed by `./mach build-cef` by
25%. When rust-lang/cargo#497 is fixed, this speedup will increase
dramatically.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6306)
<!-- Reviewable:end -->
2015-06-15 13:08:14 -06:00
Jack Moffitt
a0237085c6 Use Cargo's target directory sharing.
This speeds up `./mach build --dev` followed by `./mach build-cef` by a
large amount, and also speeds up other build combos found in our CI.
2015-06-15 11:48:47 -06:00
Corey Farwell
5c408d2be9 rust-geom API changes
https://github.com/servo/rust-geom/pull/81
2015-06-13 12:28:21 -07:00
Patrick Walton
eef9c5d9bf layout: Disable parallel display list building by default.
I've never see it result in a speedup. Actually, I don't think I've seen
it result in anything better than a 50% slowdown. The arithmetic
intensity is just too low, at least with the current algorithm.

Parallel DL building can still be enabled with a debug flag if the
algorithm is improved.
2015-06-12 18:03:58 -07:00
bors-servo
f03f584895 Auto merge of #6334 - nnethercote:report-local-contexts, r=pcwalton
Passing a function that measures TLS to WorkQueue is a bit weird, but I can't see how else to measure that data.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6334)
<!-- Reviewable:end -->
2015-06-12 18:42:32 -06:00
bors-servo
9ea50957fc Auto merge of #6345 - pcwalton:workqueue-arm-optzns, r=glennw
Improves scaling on multicore ARM devices.

r? @glennw

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6345)
<!-- Reviewable:end -->
2015-06-12 07:28:19 -06:00
Patrick Walton
a063fdde73 util: Reduce memory barriers and integer divisions in the work queue.
Improves scaling on multicore ARM devices.
2015-06-11 15:07:16 -07:00
Nicholas Nethercote
48a0725c01 Measure LocalLayoutContexts in LayoutTask and LayoutWorkers.
The FreeType instances in layout workers are reasonably large and worth
measuring. The one in LayoutTask is smaller but it's easy to measure at the
same time. Sample output:
```
|    8.33 MiB -- pages
|       8.33 MiB -- url(file:///home/njn/moz/servo/../servo-static-suite/wikipedia/Guardians%20of%20the%20Galaxy%20(film)%20-%20Wikipedia,%20the%20free%20encyclopedia.html)
|          1.32 MiB -- layout-worker-0-local-context
|          1.31 MiB -- layout-worker-1-local-context
|          1.24 MiB -- layout-worker-3-local-context
|          1.17 MiB -- layout-worker-4-local-context
|          1.08 MiB -- layout-worker-2-local-context
|          1.06 MiB -- layout-worker-5-local-context
|          0.78 MiB -- paint-task
|             0.78 MiB -- buffer-map
|          0.38 MiB -- layout-task
|             0.30 MiB -- display-list
|             0.07 MiB -- local-context
```
This required adding a mechanism to WorkQueue to measure worker TLSes.
2015-06-10 21:06:59 -07:00
Glenn Watson
899ab226de Updates for changes in rust-geom and rust-layers 2015-06-11 07:19:58 +10:00