Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upDelete the makefile build system #39431
Conversation
rust-highfive
assigned
aturon
Jan 31, 2017
This comment has been minimized.
This comment has been minimized.
|
r? @aturon (rust_highfive has picked a reviewer for you, use r? to override) |
This comment has been minimized.
This comment has been minimized.
|
r? @brson |
rust-highfive
assigned
brson
and unassigned
aturon
Jan 31, 2017
This comment has been minimized.
This comment has been minimized.
I know I already did a |
This comment has been minimized.
This comment has been minimized.
|
Please fix #36385 before removing the old build system, this is a blocker. I planned to do it myself, but I won't be able to do it before this PR is merged. |
This comment has been minimized.
This comment has been minimized.
|
The patch looks fine to me. @petrochenkov #36385 seems like both a difficult problem to solve and one that isn't causing a great deal of pain (Rust devs are still developing and nobody has fixed it). Should we really stop and tackle that right now? |
This comment has been minimized.
This comment has been minimized.
|
@brson
That's because the old build systems still exists! Otherwise, they probably don't develop on Windows, or irresponsibly submit untested PRs. |
This comment has been minimized.
This comment has been minimized.
|
Let's just put that issue to rest, a commit's now attached to this PR. I was hoping to give someone else a chance to get their feet wet with the build system and/or compiletest, but oh well. |
This comment has been minimized.
This comment has been minimized.
|
@petrochenkov FWIW I've found the way you've approached #36385 as somewhat frustrating and unproductive. You've repeatedly brought it up and as you've notice I tried to outline clear solutions. There's been ample time (2 whole release cycles) where the deprecation of the makefiles has been announced, so this PR shouldn't come as a surprise. In the future it'd be great to take a more proactive and less passive-aggressive stance towards solving these sorts of issues. |
This comment has been minimized.
This comment has been minimized.
|
There's many critical issues breaking shared linking build, like #39215. Please make a list to track them. |
This comment has been minimized.
This comment has been minimized.
Wait, why isn't that commit a separate PR? Surely that would be a step forward to let people concerned about the makefiles going away verify that they can use rustbuild before landing this whole PR too? Update: I guess the idea was to ensure that this PR didn't land without ensuring that the test result caching didn't land as well? (Too bad github doesn't have a direct way to express such dependencies between PR's, as far as I know...) |
This comment has been minimized.
This comment has been minimized.
|
@pnkfelix well I don't really mind any particular organization, I'd just like to land this! |
This comment has been minimized.
This comment has been minimized.
|
@bors r+ |
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
What are you guys doing? Please, delay the removal until the (dynamic) linking issues are fixed. |
This comment has been minimized.
This comment has been minimized.
|
@ishitatsuyuki as explained in the PR this is a long time coming. We've still got 3 months before this hits stable anyway to fix more issues as they arise. Rewriting a build system is almost guaranteed to not be bug-for-bug compatible, so many quirks and bugs of the makefiles are not carried over (either accidentally or intentionally). Issues like #39215 were barely ever supported by the makefiles (if at all, only by luck) and aren't really a great reason to completely block this in my opinion. These bug fixes tend to just be a line here or there, and PRs are always welcome! |
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton I'm concerned about breaking distro packaging entirely by only testing on rustup. A buildsystem definitely should not be flawed (flawed by default is annoying enough though), and we will completely lose dynamic linking if you removed the old one. Be patient. You didn't tend to break old rust code, but you're going to break up-to-date distro build script now. (By the way, this would also break the rust-git package in AUR) |
This comment has been minimized.
This comment has been minimized.
|
Issue unblocked, I'm okay with the merge. |
This comment has been minimized.
This comment has been minimized.
|
As much as I'd love to forge ahead with Cargo, I agree with @ishitatsuyuki that we should make explicit overtures to Rust packagers to make sure they have everything they need to exist in a world without makefiles. |
retep998
referenced this pull request
Feb 3, 2017
Open
Move backtrace handling code to separate crate #39503
This comment has been minimized.
This comment has been minimized.
|
|
alexcrichton
force-pushed the
alexcrichton:no-more-makefiles
branch
from
39321aa
to
2d51781
Feb 4, 2017
This comment has been minimized.
This comment has been minimized.
|
@bors: r=brson |
This comment has been minimized.
This comment has been minimized.
|
|
tamird
reviewed
Feb 4, 2017
| @@ -1,75 +0,0 @@ | |||
| { | |||
This comment has been minimized.
This comment has been minimized.
tamird
Feb 4, 2017
Contributor
how come these files are no longer needed? where do valgrind suppressions come from these days? I grepped around and couldn't find it.
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton |
This comment has been minimized.
This comment has been minimized.
|
|
steveklabnik
referenced this pull request
Feb 6, 2017
Closed
Tracking issue for RFC 1828: Rust Bookshelf #39588
This comment has been minimized.
This comment has been minimized.
|
@cuviper, As far as I know there are projects for making Rust bootstrappable without repeating it's entire history from Ocaml across all intermediate releases. Like a simplified non-verifying non-optimizing Rust interpreter or compiler written in C. |
frewsxcv
added a commit
to frewsxcv/rust
that referenced
this pull request
Feb 7, 2017
bors
added a commit
that referenced
this pull request
Feb 7, 2017
frewsxcv
added a commit
to frewsxcv/rust
that referenced
this pull request
Feb 7, 2017
bors
added a commit
that referenced
this pull request
Feb 7, 2017
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton Does this fail from my rollup seem relevant to your changes here? |
This comment has been minimized.
This comment has been minimized.
frewsxcv
added a commit
to frewsxcv/rust
that referenced
this pull request
Feb 8, 2017
bors
added a commit
that referenced
this pull request
Feb 8, 2017
bors
added a commit
that referenced
this pull request
Feb 8, 2017
frewsxcv
added a commit
to frewsxcv/rust
that referenced
this pull request
Feb 8, 2017
bors
added a commit
that referenced
this pull request
Feb 8, 2017
bors
merged commit c8e0d04
into
rust-lang:master
Feb 8, 2017
1 check passed
This comment has been minimized.
This comment has been minimized.
|
Shouldn't the main README.md also be updated? It still says to use |
This comment has been minimized.
This comment has been minimized.
|
Nah we still have a bare-bones makefile at least for familiarity, so that documentation is still correct. We may wish to feature |
alexcrichton
deleted the
alexcrichton:no-more-makefiles
branch
Feb 8, 2017
This comment has been minimized.
This comment has been minimized.
J-F-Liu
commented
Feb 10, 2017
•
|
It will also be good to split current compiler into several crates, e.g. lexer, parser, hir, mir etc. This is a win-win situation.
|
This comment has been minimized.
This comment has been minimized.
|
@J-F-Liu this is already true, check the subdirectories of https://github.com/rust-lang/rust/tree/master/src, for example, https://github.com/rust-lang/rust/blob/master/src/librustc_mir/Cargo.toml is for MIR. |
alexcrichton commentedJan 31, 2017
This PR deletes the makefile build system in favor of the rustbuild build system. The beta has now been branched so 1.16 will continue to be buildable from the makefiles, but going forward 1.17 will only be buildable with rustbuild.
Rustbuild has been the default build system since 1.15.0 and the makefiles were proposed for deletion at this time back in November of last year.
And now with the deletion of these makefiles we can start getting those sweet sweet improvements of using crates.io crates in the compiler!