This PR integrates `compiletest_rs` as suggested in #5646. I created a new `tests/compiletest` directory which contains separate crates for the tests.
Currently this PR includes `compile-fail` tests for some lints (acutally all except inheritance_integrity, beacuse I'm not sure how to include the dom stuff in a way the `#[dom_struct]` works).
I gathered that there should be more crates for which compiletests make sense and would appreciate any pointers to relevant crates.
Source-Repo: https://github.com/servo/servo
Source-Revision: d574b78313be75f3388123d11354b897598877a3
I updated the `WebIDL.py` from latest mozilla-central. And add a `./mach test-webidl` command. For #9397
Source-Repo: https://github.com/servo/servo
Source-Revision: 0ada7f9c8eda9879b5536cea3266c94214f9ce9b
This branch also includes the commit being reviewed in https://github.com/servo/servo/pull/9408 . Is it OK to just wait for that one to merge, or should I separate them?
This patch adds the BIN_SUFFIX to the servo executable name when doing ./mach run.
However just doing this caused subprocess to error due to some unicode symbols in PATH.
To fix this, I pulled a peice of code from mozilla-central which fixes this problem there. Source: https://dxr.mozilla.org/mozilla-central/source/python/mach/mach/mixin/process.py#108
Revisiting this now (originally developed this a few weeks ago), perhaps we should be using https://github.com/servo/servo/blob/master/python/mach/mach/mixin/process.py instead of subprocess to give us all of this crossplatform process execution support. I think that should be a nice to have though - this patch at least gets a necessary development command working on windows.
Tested on Windows and Ubuntu.
Source-Repo: https://github.com/servo/servo
Source-Revision: 80c29113485c0b7d7da6be9c4f64a2b8f1cde826
r? @frewsxcv for python stuff
r? @pcwalton for the "remove usage of Gaol" stuff for Win32
r? anybody else for misc cargo.lock updates, etc.
This replaces #7878.
This works best with https://github.com/servo/mozjs/pull/71, too, to enable static linking, but can be run without (via some PATH hackery).
The instructions are here, and will be added to a .md file in the repo once the mozjs changes also land:
https://hackpad.com/Servo-on-Windows-C1LPcI2bP25
I'd like to get these changes landed because I've been rebasing them for months, they're otherwise quite stable, and don't affect our other platforms and targets.
Source-Repo: https://github.com/servo/servo
Source-Revision: 525e77f64fc65ea2397b4ff3849f5b1f39386698
The wrapper stuff is partially-complete, modulo some unimplemented methods. The glue code is just a toy for now. Regardless, I think it's worth getting some of this stuff in-tree to minimize breakage.
Source-Repo: https://github.com/servo/servo
Source-Revision: 77d3fbcca3c6f7e8b4068f89e25b090977fe5672
I’ve been asked for that list by two different people this week :)
r? @larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: dba1f27305c5e81eda6acd4c438a2adfb6ed053d
add `faster` flag to `./mach test` command
in order to call `test-tidy` properly
close#9253
Source-Repo: https://github.com/servo/servo
Source-Revision: a345608a945b3ba6656715671bf0d67a8bd4c151
This should be pretty self-explanatory, it's less than a dozen bytes, after all. :)
Fixes#9151.
Source-Repo: https://github.com/servo/servo
Source-Revision: 4143caaa5796c4e6cfaa6b13d46b409819d822d7
For issue #9088, this adds a `--changes` option to `./mach test-tidy`. If this option is set, `tidy.py` will only check files that have been modified since `FETCH_HEAD`.
Mention: @Wafflespeanut
Source-Repo: https://github.com/servo/servo
Source-Revision: 74226836ba27afedebd88cd1269018ef2ba25959
When `.servobuild` has `android = true`, the `mach run` command should default to running on Android.
r? @larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: ea4206e36259cd464480fed3ca9ac6857568bd7c
This is an attempt at a reasonable fix for #8733.
Source-Repo: https://github.com/servo/servo
Source-Revision: 9fa56ccfdfb5e9d1c1a6967b28da89c8fab36900
… and remove mentions of "snapshots".
We now use rust-lang.org nightly builds rather than our own snapshots.
Source-Repo: https://github.com/servo/servo
Source-Revision: f34a656b14f3992203354ffe71dc649d69b6b592
--HG--
rename : servo/rust-snapshot-hash => servo/rust-nightly-date
If the selected debugger (requested explicitly or detected by mozdebug)
is gdb or lldb, use rust-gdb or rust-lldb instead, if it's available in
the path and appears to be working.
(This should usually be the case when using the default debugger on
GNU/Linux or MacOS, as rust-gdb or rust-lldb is provided by the Rust
snapshot in use.)
Note: I cobbled this together without *any* previous Python experience -- so if it violates three dozen rules, and only works by luck on my own system during a favourable moon phase, don't hesitate to suggest improvements :-)
Source-Repo: https://github.com/servo/servo
Source-Revision: 4e3a435450a8a5ee4293266296700bf1bc579f7d
Currently it sets the SERVO_URL variable, which Servo no longer supports.
r? @larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: 2a3a7a73b54f89344b130e10811a2fc1f9a6c729
This PR adds a `mach install` command (a convenient way to run `adb install`), and does some minor code cleanup.
It also fixes parallelism in the OpenSSL build. For [complicated reasons][1], a sub-Make will not inherit `-j` options from its parent process unless it is invoked directly from another Makefile. This means we should run make from openssl.makefile rather than openssl.sh.
r? @larsbergstrom
[1]: http://make.mad-scientist.net/papers/jobserver-implementation/
Source-Repo: https://github.com/servo/servo
Source-Revision: a1fb12616a29d2190baadd20d7763af1d9c02260
I've created a draft, please give me feedback. Is it good direction?
Fixes#8568
Source-Repo: https://github.com/servo/servo
Source-Revision: e774a694407a435c7fb3ecee68b5bb50fbf2dc43
As mentioned in #7512 and #7637, the environment variable SERVO_HEADLESS
enables building the OSMesa version of Servo when it is set to 1.
Instead, this should be a command line option to mach's build command.
Fixes#7637.
Source-Repo: https://github.com/servo/servo
Source-Revision: 3c0cd5eb068945860fb357c975bfbe6070eebe49
This makes the initial download for skia go from a 300 MB git repository to a 5 MB tarball. This should help with issues like #6132 and #7687.
Fix https://github.com/servo/skia/issues/70
This builds, but the at the moment causes a number of tidy errors for duplicated crates.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8b95d7b8d860ec4c0834192083361a9fb78ddbeb
Urg! The Chromium HSTS preload JSON file contains single line comments. Previously these were filtered out with a very simple regex that just looked for '//' and removed the line. Now the file has added a couple fields that have URLs in them that were erroneously removed and caused the JSON parsing to fail. This commit slightly complicates the regex to fix this specific problem.
If this happens again, it's likely worth it to figure out how to use a real parser to remove the comments.
servo/servo#8760
Source-Repo: https://github.com/servo/servo
Source-Revision: 2be60be062e14c937af601faed78a6aceccdb062
Instead of always using the absolute path to the reference file when
creating new reference tests, create-wpt now creates relative URLs if
the files are in the same directory. This is the most common case for
new Servo tests. Also fix some missing quotation marks in the
create-wpt template.
Source-Repo: https://github.com/servo/servo
Source-Revision: 5fda719fa8cd513d888011d12262bb8ccd000dce
r? @Manishearth
This lets devs configure their use of CCACHE with their .servobuild file, as usual. For build environments, they can either have a .servobuild file or set the CCACHE env var to point at the ccache binary to use.
It also adds support for ccache to our travis builds. Buildbot will come in a separate commit to the saltfs repo.
It is expected that the various cargo makefiles will look at this variable and do the "right thing" to tell their native build to instead use ccache. e.g., https://github.com/servo/mozjs/pull/62
Source-Repo: https://github.com/servo/servo
Source-Revision: d16ba51b4722a84f69976ca8679af672495248c8
When mach_bootstrap got interrupted while it's setting up virtualenv or
calling out to pip, it wouldn't repeat that step on subsequent runs, and
mach fails because its environment isn't set up properly or dependencies
are missing.
So now we re-run virtualenv if activate_this.py doesn't exist, and only
create the marker file for required packages after pip has returned
successfully.
Source-Repo: https://github.com/servo/servo
Source-Revision: afc41ec4ac404a160edb8c8fb12434fe54d59821
r/f? @mbrubeck
No need to r+ urgently; I want to do a little bit more testing of the release build, but I'm hoping to land this bit (moving to a more sane build process) next week.
The new version of building an APK:
1) Removes the glutin-based APK builder from the link step
2) Adds a build.rs step to the build of the final Servo library that adds the native code required by glutin's android_rs_glue (e.g., `ANativeActivity_onCreate` definition)
3) Replaces the link step with a `fake-ld.sh` script that instead creates a libservo.so
4) Adds a new mach `package` step to build the APK that has some Rust code that builds the library from a set of in-tree build files
This setup fixes a number of problems:
1) We can use gdb, because we use `ndk-build`, which adds the .gdbserver info, plus we keep around all of the build files (also required by the ndk gdb)
2) We can add more Java code & hooks to handle Android intents
3) We no longer have any git submodules or the awkward two-step build with android-rs-glue
Many other setups were tried (and failed). The most obvious ones is building a libservo.so from a `dylib` target from the servo build on Android. This doesn't work because you can't have a different default lib target on one platform than others in Cargo, and you also can't pass it in from the commandline (e.g., --lib does not have a dylib arg). Additionally, if you don't go through the intermediate libservo.rlib step (which removes unused symbols), then you end up with a TON of missing symbols because our -sys crates are super sloppy about that. I spent a few weeks beginning to clean them up, but since it's something we can't easily enforce (and new -sys packages will have this problem, too, since it's only an issue with the Android loader), it made more sense to me to just have the build set up to discard those unused bits of code before they ever get to the linker, much less the loader.
Source-Repo: https://github.com/servo/servo
Source-Revision: 0699d38e80c029a384354da96596421f3a97ceef
This gives mach the ability to run clippy with `./mach clippy`.
Fixes#8134.
Source-Repo: https://github.com/servo/servo
Source-Revision: 79f300f0387ad8218d06511c429d071cdef0193c
Removes all those messy FooCast structures in InheritTypes.rs.
Source-Repo: https://github.com/servo/servo
Source-Revision: 674589c370d978f543e71f995d58c5b28e6e9842
Flags links to the single-page WHATWG specification and suggests the URL
for the multi page one.
Fixes#7998
Source-Repo: https://github.com/servo/servo
Source-Revision: 36998cd5b1ab8da63b6ec82c7d45b5dc08b5d42a
We don't need regex matching since ": &Vec<" doesn't
contain any special character.
New code reads better.
Fixes#7914.
Source-Repo: https://github.com/servo/servo
Source-Revision: 1192efed505ca19a395f22cd5e5733e8c57a6e82
Continuous non-transient notifications, common in workflows involving
many syntax errors, can completely take over the message tray. Making
Linux build notifications transient prevents them from stacking up in
Gnome Shell without having to click them individually.
Source-Repo: https://github.com/servo/servo
Source-Revision: 03f6415eb49656fd1ce8b4de8c8b083e97a4f9d7
Upgrade Cargo to get https://github.com/rust-lang/cargo/pull/1828, and use it for unit tests. This allows Cargo to get some more parallelism when compiling the test crates’ dependencies.
`touch components/util/lib.rs && mach test-unit` on my machine goes from 149 seconds to 124.
Source-Repo: https://github.com/servo/servo
Source-Revision: ba2714f4f607da77bd7200f88cfa16c1d10da9cd
r? @SimonSapin
* Allow reftest harness to take 0 or more testname arguments.
* Change `mach test-ref` parameter from `--name` to `--include`. This is consistent with other test suites, and also fixes a bug in `mach test` caused by a conflicting keyword parameter in `Registrar.dispatch`.
* Allow `mach test-ref` to take any number of `include` arguments.
Source-Repo: https://github.com/servo/servo
Source-Revision: 9488013b59e54f9a39cc89362ee6b84f89cc8ed0
Fixes#7618.
Allows running a specific Rust test with one of:
```
./mach test tests/unit/net/http_loader.rs
./mach test-unit tests/unit/net/http_loader.rs
./mach test-unit tests/unit/net/http_loader
./mach test-unit net/http_loader
```
Allows running a whole package's tests with one of:
```
./mach test tests/unit/net
./mach test-unit tests/unit/net
```
Source-Repo: https://github.com/servo/servo
Source-Revision: 5d04f8dc8e59fea8ef49beb89af26089421ef748
Allows running WPT tests in the tests/wpt/mozilla/ directory by using commands such as:
```
./mach test tests/wpt/mozilla/tests/mozilla/union.html
```
Fixes#7772.
Source-Repo: https://github.com/servo/servo
Source-Revision: 9a4eb565c4a423ed1278a5e28ad06775695861da
Since mach now puts everything into a virtualenv, we need to set the bundle identifier to allow sending notifications.
Source-Repo: https://github.com/servo/servo
Source-Revision: a1fb8cfbb0be8d0a73bc1e3b63eb704f48098b8f
This is a follow up of issue : Tidy has an off-by-one error #7686
It allows to raise the max length error when line is over than 120 not at 120 specifically.
Thanks for looking into it.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8f1469eb08a437bcc6cfb510334be2b6430b4a8f
This PR is in reference to #7630
I've added a simple try catch around our use of subprocess.check_all when trying to invoke and use python's
- virtualenv
- pip
Upon failure, I use sys.exit with an error message for the user. Exit seemed appropriate as anything beneath those dependencies will fail to execute and result in a non friendly error message
Source-Repo: https://github.com/servo/servo
Source-Revision: 44de9173cc968957e4441c14f57014111a2b847e
...by using a 'marker file' to indicate whether we actually need to run pip.
Also a minor tweak for clarity.
Before (consistently):
```
$ time ./mach >/dev/null
real 0m0.666s
user 0m0.477s
sys 0m0.190s
```
After:
```
$ time ./mach >/dev/null # first run
real 0m0.665s
user 0m0.501s
sys 0m0.166s
$ time ./mach >/dev/null
real 0m0.121s
user 0m0.083s
sys 0m0.039s
```
Source-Repo: https://github.com/servo/servo
Source-Revision: b511004a616862394318381d7ef5ac3c59c7babe
Currently, ld.gold is always used for linking if found on the
system. There are some cases however when one may want to opt out
from using it. This patch adds the boolean field `rustc-with-gold`
to the `[tools]` section of `.servobuild`, which if set false,
disables the use of ld.gold.
Source-Repo: https://github.com/servo/servo
Source-Revision: 273306056428e0378ebf27a1573a783aad866b5f
Solves Issue #6670.
Now `./mach grep` will not grep from minified js files or from `tests/jquery` directory.
Works only with git >= 1.9.0.
Source-Repo: https://github.com/servo/servo
Source-Revision: ae55b31a7f99633d0fad0cb78cb2043ae18ae437
In #7348 `os.walk` was replaced with `os.listdir`. The latter is not
recursive, which results in only the root directory files getting linted
The changes to `ignored_files` are needed because calling `os.walk(".")`
results in `./` getting prefixed before each path
Source-Repo: https://github.com/servo/servo
Source-Revision: 842112c0f39542a4fb120ade4afad302221609d8
Refs: https://github.com/servo/servo/issues/7078
Sample output:
```
$ time ./mach test-tidy
tests/ref/background_image_a.html not used or commented out in basic.list
tests/ref/background_image_ref.html not used or commented out in basic.list
tests/ref/canvas_linear_gradient_a.html not used or commented out in basic.list
tests/ref/canvas_linear_gradient_ref.html not used or commented out in basic.list
tests/ref/canvas_radial_gradient_a.html not used or commented out in basic.list
tests/ref/canvas_radial_gradient_ref.html not used or commented out in basic.list
tests/ref/inline_border_a.html not used or commented out in basic.list
tests/ref/inline_border_b.html not used or commented out in basic.list
tests/ref/inline_text_align_a.html not used or commented out in basic.list
tests/ref/inline_text_align_b.html not used or commented out in basic.list
tests/ref/link_style_dynamic_addition.html not used or commented out in basic.list
tests/ref/link_style_dynamic_addition_ref.html not used or commented out in basic.list
tests/ref/overflow_position_abs_inside_normal_a.html not used or commented out in basic.list
tests/ref/overflow_position_abs_inside_normal_b.html not used or commented out in basic.list
tests/ref/overflow_position_abs_simple_a.html not used or commented out in basic.list
tests/ref/overflow_position_abs_simple_b.html not used or commented out in basic.list
tests/ref/position_fixed_a.html not used or commented out in basic.list
tests/ref/position_fixed_b.html not used or commented out in basic.list
tests/ref/position_fixed_simple_a.html not used or commented out in basic.list
tests/ref/position_fixed_simple_b.html not used or commented out in basic.list
tests/ref/position_fixed_static_y_a.html not used or commented out in basic.list
tests/ref/position_fixed_static_y_b.html not used or commented out in basic.list
tests/ref/style_is_in_doc.html not used or commented out in basic.list
tests/ref/style_is_in_doc_ref.html not used or commented out in basic.list
tests/ref/table_specified_width_a.html not used or commented out in basic.list
tests/ref/table_specified_width_ref.html not used or commented out in basic.list
tests/ref/text_decoration_propagation_a.html not used or commented out in basic.list
tests/ref/text_decoration_propagation_b.html not used or commented out in basic.list
tests/ref/text_shadow_multiple_shadows_a.html not used or commented out in basic.list
tests/ref/text_shadow_multiple_shadows_ref.html not used or commented out in basic.list
tests/ref/viewport_percentage_vmin_vmax_b.html not used or commented out in basic.list
tests/ref/viewport_percentage_vw_vh_b.html not used or commented out in basic.list
tests/ref/white_space_intrinsic_sizes_a.html not used or commented out in basic.list
tests/ref/white_space_intrinsic_sizes_ref.html not used or commented out in basic.list
tests/ref/fonts/takao-p-gothic/COPYING.html not used or commented out in basic.list
tests/ref/iframe/multiple_external_child.html not used or commented out in basic.list
...
```
I thought it might be helpful to say which files aren't used in `basic.list`.
`./mach test-tidy` is a second or two slower on my laptop.
Not sure if this counts as a warning or an error that should return 1.
Not sure whether unused file output should go before or after the line specific errors.
Source-Repo: https://github.com/servo/servo
Source-Revision: b1f0357fcee0b05bee79399bc96ea327b8b8dac8
In some of these cases, files were not being closed
Source-Repo: https://github.com/servo/servo
Source-Revision: 3a48e04caffa4ba25854a4190883d1985845a359
Expands on the work by @wilmoz and cleans up the existing errors. Closes#7180. Closes#7111.
Source-Repo: https://github.com/servo/servo
Source-Revision: e74825f9fde8e222f4ba9bb24b2c2a3864c73e5f
This shaves 50 seconds off the build time on my machine.
Source-Repo: https://github.com/servo/servo
Source-Revision: a1aed50b5a2686015bc3a17ec891a56eef8c1fc9
This reverts commit c315404db80c92a695531b0aa4bcf61c125a3bff, reversing
changes made to b00583bd4e7169a6b952633df718268904f2bd0c.
Source-Repo: https://github.com/servo/servo
Source-Revision: 47d6d958f58f5011742a18abcdd5a76bf4390966
If someone were to write:
def hello() :
print "hello world"
flake8 would warn:
stdin:54:45: E203 whitespace before ':'
Normally there are only three colons in a flake8 error message, but this
one has four, which causes issue with this line:
_, line_num, _, message = error.split(":")
...causing this error:
ValueError: too many values to unpack
This commit updates the `str.split` call to utilize the `maxsplit`
parameter to prevent this error from occurring.
Source-Repo: https://github.com/servo/servo
Source-Revision: 729e003c5d954694e3fa6fd2b72702515ef94c6c
This lets Servo use one version of bitflags for all dependencies.
r? @larsbergstrom or @Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: df722ec1de957b0d6a0ef035c0c30aba0dade2cc
Currently, there are a few linting functions that only run on certain
filetypes (determined by the file extension). Prior to this commit, the
special cases were handled in a parent function with a conditional. This
commit changes the system so each linting function gets passed a
filename so the function can determine whether it should run or not
based on the file extension.
I also refactored flake8 linting slightly. From what I've read so far of
the code, flake8 itself will only print the results directly to stdout
(though the linter would report the quantity of errors detected).
Prior to this commit, we would let flake8 print directly to stdout and
just determine if there were >0 errors reported. This commit (sort of
hackily) temporarily captures stdout when we call flake8 so we can do
what we want with the output, allowing us to `yield` the line number
and message like we do with the other linting functions.
In my opinion, both of these changes isolate specific behaviors/checks
into their respective linting functions instead of having them handled
at a more global level.
In addition to the changes above:
* The whitespace linter now runs on WebIDL and TOML files
* The license header linter now runs on WebIDL files
Source-Repo: https://github.com/servo/servo
Source-Revision: 7c8922c0c39616559b580b4a363ebe2a8c6b3ba8
If there's an error in the command-line arguments for `mach build`, we should print it before starting a (potentially) long bootstrap process, not after.
r? @larsbergstrom or @frewsxcv
Source-Repo: https://github.com/servo/servo
Source-Revision: c7f73ebc2938e5dc67a10238cac9fc10f95e2f5f
Implement HSTS (preload-only) servo/servo#6105
* Downloads the HSTS preload list from the chromium repo (same as gecko), then convert it to a list appropriate for servo.
* Reads the preload list when creating a resource task, and implements STS for those domains.
Still todo:
* Read Strict-Transport-Security headers from servers and add details to the in-memory HSTS list. (note: this requires hyper or servo to implement an STS header struct. Hyper seems like the appropriate location, so I will create an issue/PR there soon). The work for this is nearly done with the exception of adding a new ControlMsg and the new header.
* Persist HSTS list to disk with known hosts (perhaps a different issue should be raised for this?)
Source-Repo: https://github.com/servo/servo
Source-Revision: ab3d6c472d409c1602c873dcdcb495a7fec9d4b0
This checks every .toml file for an asterisk and prints an error if found.
Source-Repo: https://github.com/servo/servo
Source-Revision: 58e9bc6583b6ebbeb27e3b28a6b271ee48cd695a
Recently, I found myself reading through the Python codegen scripts that
live in 'components/script/dom/bindings/*' and noticed that there were
many tidy violations: unnecessary semicolons, weird spacing, unused
variables, lack of license headers, etc. Considering these files are now
living in our tree and mostly maintained directly by contributors of
Servo (as opposed to being from upstream), I feel these files should not
be excluded from our normal tidy process. This commit removes the
blacklist on these files and fixes all tidy violations.
I added these subdirectories to the blacklist because they appear to be
maintained upstream somewhere else:
* "components/script/dom/bindings/codegen/parser/*",
* "components/script/dom/bindings/codegen/ply/*",
Also, I added a few '# noqa' comments which tells us to ignore the
flake8 errors for that line; they are mostly for unused/undefined
variables. I chose to ignore these (instead of fixing them) to make the
work for this commit simpler for me.
Source-Repo: https://github.com/servo/servo
Source-Revision: 2d2a340633dcc73e458a8454b78e26ba93511d37
notify_darwin should trap import errors and should provide the useful package name for the user to install. Fix for issue #6479.
Source-Repo: https://github.com/servo/servo
Source-Revision: 3df35c2f42d7224560837a9ef63400e0e16829bf
> 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
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
#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
* Don't hang silently when passed a non-existant file.
* Fix uncaught exception in `mach run` when Servo fails.
Source-Repo: https://github.com/servo/servo
Source-Revision: 9b5a01e0455dde921b57d8e802e4554418477d8f
Fixes#6236
Also included in this commit are the changes need to make flake8 pass
for the existing python file
Source-Repo: https://github.com/servo/servo
Source-Revision: ccfe29d8f284dedc0101045d574a98fb1f69aa62
After #6268 merged, I found out that everything in the tree currently
passes the tidy checker.
---------------
It is worth pointing out that I personally do not know if this is a feature wanted by others. Once I noticed everything was already tidy, I decided to open this PR to start the conversation (if any). I am not convinced this is really a Good Thing, so my feelings would not get hurt if this was closed immediately.
Source-Repo: https://github.com/servo/servo
Source-Revision: 055182dae1d895ba2422e3da85c20a9a64beea71
The existing code for setting up the environment assumes that
the directory layout containing rust and cargo conforms to the
one used by rust-installer's tarballs. This makes overriding
the system root awkward for simple cases where I want to test
my own build directly from the rust build directory. This
patch just adds a second path to PATH and LD_LIBRARY_PATH
to accomodate both disk layouts.
Conflicts:
python/servo/command_base.py
Source-Repo: https://github.com/servo/servo
Source-Revision: 2e93ae7f76f9ceb6733352cfd0e16ab478f1d0a3
Trailing whitespace was found using flake8
This is working towards making flake8 part of the tidy process: #6236
Source-Repo: https://github.com/servo/servo
Source-Revision: 93f09b88c4f316804d13deaadac8ee91afedfb3b
Versions of git before 1.8.1 do not support git submodule --recursive sync
This commit makes update_submodules() exit with an error message if the version is <1.8.1
https://github.com/servo/servo/issues/5637
--------------------
This was originally written by @ringmaster101. The commit was cherry-picked by @frewsxcv and modified to address the comments brought up in #5648
Source-Repo: https://github.com/servo/servo
Source-Revision: 2fb8d31b0619a749256dfcd7c241f4b96e1a6d46
Fixes issue #6112
update-cargo and cargo-update both require that the user specifies the "-p" flag along with a specified package OR specify the "-a" flag to update all packages.
Let me know if this is not the right functionality.
Source-Repo: https://github.com/servo/servo
Source-Revision: c981e9b2e36d4428cd3d55c7f2073f398251e777
(And the same for `rr-record`.) For consistency with `mach build`.
Source-Repo: https://github.com/servo/servo
Source-Revision: 24635a4bcaec2e0033e1c178bf6f6bd3bead8942
Require either `--dev` or `--release`, unless a default build.mode is set in `.servobuild`. This is @jinankjain's patch from #5965, rebased onto master. It is already reviewed, and only waiting for servo/saltfs#28 to be deployed.
Source-Repo: https://github.com/servo/servo
Source-Revision: c0d8488b719ea72e73e435618e015c2f705853cc
Also refactors the notification function to introduce some single
responsibility.
Source-Repo: https://github.com/servo/servo
Source-Revision: 100e2b46916c3a35664e58f908042bcf9b87a83f
This is part of #5965. It needs to land before the rest of that PR, so we can land servo/saltfs#28 without breaking automated builds for other PRs. r? @larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: 3e69bf8cd23caa5b691e42141d1111070ff831f5