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

[nll] use NLL during bootstrapping #53172

Closed
49 of 53 tasks
nikomatsakis opened this issue Aug 7, 2018 · 3 comments
Closed
49 of 53 tasks

[nll] use NLL during bootstrapping #53172

nikomatsakis opened this issue Aug 7, 2018 · 3 comments
Labels
A-NLL Area: Non Lexical Lifetimes (NLL) NLL-complete Working towards the "valid code works" goal T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Milestone

Comments

@nikomatsakis
Copy link
Contributor

nikomatsakis commented Aug 7, 2018

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 1 works 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.)
  • Try ./x.py build --stage 1 again and see if it works
  • If so, open a PR

Crate list

@nikomatsakis nikomatsakis added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. A-NLL Area: Non Lexical Lifetimes (NLL) WG-compiler-nll NLL-complete Working towards the "valid code works" goal labels Aug 7, 2018
@nikomatsakis nikomatsakis added this to the Rust 2018 RC milestone Aug 7, 2018
@lovesegfault
Copy link
Contributor

lovesegfault commented Aug 7, 2018

I'm going to be attempting this for librustc_mir just to start.

kennytm added a commit to kennytm/rust that referenced this issue Aug 9, 2018
…tsakis

[nll] enable feature(nll) on various crates for bootstrap

rust-lang#53172
kennytm added a commit to kennytm/rust that referenced this issue Aug 9, 2018
…matsakis

[nll] enable feature(nll) on various crates for bootstrap: part 2

rust-lang#53172
kennytm added a commit to kennytm/rust that referenced this issue Aug 9, 2018
…matsakis

[nll] enable feature(nll) on various crates for bootstrap: part 3

rust-lang#53172
kennytm added a commit to kennytm/rust that referenced this issue Aug 11, 2018
…matsakis

[nll] enable feature(nll) on various crates for bootstrap: part 4

rust-lang#53172
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this issue Aug 12, 2018
…matsakis

[nll] enable feature(nll) on various crates for bootstrap: part 4

rust-lang#53172

r? @nikomatsakis
@pnkfelix
Copy link
Member

The remaining four crates:

  • liblibc
  • libbacktrace
  • libcompiler_builtins
  • stdsimd

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-lang or rust-lang-nursery ecosystems).

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
Copy link
Contributor

memoryruins commented Aug 14, 2018

Note: locally, libcompiler_builtins successfully built with NLL. I expect stdsimd and any others would too.

Well done, everyone :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-NLL Area: Non Lexical Lifetimes (NLL) NLL-complete Working towards the "valid code works" goal T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

4 participants