Fixes warnings from rust-lang/rust#44229 when `--enable-commonmark` is passed to rustdoc.
This is mostly a global find-and-replace for bare URIs on lines by themselves in doc comments.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because they are doc formatting changes only
Source-Repo: https://github.com/servo/servo
Source-Revision: 0e62a5829b7c29ae2667a21a439aff1e89201bf3
<!-- Please describe your changes on the following line: -->
With some reasons, the windows and VS environment do not set the `env("PLATFORM")` variable.
So, there's no need to check the variable, and set `os_type` equl to `pc-windows-msvc` as default. Then the script can get correct url to download `rustc`.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix#18055 (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 5e3c4c21986b10ac7292d75245e57700f5075b1a
The latter is an unstable feature that might be changed or removed.
Source-Repo: https://github.com/servo/servo
Source-Revision: a5100e3c783f140c368da89e25e50581dce91bfd
Change domparsing spec links from domparsing.spec.whatwg.org to w3c.github.io/DOM-Parsing.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#14555
- [X] These changes do not require tests because these only affect documentation
Source-Repo: https://github.com/servo/servo
Source-Revision: ac5da66a4f2cace3675e34abf74f7ab7e80533b2
This syncs us with 524bea1dd8d0ad58733072bd4e8b8044042f589e from web-platform-tests.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8171a5f7fe31a6b67a6a0ebcb25a024002a625bf
This PR changes build_gecko.rs to only generate the `structs.rs` for the current build (rather than both), depending on whether `gecko_debug` feature is set.
The in-tree files are switched to use the previous release one, because that's what we currently use for stylo test and it is in general what we really care about. For this change, `gecko_debug` mode is removed from Servo CI (in `build-geckolib`) with the assumption that people general do that build locally for stylo development, so it is less likely to be broken than release.
Source-Repo: https://github.com/servo/servo
Source-Revision: f2879a568d34ecc8d42de55569813d8a851e904f
This updates web-platform-tests to a46616a5b18e. It also removes our local copy of wptrunner in favour of the upstream one that we can modify and sync more easily. Carried from #17416.
Source-Repo: https://github.com/servo/servo
Source-Revision: 139055fca32de5e5a30161112752294770bdf67f
<!-- Please describe your changes on the following line: -->
This PR adds support to easily generate Android VR builds. Rust/Java VR dependencies are not added by default.
Default build (No VR support)
```
./mach build --release --android
./mach package --release --android
./mach install --release --android
```
GoogleVR builds (e.g. Daydream)
```
./mach build --release --android --features googlevr
./mach package --release --android --flavor googlevr
./mach install --release --android
```
OculusVR builds (e.g. Gear VR)
```
./mach build --release --android --features oculusvr
./mach package --release --android --flavor oculusvr
./mach install --release --android
```
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 2567c40829704dcb1c7769defffb9dabfd701633
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____
Source-Repo: https://github.com/servo/servo
Source-Revision: 05f53d20e699492e8eeb18f182bc601af65965fe
<!-- Please describe your changes on the following line: -->
This makes the internal tidy script properly ignore the contents of Rust multiline strings.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#18551 (github issue number if applicable).
<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: a8a25dac5226a12916c8fe17155d1dbb3b6cb565
E.g. `cargo +nightly build -p servo` at the repo’s top-level
Source-Repo: https://github.com/servo/servo
Source-Revision: 0ed54b039a932f8293f8bec4ac8f6b7a6f54be5c
- Add sysroot path to environment variable 'CPPFLAGS':
When checking C preprocessor, the 'configure' script of libbacktrace uses 'CPPFLAGS' rather than 'CFLAGS' and doesn't get the correct search path. (#15758)
This check passes on Linux because the '/lib/cpp' fallback is available there.
- Introduce CMake toolchain file for Android cross compiling:
CMake needs several variables [1] to cross compile for Android.
It works (accidentally) on Linux because cmake-rs sets compilers correctly and binutils for Linux & Android are pretty much the same.
[1] https://cmake.org/cmake/help/v3.7/manual/cmake-toolchains.7.html#cross-compiling-for-android-with-the-ndk
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#15758 (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it's a fix to build errors.
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: a3b85cbd6cd74090b6e9f09e3d0980045e8f6a1b
<!-- Please describe your changes on the following line: -->
This is a PR for #18217.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because this patch is mach build tool fix.
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 6eb46b1a3934c18d6147c1d9d31bf4d5bb051d7d
<!-- Please describe your changes on the following line: -->
Automatically verify that derive() lists are alphabetically ordered #18172
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#18172 (github issue number if applicable).
<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 474369618965569407d127b1e8c481e757cc59d3
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#18111
- [X] There are tests for these changes
Source-Repo: https://github.com/servo/servo
Source-Revision: 173079c14498f0ef4810ffbaf8f4c03acf557eed
Failure to catch this error broke bholley's PR https://github.com/servo/servo/pull/18048http://build.servo.org/builders/linux-dev/builds/8616/steps/shell__1/logs/stdio.
Logs below for posterity.
```
Current Rust nightly version: 599be0d18f4c6ddf36366d2a5a2ca6dc65886896
Current Rust stable version: 1.19.0
Removing /home/servo/.servo/cargo/13d94d5fa8129a34f5c77a1bcd76983f5aed2434
Error running mach:
['clean-nightlies', '--keep', '3', '--force']
The error occurred in code that was called by the mach command. This is either
a bug in the called code itself or in the way that mach is calling it.
You should consider filing a bug for this issue.
If filing a bug, please include the full output of mach, including this error
message.
The details of the failure are as follows:
OSError: [Errno 2] No such file or directory:
'/home/servo/.servo/cargo/13d94d5fa8129a34f5c77a1bcd76983f5aed2434'
File
"/home/servo/buildbot/slave/linux-dev/build/python/servo/bootstrap_commands.py",
line 334, in clean_nightlies
delete(full_path)
File "/home/servo/buildbot/slave/linux-dev/build/python/servo/util.py", line
28, in delete
os.remove(path)
```
I don't know how the builder got into the edge case where the old nightly wasn't there for deletion, but in the case that removal fails for some reason, mach should just keep going. In the incredibly unlikely event that the failure to remove the file has consequences down the line, we'll have the failed remove in the log for troubleshooting.
Also this passed tidy so if I failed to python I'll need to fix tidy as well as this.
Source-Repo: https://github.com/servo/servo
Source-Revision: 3ed6c22e45df06bf381356b394d01493fc0322a2
We added this because a year ago we had no reliable Gecko CI. This meant that Gecko-only properties needed to be tested *somehow*, and we solved that by making it so that for unit tests we compile all properties, not just the servo ones.
This was useful back then, but I don't think we need this anymore. We have reliable Gecko CI, and all the gecko-only stuff we tested is adequately handled by the properties-database parsing mochitests. It's a bit of annoying cruft that just complicates things; we probably should remove it.
r? @emilio or @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 32f835260cd3ea03a881f7a344a01f401c4db621
<!-- Please describe your changes on the following line: -->
Add tidy check for keywords with more than one space afterwards.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#17700 (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 7d95fb8e49dd0eb9fa9efb9d70008f5f9bf20a83
<!-- Please describe your changes on the following line: -->
This PR is the final step to adds support for Android arm64 compilations. See https://github.com/servo/servo/issues/11921 for previous work.
Fixes in this PR:
- Fix js dependency compilation: https://github.com/servo/rust-mozjs/pull/360
- Fix skia dependency link error: https://github.com/servo/skia/pull/136
- Fix blurdroid dependency compilation: https://github.com/szeged/blurdroid/pull/4
- Fix mio and net2 dependency compilations: https://github.com/carllerche/mio/pull/599
- Fix gcc compiler name in the fake linker
- Compile OpenSSL for aarch64 (update to stable 1.1.0 was required for this)
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 85e5551ee9f2f662bdca53469a327491f35ece53
Currently we check `if not (osmesa_path and glapi_path)` after using
`path.join`. It seems we actually want to check whether
`find_dep_path_newest` returns something, because if calls to that
function fail, we'll instead get an error from `path.join` about
`NoneType` not having attribute `endswith` (it expects a string), which
preempts this check.
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because this is a change to `./mach` (are there tests for that?)
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: edd82b3c20766877f4530e90a2ec1c9ce3fed848
<!-- Please describe your changes on the following line: -->
This PR contains fixes that address the specific errors in #17392: WTP workarounds for Windows terminals (see #8313), modifications to `mach test --all` that allow `test_tidy` to be called properly, and modifications to the test harness for WPT that allow it to run when OpenSSL isn't found. How to handle OpenSSL on Windows is probably a separate issue because it doesn't have a straightforward answer: we either need to provide specific instructions to users or bundle it in binary form ourselves.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#17392 (github issue number if applicable).
<!-- Either: -->
- [x] These changes do not require tests because they fix test running.
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 64782bc6e3b8882630137d2e76cff4b90839bf1a
- [x] `./mach build -d` does not report any errors (kinda, need webrender published and Cargo.toml fixed up)
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it is a refactoring in which the difference is mostly a compile-time/strong-typing thing with no change to the logic.
Source-Repo: https://github.com/servo/servo
Source-Revision: 18653f69581693a5bae1ce4e350e78bc16159b08
<!-- Please describe your changes on the following line: -->
Changed the openssl url and bumped the version.
It's a wip because I haven't figured out a relevant way to write a test about it yet.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#17079 (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because The mach command will fail if anything goes wrong.
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: d7dff8e6d118bf82f837b3e6387cf96647007cdd
This requires https://github.com/servo/rust-cssparser/pull/143 for the final commit. There's no better way to split that work up, unfortunately, and it's extremely easy to bitrot. I would appreciate if we could expedite reviewing this work.
This is the work necessary to enable https://bugzilla.mozilla.org/show_bug.cgi?id=1352669. It makes sense to merge it separately because it's so much effort to keep it up to date with the ongoing Stylo work.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [x] There are tests for these changes
Source-Repo: https://github.com/servo/servo
Source-Revision: 061cb5f48e5c93a5decf39e530aea4a566e97341
<!-- Please describe your changes on the following line: -->
Allow more than one brace per line when checking spec links in test-tidy.
We had problems caused by `if unsafe { ... } {`.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes have tests.
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 07b0770d21d2b374f9a30c98cdde5ae5531aaecb
Gecko is now using the wpt harness under the wpt tools directory
rather than a copy in an adjacent directory. Therefore the path to the
requirements files, and the required model paths, have changed.
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because it only affects the mach bootstrap script
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: a36edb9970dbb658c17c008cfb22a7dc4f3e76ce
<!-- Please describe your changes on the following line: -->
See https://github.com/servo/servo/issues/11921
After fixing problematic dependencies this is the last step to support armv7-linux-androideabi target on Android:
- Updates skia dependency to fix a linker error. See https://github.com/servo/skia/pull/136
- Fixes specifying android targets on `./mach package` and `./mach install` steps:
-`./mach package --release --target=arm-linux-androideabi`
-`./mach package --release --target=armv7-linux-androideabi`
-`./mach package --release --target=aarch64-linux-android`
- Make `armv7-linux-androideabi`default when `--android` param is used in build, package or install commands
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#11921 (github issue number if applicable).
<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: a694f70acf2f011da816a24716d6501ab153c64e
This was introduced in Python 3.3, so provide our own version.
Requires careful review since this will leak secrets (!!!) if not done properly.
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes help with #17045 (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because must be tested manually
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 71a4daec510d79f49245981e0c379167812a9c0a
<!-- Please describe your changes on the following line: -->
Fix a few issues with the Homebrew repository updating.
Follow-up to #16565; should finish off #17045.
Lightly smoke-tested locally this time.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because they will be tested on the builders
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 011a7adf56d9a58be9707cdeeeb824c4b70df84a
Now that MinGW and MSYS have been removed from the Windows builders,
bash is not available to run the previous upload_nightlies.sh script.
Convert the script to Python 2 for cross-platform support.
Additionally, switch to the `boto3` library for easy uploading
without needing to install `s3cmd`,
and move the code into mach for easy `boto3` installation
as the new `./mach upload-nightly` command.
Also, hard-code the paths to the packages instead of using
globs to look for them, as the paths are static.
(The paths used to contain timestamps,
but we now insert timestamps when uploading to S3
to improve reproducibility.)
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#16560 (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because Buildbot will test them.
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 9468fae0d443b2a8b9a7694f917dc097ac6c7e60
This enum type used to contain the result of parsing one CSS source declaration (`name: value;`) and expanding shorthands. Enum types are as big as the biggest of their variant (plus discriminant), which was quite big because some shorthands expand to many longhand properties. This type was returned through many functions and methods, wrapped and rewrapped in `Result` with different error types. This presumably caused significant `memmove` traffic.
Instead, we now allocate an `ArrayVec` on the stack and pass `&mut` references to it for various functions to push into it. This type is also very big, but we never move it.
We still use an intermediate data structure because we sometimes decide after shorthand expansion that a declaration is invalid after all and that we’re gonna drop it. Only later do we push to a `PropertyDeclarationBlock`, with an entire `ArrayVec` or nothing.
In future work we can try to avoid a large stack-allocated array, and instead writing directly to the heap allocation of the `Vec` inside `PropertyDeclarationBlock`. However this is tricky: we need to preserve this "all or nothing" aspect of parsing one source declaration, and at the same time we want to make it as little error-prone as possible for the various call sites. `PropertyDeclarationBlock` curently does property deduplication incrementally: as each `PropertyDeclaration` is pushed, we check if an existing declaration of the same property exists and if so overwrite it. To get rid of the stack allocated array we’d need to somehow deduplicate separately after pushing multiple `PropertyDeclaration`.
Source-Repo: https://github.com/servo/servo
Source-Revision: 60682cf81fe19a82c73dd98ba4c1eebc1dbbfcac
This cuts in almost half the time to run:
```
touch components/style/lib.rs
./mach test-stylo
```
Source-Repo: https://github.com/servo/servo
Source-Revision: a01ab9ad3462bb5f30f5ea7903abd6deb9beb364