Repository navigation
[nll] use NLL during bootstrapping #53172
Copy link
Copy link
Closed
Labels
A-NLLArea: Non-lexical lifetimes (NLL)Area: Non-lexical lifetimes (NLL)NLL-completeWorking towards the "valid code works" goalWorking towards the "valid code works" goalT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Milestone
Description
An important correctness milestone is to have the compiler itself use NLL when bootstrapping. We've made some stabs at this but we need to start doing it all the time.
Instructions
- Log into Zulip and head to correct thread to say hi =)
- Select a crate from the list below
- Leave a comment that you are trying it
- Verify that
./x.py build --stage 1works for you - Add
#![cfg_attr(not(stage0), feature(nll))]to the lib.rs file- This incantation adds
#![feature(nll)], but only once we get to stage1 -- otherwise we'd be using the beta version of NLL, which is old and buggy.)
- This incantation adds
- Try
./x.py build --stage 1again and see if it works - If so, open a PR
Crate list
-
liballoc-- [nll] enable feature(nll) on various crates for bootstrap #53211 -
liballoc_jemalloc-- [nll] enable feature(nll) on various crates for bootstrap #53211 -
liballoc_system-- [nll] enable feature(nll) on various crates for bootstrap #53211 -
libarena-- [nll] enable feature(nll) on various crates for bootstrap: part 2 #53214 -
libbacktrace -
libcompiler_builtins -
libcore-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
libfmt_macros-- [nll] enable feature(nll) on various crates for bootstrap: part 3 #53219 -
libgraphviz-- [nll] enable feature(nll) on various crates for bootstrap #53211 -
liblibc -
libpanic_abort-- [nll] enable feature(nll) on various crates for bootstrap: part 3 #53219 -
libpanic_unwind-- [nll] enable feature(nll) on various crates for bootstrap: part 3 #53219 -
libproc_macro-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
libprofiler_builtins-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
librustc-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
librustc_allocator-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
librustc_apfloat-- [nll] enable feature(nll) on various crates for bootstrap: part 3 #53219 -
librustc_asan-- [nll] enable feature(nll) on various crates for bootstrap: part 2 #53214 -
librustc_borrowck-- [nll] enable feature(nll) on various crates for bootstrap #53211 -
librustc_codegen_llvm-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
librustc_codegen_utils-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
librustc_cratesio_shim-- [nll] enable feature(nll) on various crates for bootstrap: part 3 #53219 -
librustc_data_structures-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
librustc_driver-- [nll] enable feature(nll) on various crates for bootstrap: part 3 #53219 -
librustc_errors-- [nll] enable feature(nll) on various crates for bootstrap: part 2 #53214 -
librustc_incremental-- [nll] enable feature(nll) on various crates for bootstrap: part 3 #53219 -
librustc_lint-- [nll] enable feature(nll) on various crates for bootstrap #53211 -
librustc_llvm-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
librustc_lsan-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
librustc_metadata-- [nll] enable feature(nll) on various crates for bootstrap: part 2 #53214 -
librustc_mir-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
librustc_msan-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
librustc_passes-- [nll] enable feature(nll) on various crates for bootstrap: part 2 #53214 -
librustc_platform_intrinsics-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
librustc_plugin-- [nll] enable feature(nll) on various crates for bootstrap: part 2 #53214 -
librustc_privacy-- [nll] enable feature(nll) on various crates for bootstrap: part 2 #53214 -
librustc_resolve-- [nll] enable feature(nll) on various crates for bootstrap: part 2 #53214 -
librustc_save_analysis-- [nll] enable feature(nll) on various crates for bootstrap: part 2 #53214 -
librustc_target-- [nll] enable feature(nll) on various crates for bootstrap: part 3 #53219 -
librustc_traits-- [nll] enable feature(nll) on various crates for bootstrap: part 2 #53214 -
librustc_tsan-- [nll] enable feature(nll) on various crates for bootstrap: part 2 #53214 -
librustc_typeck-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
librustdoc-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
libserialize-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
libstd-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
libstd_unicode-- rolled into libcore -
libsyntax-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
libsyntax_ext-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
libsyntax_pos-- [nll] enable feature(nll) on various crates for bootstrap: part 3 #53219 -
libterm-- [nll] enable feature(nll) on various crates for bootstrap: part 3 #53219 -
libtest-- [nll] enable feature(nll) on various crates for bootstrap: part 4 #53230 -
libunwind-- [nll] enable feature(nll) on various crates for bootstrap: part 3 #53219 -
stdsimd
Metadata
Metadata
Assignees
Labels
A-NLLArea: Non-lexical lifetimes (NLL)Area: Non-lexical lifetimes (NLL)NLL-completeWorking towards the "valid code works" goalWorking towards the "valid code works" goalT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Activity
lovesegfault commentedon Aug 7, 2018
I'm going to be attempting this for
librustc_mirjust to start.Rollup merge of rust-lang#53211 - memoryruins:nll_bootstrap, r=nikoma…
Rollup merge of rust-lang#53214 - memoryruins:nll_bootstrap_2, r=niko…
Rollup merge of rust-lang#53219 - memoryruins:nll_bootstrap_3, r=niko…
Rollup merge of rust-lang#53230 - memoryruins:nll_bootstrap_4, r=niko…
Rollup merge of rust-lang#53230 - memoryruins:nll_bootstrap_4, r=niko…
pnkfelix commentedon Aug 14, 2018
The remaining four crates:
are all "external dependencies", in the sense that they are crates that have been factored out and are hosted on separate repositories (still within the
rust-langorrust-lang-nurseryecosystems).So, it seems like the vast majority of work here is done, and the important thing is: It seems clear that we can bootstrap ourselves using NLL.
Therefore, I am closing this task as "effectively finished"
memoryruins commentedon Aug 14, 2018
Note: locally,
libcompiler_builtinssuccessfully built with NLL. I expect stdsimd and any others would too.Well done, everyone :)