Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disable LLVM assertions by default, on supported platforms #15564

Merged
merged 2 commits into from Feb 17, 2017

Conversation

@SimonSapin
Copy link
Member

SimonSapin commented Feb 15, 2017

#15559 (comment)

With an empty incremental compilation cache (or, presumably, with incremental compilation disabled), LLVM assertions add 16% to the compilation time in debug mode, 53% (!) in release mode.


  • ./mach build -d does not report any errors
  • ./mach test-tidy does not report any errors
  • These changes fix #15548 (github issue number if applicable).
  • There are tests for these changes OR
  • These changes do not require tests because _____

This change is Reviewable

@highfive
Copy link

highfive commented Feb 15, 2017

Heads up! This PR modifies the following files:

@SimonSapin
Copy link
Member Author

SimonSapin commented Feb 15, 2017

I think we should do this, but have a .servobuild for some CI jobs that enables LLVM assertions back, since these assertions can help find rustc bugs. Maybe for debug CI builds, but not the release ones which could use the speed improvement.

CC @jdm @mbrubeck @nox

@jdm
Copy link
Member

jdm commented Feb 15, 2017

@aneeshusa has said previously that using a custom .servobuild for CI is more difficult than it sounds.

@SimonSapin
Copy link
Member Author

SimonSapin commented Feb 15, 2017

What about an environment variable? We could have python/servo/*.py decide the default based on that.

@SimonSapin
Copy link
Member Author

SimonSapin commented Feb 15, 2017

@metajack suggets a command-line flag, I’ll try that.

@SimonSapin SimonSapin force-pushed the no-gods-no-masters-no-assertions branch from d51528e to 4f19922 Feb 16, 2017
@SimonSapin
Copy link
Member Author

SimonSapin commented Feb 16, 2017

That’s annoying because the default config (and the path to the rustc directory) is set before mach parses the command line. So I used the env command in buildbot_steps.yml for the linux-dev builder to set an environment variable. I’d have done the same for the mac-dev builder, but we don’t have one. I don’t know if env (or equivalent) exists on Windows.

@bors-servo try

@bors-servo
Copy link
Contributor

bors-servo commented Feb 16, 2017

Trying commit 4f19922 with merge 9c549fb...

bors-servo added a commit that referenced this pull request Feb 16, 2017
Do not merge yet: Disable LLVM assertions by default

<!-- Please describe your changes on the following line: -->

#15559 (comment)

> With an empty incremental compilation cache (or, presumably, with incremental compilation disabled), LLVM assertions add 16% to the compilation time in debug mode, 53% (!) in release mode.

---
<!-- 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 #15548 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15564)
<!-- Reviewable:end -->
@bors-servo
Copy link
Contributor

bors-servo commented Feb 16, 2017

💔 Test failed - windows-gnu-dev

@SimonSapin SimonSapin force-pushed the no-gods-no-masters-no-assertions branch from 4f19922 to d38ec26 Feb 16, 2017
@SimonSapin SimonSapin force-pushed the no-gods-no-masters-no-assertions branch from d38ec26 to c1fa033 Feb 16, 2017
@SimonSapin SimonSapin changed the title Do not merge yet: Disable LLVM assertions by default Do not merge yet: Disable LLVM assertions by default, on supported platforms Feb 16, 2017
@SimonSapin
Copy link
Member Author

SimonSapin commented Feb 16, 2017

Download failed (404): Not Found - https://s3.amazonaws.com/rust-lang-ci/rustc-builds-alt/025c328bf5ab336ff708e62a59292298dc1bc089/rustc-nightly-x86_64-pc-windows-gnu.tar.gz

rust-lang/rust#39754

This commit adds three new builders, one OSX, one Linux, and one MSVC,

@bors-servo try

@bors-servo
Copy link
Contributor

bors-servo commented Feb 16, 2017

Trying commit c1fa033 with merge 5f14170...

bors-servo added a commit that referenced this pull request Feb 16, 2017
Do not merge yet: Disable LLVM assertions by default, on supported platforms

<!-- Please describe your changes on the following line: -->

#15559 (comment)

> With an empty incremental compilation cache (or, presumably, with incremental compilation disabled), LLVM assertions add 16% to the compilation time in debug mode, 53% (!) in release mode.

---
<!-- 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 #15548 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15564)
<!-- Reviewable:end -->
@SimonSapin SimonSapin force-pushed the no-gods-no-masters-no-assertions branch from c1fa033 to 5070e45 Feb 16, 2017
@SimonSapin
Copy link
Member Author

SimonSapin commented Feb 16, 2017

I’d have done the same for the mac-dev builder, but we don’t have one.

Oh, wait, we do. It’s called mac-dev-unit. (I was grepping for dev: in the YAML file.)

But keep them on linux-dev CI.
@SimonSapin SimonSapin force-pushed the no-gods-no-masters-no-assertions branch from 5070e45 to bd8ec03 Feb 16, 2017
@SimonSapin
Copy link
Member Author

SimonSapin commented Feb 16, 2017

host_platform() vs host_triple()

@bors-servo try

@bors-servo
Copy link
Contributor

bors-servo commented Feb 16, 2017

Trying commit bd8ec03 with merge 921585a...

bors-servo added a commit that referenced this pull request Feb 16, 2017
Do not merge yet: Disable LLVM assertions by default, on supported platforms

<!-- Please describe your changes on the following line: -->

#15559 (comment)

> With an empty incremental compilation cache (or, presumably, with incremental compilation disabled), LLVM assertions add 16% to the compilation time in debug mode, 53% (!) in release mode.

---
<!-- 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 #15548 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15564)
<!-- Reviewable:end -->
@SimonSapin
Copy link
Member Author

SimonSapin commented Feb 16, 2017

Before this PR, mac-rel-css is the longest build at 52~55 minutes. With this PR mac-rel-css is still the longest, but now takes 43 minutes.

r? @metajack

@SimonSapin SimonSapin changed the title Do not merge yet: Disable LLVM assertions by default, on supported platforms Disable LLVM assertions by default, on supported platforms Feb 16, 2017
@bors-servo
Copy link
Contributor

bors-servo commented Feb 16, 2017

@Ms2ger
Copy link
Contributor

Ms2ger commented Feb 17, 2017

@bors-servo r+

I don't like env variables, but I guess this is fine...

@bors-servo
Copy link
Contributor

bors-servo commented Feb 17, 2017

📌 Commit 8bc9f0e has been approved by Ms2ger

@highfive highfive assigned Ms2ger and unassigned metajack Feb 17, 2017
@bors-servo
Copy link
Contributor

bors-servo commented Feb 17, 2017

Testing commit 8bc9f0e with merge 1afae52...

bors-servo added a commit that referenced this pull request Feb 17, 2017
Disable LLVM assertions by default, on supported platforms

<!-- Please describe your changes on the following line: -->

#15559 (comment)

> With an empty incremental compilation cache (or, presumably, with incremental compilation disabled), LLVM assertions add 16% to the compilation time in debug mode, 53% (!) in release mode.

---
<!-- 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 #15548 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15564)
<!-- Reviewable:end -->
@bors-servo
Copy link
Contributor

bors-servo commented Feb 17, 2017

@bors-servo bors-servo merged commit 8bc9f0e into master Feb 17, 2017
4 checks passed
4 checks passed
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
dependency-ci Dependencies checked
Details
homu Test successful
Details
@SimonSapin SimonSapin deleted the no-gods-no-masters-no-assertions branch Feb 17, 2017
bors-servo added a commit to servo/saltfs that referenced this pull request Jun 3, 2017
…larsbergstrom

Support env vars in buildbot steps

This makes it possible to specify environment variables for CI builds directly in `buildbot_steps.yml`, whether permanently, such as configuring LLVM assertions in servo/servo#15564, or temporarily, e.g. testing out `SCCACHE` for servo/servo#17106 before putting it into saltfs or trying out Android env vars.
This is also helpful for windows, which AFAIK doesn't have an equivalent to the `env` command.

r? @larsbergstrom @edunham

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/saltfs/687)
<!-- Reviewable:end -->
bors-servo added a commit to servo/saltfs that referenced this pull request Jun 3, 2017
…larsbergstrom

Support env vars in buildbot steps

This makes it possible to specify environment variables for CI builds directly in `buildbot_steps.yml`, whether permanently, such as configuring LLVM assertions in servo/servo#15564, or temporarily, e.g. testing out `SCCACHE` for servo/servo#17106 before putting it into saltfs or trying out Android env vars.
This is also helpful for windows, which AFAIK doesn't have an equivalent to the `env` command.

r? @larsbergstrom @edunham

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/saltfs/687)
<!-- Reviewable:end -->
bors-servo added a commit to servo/saltfs that referenced this pull request Jun 3, 2017
…larsbergstrom

Support env vars in buildbot steps

This makes it possible to specify environment variables for CI builds directly in `buildbot_steps.yml`, whether permanently, such as configuring LLVM assertions in servo/servo#15564, or temporarily, e.g. testing out `SCCACHE` for servo/servo#17106 before putting it into saltfs or trying out Android env vars.
This is also helpful for windows, which AFAIK doesn't have an equivalent to the `env` command.

r? @larsbergstrom @edunham

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/saltfs/687)
<!-- Reviewable:end -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

7 participants
You can’t perform that action at this time.