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

No-opt bots should be built against an unoptimised/debug-enabled standard lib and helper libraries #17166

Closed
huonw opened this issue Sep 11, 2014 · 7 comments
Labels
A-testsuite Area: The testsuite used to check the correctness of rustc P-low Low priority

Comments

@huonw
Copy link
Member

huonw commented Sep 11, 2014

AFAIK, the nopt-t builders do a complete bootstrap with optimisations enabled, and then build the tests without optimisations. This means the tests are built against an optimised standard library and so we don't test everything without optimisations. This will be particularly important with #17081 since debug_asserts would then be off for the vast majority of testing1, this also means we aren't using jemalloc's consistency checks on the bots at all (#17083).

Another solution would be optimised builder with these debugging settings turned up to full.

(On the other hand, it is possible that this is already the case, in which case we should probably have bots with the debugging settings turned off.)

Nominating for something (P-low, I guess? but it would be quite nice to have these extra assurances).

1 Unlike general inlined code which is compiled with the optimisation level of the crate it is being included in, debug_asserts are currently 'removed' in macro expansion, so any internal consistency checks of generic types like HashMap, Vec are still lost.

@huonw huonw added A-testsuite Area: The testsuite used to check the correctness of rustc A-infrastructure labels Sep 11, 2014
@brson
Copy link
Contributor

brson commented Sep 11, 2014

For reference, the nopt-c bots build without optimizations, but don't run the tests.

@huonw
Copy link
Member Author

huonw commented Sep 11, 2014

(My implied approach, which I forgot to state, would be bootstrap with -O but build stage2 without.)

@pnkfelix
Copy link
Member

P-low, not 1.0 blocker.

@pnkfelix pnkfelix added P-low Low priority and removed I-nominated labels Sep 11, 2014
@reem
Copy link
Contributor

reem commented Mar 2, 2015

Visiting for triage. Confirmed with @cmr on IRC that this is still a problem (no tests are run against an unoptimized build).

Unsure how to fix this, I'm not at all familiar with the build system.

@pnkfelix
Copy link
Member

yeah to my knowledge not one of the auto-builders does a build with --enable-debug. It has allowed various bugs to creep in at times (e.g. #24405 -- would probably have been noted since the build attempt would have timed out (or taken so long), #24937 -- would definitely have been caught)

@pnkfelix
Copy link
Member

yeah to my knowledge not one of the auto-builders does a build with --enable-debug

Note that this is supposedly no longer true; see #27010 (which has been resolved as fixed).

@alexcrichton
Copy link
Member

We have debug assertions enabled on all bots now, so this is fixed I believe, so closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-testsuite Area: The testsuite used to check the correctness of rustc P-low Low priority
Projects
None yet
Development

No branches or pull requests

5 participants