Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Make all alt builders produce parallel-enabled compilers #64722
We're not quite ready to ship parallel compilers by default, but the alt builders are not used too much (in theory), so we believe that shipping a possibly-broken compiler there is not too problematic.
Going to nominate for infra and compiler teams as I'd like to check that the claims I've made are true:
Discussed in T-compiler meeting. We ourselves don't see any problem with doing this as described here.
In particular, @nikomatsakis wanted to stress that we do plan to keep LLVM assertions enabled for these builds. This will mean that these builds help flush out parallel bugs, but they will not be a good basis for comparative benchmarking.
This changes the default parallelism for parallel compilers to one, instead of the previous default, which was "num cpus". This is likely not an optimal default long-term, but it is a good default for testing whether parallel compilers are not a significant regression over a sequential compiler. Notably, this in theory makes a parallel-enabled compiler behave exactly like a sequential compiler with respect to the jobserver.
Rollup of 5 pull requests Successful merges: - #64404 (Add long error explanation for E0495) - #64722 (Make all alt builders produce parallel-enabled compilers) - #64840 (SelfProfiler API refactoring and part one of event review) - #64890 ([const-prop] Handle remaining MIR Rvalue cases) - #64910 (syntax: cleanup param, method, and misc parsing) Failed merges: r? @ghost
Rollup of 8 pull requests Successful merges: - #63416 (apfloat: improve doc comments) - #64722 (Make all alt builders produce parallel-enabled compilers) - #64820 (BTreeSet intersection, is_subset & difference optimizations) - #64840 (SelfProfiler API refactoring and part one of event review) - #64910 (syntax: cleanup param, method, and misc parsing) - #64912 (Remove unneeded `fn main` blocks from docs) - #64933 (Fixes #64919. Suggest fix based on operator precendence.) - #64952 (Update cargo.) Failed merges: r? @ghost
Rollup of 11 pull requests Successful merges: - #64649 (Avoid ICE on return outside of fn with literal array) - #64722 (Make all alt builders produce parallel-enabled compilers) - #64801 (Avoid `chain()` in `find_constraint_paths_between_regions()`.) - #64805 (Still more `ObligationForest` improvements.) - #64840 (SelfProfiler API refactoring and part one of event review) - #64885 (use try_fold instead of try_for_each to reduce compile time) - #64942 (Fix clippy warnings) - #64952 (Update cargo.) - #64974 (Fix zebra-striping in generic dataflow visualization) - #64978 (Fully clear `HandlerInner` in `Handler::reset_err_count`) - #64979 (Update books) Failed merges: - #64959 (syntax: improve parameter without type suggestions) r? @ghost