Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upUpgrade to Spidermonkey 39 #6150
Conversation
highfive
commented
May 20, 2015
hoppipolla-critic-bot
commented
May 20, 2015
|
Critic review: https://critic.hoppipolla.co.uk/r/5064 This is an external review system which you may optionally use for the code review of your pull request. In order to help critic track your changes, please do not make in-place history rewrites (e.g. via |
|
|
|
|
9cfbaae
to
2614646
|
Apparently homu/bors doesn't always notice a bitrotted PR? Bitrotted by #6179 . |
|
|
|
|
|
Bors is now blaming random PRs for bitrot here. |
7ee6fc0
to
5e49f69
|
|
|
Review status: all files reviewed, 125 unresolved discussions, some commit checks failed.
components/layout/wrapper.rs, line 524 [r10] (raw file): components/script/dom/bindings/callback.rs, line 52 [r10] (raw file): components/script/dom/bindings/callback.rs, line 109 [r10] (raw file): components/script/dom/bindings/callback.rs, line 160 [r10] (raw file): components/script/dom/bindings/callback.rs, line 191 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 667 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 993 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 1291 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 1293 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 1410 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 1763 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 1777 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2058 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2214 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2275 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2290 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2305 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2372 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2485 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2541 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2553 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2693 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2695 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2701 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2722 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2742 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2748 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2799 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2815 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2875 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2889 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2891 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 3040 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 3060 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 3098 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 4236 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 4252 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 4255 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 4412 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 4477 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 4837 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 4894 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 5215 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 5310 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 5314 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 5509 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 30 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 97 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 337 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 342 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 348 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 357 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 385 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 406 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 441 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 451 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 465 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 498 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 513 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 518 [r10] (raw file): components/script/dom/bindings/error.rs, line 150 [r10] (raw file): components/script/dom/bindings/js.rs, line 290 [r10] (raw file): components/script/dom/bindings/js.rs, line 417 [r10] (raw file): components/script/dom/bindings/proxyhandler.rs, line 84 [r10] (raw file): components/script/dom/bindings/proxyhandler.rs, line 89 [r10] (raw file): components/script/dom/bindings/proxyhandler.rs, line 92 [r10] (raw file): components/script/dom/bindings/proxyhandler.rs, line 96 [r10] (raw file): components/script/dom/bindings/proxyhandler.rs, line 114 [r10] (raw file): components/script/dom/bindings/proxyhandler.rs, line 126 [r10] (raw file): components/script/dom/bindings/structuredclone.rs, line 52 [r10] (raw file): components/script/dom/bindings/trace.rs, line 94 [r10] (raw file): components/script/dom/bindings/trace.rs, line 118 [r10] (raw file): components/script/dom/bindings/trace.rs, line 186 [r10] (raw file): components/script/dom/bindings/trace.rs, line 195 [r10] (raw file): components/script/dom/bindings/trace.rs, line 349 [r10] (raw file): components/script/dom/bindings/trace.rs, line 380 [r10] (raw file): components/script/dom/bindings/utils.rs, line 24 [r10] (raw file): components/script/dom/bindings/utils.rs, line 84 [r10] (raw file): components/script/dom/bindings/utils.rs, line 194 [r10] (raw file): components/script/dom/bindings/utils.rs, line 206 [r10] (raw file): components/script/dom/bindings/utils.rs, line 243 [r10] (raw file): components/script/dom/bindings/utils.rs, line 317 [r10] (raw file): components/script/dom/bindings/utils.rs, line 342 [r10] (raw file): components/script/dom/bindings/utils.rs, line 351 [r10] (raw file): components/script/dom/bindings/utils.rs, line 369 [r10] (raw file): components/script/dom/bindings/utils.rs, line 403 [r10] (raw file): components/script/dom/bindings/utils.rs, line 408 [r10] (raw file): components/script/dom/bindings/utils.rs, line 418 [r10] (raw file): components/script/dom/bindings/utils.rs, line 490 [r10] (raw file): components/script/dom/bindings/utils.rs, line 497 [r10] (raw file): components/script/dom/bindings/utils.rs, line 499 [r10] (raw file): components/script/dom/bindings/utils.rs, line 515 [r10] (raw file): components/script/dom/bindings/utils.rs, line 542 [r10] (raw file): components/script/dom/browsercontext.rs, line 28 [r10] (raw file): components/script/dom/browsercontext.rs, line 124 [r10] (raw file): components/script/dom/browsercontext.rs, line 130 [r10] (raw file): components/script/dom/customevent.rs, line 24 [r10] (raw file): components/script/dom/element.rs, line 189 [r10] (raw file): components/script/dom/element.rs, line 519 [r10] (raw file): components/script/dom/errorevent.rs, line 32 [r10] (raw file): components/script/dom/eventtarget.rs, line 200 [r10] (raw file): components/script/dom/eventtarget.rs, line 212 [r10] (raw file): components/script/dom/htmlcanvaselement.rs, line 142 [r10] (raw file): components/script/dom/htmlinputelement.rs, line 155 [r10] (raw file): components/script/dom/htmlstyleelement.rs, line 71 [r10] (raw file): components/script/dom/imagedata.rs, line 29 [r10] (raw file): components/script/dom/imagedata.rs, line 39 [r10] (raw file): components/script/dom/messageevent.rs, line 39 [r10] (raw file): components/script/dom/messageevent.rs, line 66 [r10] (raw file): components/script/dom/node.rs, line 1030 [r10] (raw file): components/script/dom/node.rs, line 1166 [r10] (raw file): components/script/dom/node.rs, line 1533 [r10] (raw file): components/script/dom/node.rs, line 1539 [r10] (raw file): components/script/dom/testbinding.rs, line 81 [r10] (raw file): components/script/dom/testbinding.rs, line 127 [r10] (raw file): components/script/dom/testbinding.rs, line 128 [r10] (raw file): components/script/dom/textencoder.rs, line 84 [r10] (raw file): components/script/dom/webglrenderingcontext.rs, line 109 [r10] (raw file): components/script/dom/webglrenderingcontext.rs, line 253 [r10] (raw file): components/script/dom/window.rs, line 579 [r10] (raw file): components/script/dom/window.rs, line 582 [r10] (raw file): components/script/timers.rs, line 215 [r10] (raw file): components/script/timers.rs, line 223 [r10] (raw file): components/script/timers.rs, line 248 [r10] (raw file): components/script/timers.rs, line 252 [r10] (raw file): Comments from the review on Reviewable.io |
|
Review status: all files reviewed, 94 unresolved discussions, some commit checks failed. components/layout/wrapper.rs, line 524 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 667 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 993 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 1777 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2290 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2541 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2553 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2701 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2722 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2742 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2748 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2799 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2815 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2875 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 2891 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 4477 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 4894 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 5215 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 5310 [r10] (raw file): components/script/dom/bindings/codegen/CodegenRust.py, line 5314 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 337 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 342 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 357 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 385 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 406 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 441 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 451 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 465 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 498 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 513 [r10] (raw file): components/script/dom/bindings/conversions.rs, line 518 [r10] (raw file): components/script/dom/bindings/error.rs, line 150 [r10] (raw file): components/script/dom/bindings/js.rs, line 417 [r10] (raw file): components/script/dom/bindings/proxyhandler.rs, line 84 [r10] (raw file): components/script/dom/bindings/proxyhandler.rs, line 89 [r10] (raw file): components/script/dom/bindings/proxyhandler.rs, line 92 [r10] (raw file): components/script/dom/bindings/proxyhandler.rs, line 96 [r10] (raw file): components/script/dom/bindings/proxyhandler.rs, line 114 [r10] (raw file): components/script/dom/bindings/proxyhandler.rs, line 126 [r10] (raw file): components/script/dom/bindings/utils.rs, line 243 [r10] (raw file): components/script/dom/bindings/utils.rs, line 497 [r10] (raw file): components/script/dom/bindings/utils.rs, line 515 [r10] (raw file): components/script/dom/browsercontext.rs, line 124 [r10] (raw file): components/script/dom/browsercontext.rs, line 130 [r10] (raw file): components/script/dom/customevent.rs, line 24 [r10] (raw file): components/script/dom/htmlinputelement.rs, line 155 [r10] (raw file): components/script/dom/imagedata.rs, line 39 [r10] (raw file): components/script/dom/node.rs, line 1030 [r10] (raw file): components/script/dom/node.rs, line 1166 [r10] (raw file): components/script/dom/node.rs, line 1533 [r10] (raw file): components/script/dom/node.rs, line 1539 [r10] (raw file): components/script/dom/textencoder.rs, line 84 [r10] (raw file): components/script/dom/webglrenderingcontext.rs, line 109 [r10] (raw file): components/script/dom/webglrenderingcontext.rs, line 253 [r10] (raw file): components/script/dom/window.rs, line 579 [r10] (raw file): components/script/timers.rs, line 215 [r10] (raw file): components/script/timers.rs, line 223 [r10] (raw file): components/script/timers.rs, line 248 [r10] (raw file): components/script/timers.rs, line 252 [r10] (raw file): Comments from the review on Reviewable.io |
|
@bors-servo r+ |
|
|
Upgrade to Spidermonkey 39 > 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 <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6150) <!-- Reviewable:end -->
|
|
|
Confirming my r+ regarding CEF linkage hacks. |
|
Fixing servo/rust-mozjs#158 should let us get rid of the CEF linkage hacks |
|
@bors-servo r+ |
|
|
Upgrade to Spidermonkey 39 > 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 <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6150) <!-- Reviewable:end -->
|
|
|
\o/ |
Update rust-selectors servo/rust-selectors#30 r? @Ms2ger This conflicts with the SpiderMonkey upgrade #6150. I’m happy to wait until that lands and rebase. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6427) <!-- Reviewable:end -->
Update rust-selectors servo/rust-selectors#30 r? @Ms2ger This conflicts with the SpiderMonkey upgrade #6150. I’m happy to wait until that lands and rebase. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6427) <!-- Reviewable:end -->
Ms2ger commentedMay 20, 2015