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

Lazy compilation of libstd #36610

Closed
5 of 6 tasks
bstrie opened this issue Sep 21, 2016 · 6 comments
Closed
5 of 6 tasks

Lazy compilation of libstd #36610

bstrie opened this issue Sep 21, 2016 · 6 comments
Labels
C-enhancement Category: An issue proposing an enhancement or a PR with one. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@bstrie
Copy link
Contributor

bstrie commented Sep 21, 2016

Updated (2016-09-21)

Blockers:

Non-blockers:

Food for thought:

  • Escape hatch for compiling std on stable/beta.
  • Stability of this feature? Stability of Cargo features exposed by std and other crates?

Original issue

@alexcrichton in #34400:

One of the major blockers of our dream to "lazily compile std" is to ensure that we have the ability to compile compiler-rt on-demand.
#34400 was sort of half-tracking this issue before being closed by #35021, whose PR message implies that the bit about lazy compilation is yet to be done.

(And I'm frankly not even sure what lazy compilation of libstd even entails, so I'll have to ask @alexcrichton to elaborate further.)

@bstrie bstrie added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. A-build T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) labels Sep 21, 2016
@retep998
Copy link
Member

retep998 commented Sep 21, 2016

And I'm frankly not even sure what lazy compilation of libstd even entails

Lazy compilation of libstd entails compiling libstd on the developer's machine even though they installed a prebuilt rustc. It means libstd would be built with the same flags as all your cargo dependencies. It means being able to compile any C bits that libstd depends on on the developer's machine. It also means if the developer is using the stable version of Rust, rustc can still somehow build libstd despite its dependence on unstable features.

@japaric
Copy link
Member

japaric commented Sep 21, 2016

I've added related issues from the top of my head to the top comment (I hope you don't mind @bstrie).

cc @brson @Ericson2314

@Ericson2314
Copy link
Contributor

Brief thoughts on building trusted unstable packages on stable: https://internals.rust-lang.org/t/brsons-someday-list/3948/10

@Mark-Simulacrum Mark-Simulacrum added the C-enhancement Category: An issue proposing an enhancement or a PR with one. label Jul 26, 2017
@jonas-schievink jonas-schievink added T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) and removed T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) A-build labels Apr 21, 2019
@bstrie
Copy link
Contributor Author

bstrie commented Nov 14, 2019

I'm unsure whether this issue is still relevant; if a member of the compiler team happens to take a look at this and decide that this no longer reflects the current thinking then I'd be fine closing this.

@Ericson2314
Copy link
Contributor

I would say rust-lang/wg-cargo-std-aware#51 this is its moral equivalent

@jyn514
Copy link
Member

jyn514 commented May 1, 2021

This looks like cargo's -Z build-std feature which has plenty of tracking issues already; I'm going to close this one in favor of https://github.com/rust-lang/wg-cargo-std-aware.

@jyn514 jyn514 closed this as completed May 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-enhancement Category: An issue proposing an enhancement or a PR with one. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) 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

7 participants