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

-Z build-std with unified workspace #64

Open
Ericson2314 opened this issue Jan 19, 2021 · 2 comments
Open

-Z build-std with unified workspace #64

Ericson2314 opened this issue Jan 19, 2021 · 2 comments

Comments

@Ericson2314
Copy link

If I'm not misreading the Cargo code:

  • We currently have separate workspace for the user's project std
  • We resolve them separately and then combine the unit graphs

I don't think this is a good approach, long term:

Conversely, we might inject the crates and (explicit and implicit) stdlib deps to create a unified workspace. We would also combine the lock files to create a lockfile for the combined workspace with the materialized. Now, this will be a bunch of work up front, but I think it comes with a bunch of benefits:

  • It's not adding expressive power: one could also manually combine the workspace, lockfile, and add the stdlib deps and then run Cargo on it. This means no new code paths downstream of the workspace combination.
  • Since everything is resolved at once, std features affected by project crate features

I also wonder if it might help with #23 (comment). Combining the workspaces and lockfiles is also a "big global change", so maybe it's OK to use source for mirroring just in that case?

@lygstate
Copy link

What's the plan to stablize -Z build-std?

@Ericson2314
Copy link
Author

Hopefully not until these changes are done...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants