The only reason the Dockerfile was introduced is because the default
machines that Travis uses are based on Ubuntu 12.04, which has some very
old incompatible dependencies with Servo. Docker allowed use to use a
new version of Ubuntu, allowing us to compile with ease. I just learned
that they are currently beta testing 14.04 support:
http://docs.travis-ci.com/user/trusty-ci-environment/
This commit updates our Travis config to remove our dependency on Docker
and just build directly on the images, reducing some complexity and also
overhead of downloading Docker images.
In addition, this commit also enables caching of the .servo and .cargo
directories on Travis in an attempt to reduce build times.
http://docs.travis-ci.com/user/caching/#Arbitrary-directories
Given codegen now generates the various TypeId enums, it seems pointless to
still have to write their respective values in every DOM struct inheriting from
Node just to set the initial IS_IN_DOC flag in Document and IN_ENABLED_STATE in
form controls.
Introduce DOMClass::heap_size_of
It holds a function pointer to the HeapSizeOf::heap_size_of_children()
implementation corresponding to that IDL interface.
This removes the need for a clumsly TypeId-based match expression in the
former heap_size_of_eventtarget() function.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7972)
<!-- Reviewable:end -->
Rework image_cache_task to avoid using `url` as key during the loadin…
…g of an image.
A `url` can be very large, in particular if it is a data: url, so using it as a key for lookups whenever we load a few bytes is not a very good idea. This patch introduces an intermediate `LoadKey` (internally, an u64) that makes hashmap lookups faster. Somewhere along the way, we also get rid of a few calls to `url.clone()`.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7894)
<!-- Reviewable:end -->
Update energymon-sys and energymon-default-sys versions
Includes build script updates to support Rust linking to static libs on ARM systems as well as some changes to ODROID Smart Power and RAPL energymon implementations.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7993)
<!-- Reviewable:end -->
Support the updated spidermonkey bindings
Still need to finish the rust-mozjs update and make cargo use it, but it's close enough that I don't expect much to change on the servo side.
Some changes here
- bools are properly translated now
- char16_t is handled as u16 now
- JS_GlobalObjectTraceHook isn't mangled now
- JSJitInfo has been adjusted
- A const fn is used to generate bitfields in JSJitInfo
- Manually generating handles now requires calling an unsafe function. It's not actually required, but it's too much of a hassle to generate them manually now due to bindgen++ adding base classes now.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7727)
<!-- Reviewable:end -->
It holds a function pointer to the HeapSizeOf::heap_size_of_children()
implementation corresponding to that IDL interface.
This removes the need for a clumsly TypeId-based match expression in the
former heap_size_of_eventtarget() function.
Generate the various TypeId enums in codegen
This frees us forever from caring about maintaining these enums. The last commit removes their use from the initialisation of interface objects derived from Node.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7873)
<!-- Reviewable:end -->