Skip to content

Tracking issue for rustbuild, the alternate build system for rustc #31590

Closed
@alexcrichton

Description

@alexcrichton
Member

I'm opening this up as a tracking issue for all work that needs to happen to get rustbuild, our new build system, turned on by default. The end goal here is to completely jettison our thousands of lines of makefiles and configure scripts for tons and tons of Rust code! Initial support has landed in #31123, but we've still got quite aways to go!

Here's a list of items left that need to be implemented, and help is always appreciated when tackling these! If you want any clarifications or any help on any of these, feel free to reach out to me (acrichto) on IRC.

Documentation

work in progress

Testing

Porting

These should all be verified to work and then ideally we'd add a builder verifying they continue to work!

  • iOS
    various cross compiled linuxes
    musl-x86_64

configure script

  • Migrate compiler version detection to Rust (maybe optional?)
    Ensure all tool detection is moved into Rust

Misc

make install + make dist

These are pretty huge portions of the make files, they may take quite some time to migrate over, and it's probably fine to keep them around for now. @brson's plans with multirust-rs and reusable library components may become relevant here as well.

This may be subdivided into a bunch of smaller tasks over time!

Far future (not required)

Activity

alexcrichton

alexcrichton commented on Feb 12, 2016

@alexcrichton
MemberAuthor

Also as the most bike-sheddy thing, I'm not a huge fan of the term "rustbuild", so I'd also be fine calling this something cooler like "rust laser build"

steveklabnik

steveklabnik commented on Feb 12, 2016

@steveklabnik
Member

This is a very simple thing, but I hit control-C while it was downloading stage0 and because the file wasn't valid, it just bailed out and I had to remove it manually. I'm not sure if deleting it and retrying is the right thing, or if this is just going to be a papercut generally.

alexcrichton

alexcrichton commented on Feb 12, 2016

@alexcrichton
MemberAuthor

Sounds like a bug! (added a checkbox)

nodakai

nodakai commented on Feb 12, 2016

@nodakai
Contributor

By going from Makefile to build.rs, are we not throwing away the notion of dependency graph?

Please enable resuming on curl if possible, for people with narrowband.

alexcrichton

alexcrichton commented on Feb 12, 2016

@alexcrichton
MemberAuthor

No, I would expect any build system to take dependencies into account. It's an implicit assumption of mine that any sort of dependency tracking done by the current build system must be done by rustbuild as well.

steveklabnik

steveklabnik commented on Feb 12, 2016

@steveklabnik
Member

Regarding the documentation features... maybe we should try to land rust-lang/cargo#2256 and then they could just be their own crates?

alexcrichton

alexcrichton commented on Feb 12, 2016

@alexcrichton
MemberAuthor

I suspect that may not end up helping too much unfortunately, most of our docs are rustbook-based rather than rustdoc-based.

steveklabnik

steveklabnik commented on Feb 12, 2016

@steveklabnik
Member

Oh duh. I should, uh, know that 😅

The new book is going to use mdBook, and I think it should just be a drop-in replacement. Maybe it's time to kill rustbook for real?

alexcrichton

alexcrichton commented on Feb 12, 2016

@alexcrichton
MemberAuthor

It probably doesn't matter either way in terms of dependency management and instrumentation of the compiler building mdbook/rustbook, so I suspect switching over wouldn't change things too much really

steveklabnik

steveklabnik commented on Feb 12, 2016

@steveklabnik
Member

@azerupi is okay with mdbook becoming a dependency https://github.com/azerupi/mdBook/issues/105#issuecomment-183518235

I will poke at that docs branch sometime next week.

japaric

japaric commented on Feb 12, 2016

@japaric
Member

I'm going to look into building compiler-rt as a crate using cargo instead of having the bootstrap binary build it. This should get us closer to being able to (cross) compile the std crate with cargo, i.e. just cd src/libstd && cargo build.

alexcrichton

alexcrichton commented on Feb 12, 2016

@alexcrichton
MemberAuthor

(added some bullet points to that effect)

55 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)metabugIssues about issues themselves ("bugs about bugs")

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @Zoxc@steveklabnik@alexcrichton@nodakai@shepmaster

        Issue actions

          Tracking issue for rustbuild, the alternate build system for rustc · Issue #31590 · rust-lang/rust