By default, `cc` is used for the final linking of servo, which points to the host's compiler. This patch ensures that the correct linker is used for cross-compiling to ARM.
Part of #6327
Source-Repo: https://github.com/servo/servo
Source-Revision: fa45688191221bf32a7a20188d5a8817c4ab61f2
I left out checking invalid values when setting the shadows attributes.
r? @nox @pcwalton
cc @yichoi
Source-Repo: https://github.com/servo/servo
Source-Revision: 02303941bef5f5bbdbec750ab0dfa0b77f32345a
> Here it is.
>
> ~~There's two major things that are unfinished here:~~
> - ~~Dealing with the unroot_must_root lint. I'm not sure about the value of this lint with the new rooting API.~~ Done.
> - ~~Updating the Cargo.locks to point to the new SM and SM binding.~~ Done.
>
> I also included my fixes for the rust update, but these will disappear in a rebase. A rust update is necessary to support calling `Drop` on `Heap<T>` correctly when `Heap<T>` is inside a `Rc<T>`. Otherwise `&self` points to the wrong location.
>
> Incremental GC is disabled here. I'm not sure how to deal with the incremental barriers so that's left for later.
>
> Generational GC works. SM doesn't work without it.
>
> The biggest change here is to the rooting API. `Root` was made movable, and `Temporary` and `JSRef` was removed. Movable `Root`s means there's no need for `Temporary`, and `JSRef`s aren't needed generally since it can be assumed that being able to obtain a reference to a dom object means it's already rooted. References have their lifetime bound to the Roots that provided them. DOM objects that haven't passed through `reflect_dom_object` don't need to be rooted, and DOM objects that have passed through `reflect_dom_object` can't be obtained without being rooted through `native_from_reflector_jsmanaged` or `JS::<T>::root()`.
>
> Support for `Heap<T>` ended up messier than I expected. It's split into two commits, but only because it's a bit difficult to fold them together. Supporting `Heap<T>` properly requires that that `Heap::<T>::set()` be called on something that won't move. I removed the Copy and Clone trait from `Heap<T>` so `Cell` can't hold `Heap<T>` - only `UnsafeCell` can hold it.
>
> `CallbackObject` is a bit tricky - I moved all callbacks into `Rc<T>` in order to make sure that the pointer inside to a `*mut JSObject` doesn't move. This is necessary for supporting `Heap<T>`.
>
> `RootedCollectionSet` is very general purpose now. Anything with `JSTraceable` can be rooted by `RootedCollectionSet`/`RootedTraceable`. Right now, `RootedTraceable` is only used to hold down dom objects before they're fully attached to their reflector. I had to make a custom mechanism to dispatch the trace call - couldn't figure out how to get trait objects working for this case.
>
> This has been tested with the following zeal settings:
>
> GC after every allocation
> JS_GC_ZEAL=2,1
>
> GC after every 100 allocations (important for catching use-after-free bugs)
> JS_GC_ZEAL=2,100
>
> Verify pre barriers
> JS_GC_ZEAL=4,1
>
> Verify post barriers
> JS_GC_ZEAL=11,1
Source-Repo: https://github.com/servo/servo
Source-Revision: e7808c526c348fea5e3b48af70b7f1a066652097
Sorry for not doing it yesterday, I couldn't.
cc @metajack @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 4ebb95ccd8e034007eacb447a054919ef4af2bf7
This eliminates the last bit of script crate generating in-tree
files. This now allows cargo target dir sharing to fully work.
Source-Repo: https://github.com/servo/servo
Source-Revision: 5dc546b4cf19b3281ee10d2948a75984c62e3763
This is necessary to ensure Cargo knows when to rebuild. Normally
.gitignore would be enough to exclude these from Cargo's freshness
calculation, but https://github.com/rust-lang/cargo/issues/1729 prevents
this currently. This is the new, correct way to do these thigns, just
like the style crate does.
Source-Repo: https://github.com/servo/servo
Source-Revision: ff59e1b8de67f1988522d6b6e6c4adda957fad5b
Depends on servo/rust-azure#170 which has been already merged.
So this patch contains the update of rust-azure.
r? @nox
cc @yichoi
Source-Repo: https://github.com/servo/servo
Source-Revision: e1b28d893e54601bf497d0d5b83d77658ca16bac
Make an early return when the WebSocket connection fails in the constructor.
Also let the WebSocket connection to be closed when the connection could
not be established.
Fixes#6082.
Source-Repo: https://github.com/servo/servo
Source-Revision: a5d76e4b2c6ae8e2db82fc5156ad1bebf7961f80
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.
Source-Repo: https://github.com/servo/servo
Source-Revision: d6263c9b6e969fde4c644034e684a39d68667ad9
See #6376
r? @Ms2ger
Snaps don't exist yet, putting up the @larsbergstrom signal. The snap need not exactly match this commit, anything in the vicinity, or just master, should work really. (yay stability)
There's no particular reason behind this rustup except that I want to keep Servo running on almost-master as much as possible.
Source-Repo: https://github.com/servo/servo
Source-Revision: 67b121c0b82f4a2107d7b015f60bd025e04dc336
#6315
Set 'mach test-ref' default render mode to cpu and added a cli argument to 'mach test' to be able to select the render-mode, also renamed the 'kind' argument from 'test-ref' to '--render-mode' for coherence with reftest.rs
Source-Repo: https://github.com/servo/servo
Source-Revision: bedfa74b1f66a87dac00c46ac6560fa012f033d9
This just bumps `offscreen_gl_context`, which added egl support
recently.
Source-Repo: https://github.com/servo/servo
Source-Revision: b0a80de92bf946696fdc9c227439796b094bfde7
This makes the difference between selector matching scaling on the ARM
Cortex-A9 and not, because the auto-derived `PartialEq` implementation
blows out the 32KB I-cache. With this change, there is a 2x improvement
in selector matching over sequential when using all 8 cores. (More work
needs to be done; this is a start.)
r? any DOM expert
Source-Repo: https://github.com/servo/servo
Source-Revision: c3d242544e809aca945cf0ca6c2bf0f45ce6a602
This unblocks facebook.com's feed, after a few months of it being accidentally broken.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8063e342359615552b26ea10d42b2c6a827331fb
Passing a function that measures TLS to WorkQueue is a bit weird, but I can't see how else to measure that data.
Source-Repo: https://github.com/servo/servo
Source-Revision: f03f584895f80deb08c77c817f6655609c4ee97c
This reduces the overhead of the work-stealing traversal function
significantly. It's especially important on ARM, where memory barriers are
expensive.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 836ac8a0b6daeecb865bcf35d2b39602398870ef
It seems @hyowon uploaded her canvas shadow patch faster than me; I've handled the color dependency a bit different, this way `gfx_traits` is not required by the script module.
Source-Repo: https://github.com/servo/servo
Source-Revision: c8c7bd900dde73d4fddafea8239f44440f1c863b
The first step of the implementation for shadows in canvas.
r? @nox @jdm
cc @yichoi
Source-Repo: https://github.com/servo/servo
Source-Revision: f163f2bf0d32861ea20470d405bb517ed5b09e84
Make an early return when the WebSocket connection fails in the constructor.
Also let the WebSockect connection to be closed when the connection could
not be established.
Fixes#6082.
Fixes#6086.
Source-Repo: https://github.com/servo/servo
Source-Revision: a3eb253bdce7ed4ad5bcc2c2e7af9cfe01826d99
Prior to this change, a panic would occur if a CollectReport message was
received while the LayoutTask was shutting down. Now it just gets
ignored.
Source-Repo: https://github.com/servo/servo
Source-Revision: 74ef31cfc4805d6dbeaa9e4769f0ceb14d124733
According to #6332, Github's Linguist reported Servo as being
written in HTML instead of Rust. This fixes that by overriding
the linguist-vendored attribute for the tests directory.
Source-Repo: https://github.com/servo/servo
Source-Revision: 37fcced0fa6b23a43596333aa9f057b21d0e6157
This will allow reporting of memory usage by FreeType instances, which
are measured in the MiBs for LayoutWorker threads.
This change also makes FreeType allocations happen with jemalloc instead
of the system malloc, which is a good thing.
Finally, the change documents some dubiousness involving
FontContextHandle.
Source-Repo: https://github.com/servo/servo
Source-Revision: fdeebf86a1424e9fffa122efa08fe397f6e7cd7d