-
Notifications
You must be signed in to change notification settings - Fork 13.3k
./x.py build -i
does not fill stage2 directory
#43177
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
Comments
Lines 309 to 311 in 5cc1baa
--stage 2 to override that. Closing as not a bug.
|
That is very confusing. Why should the I still think there is a bug here. |
Hm, perhaps so. I'll reopen. The thought here I believe is that if you want an incremental build, you probably want to only build to stage 1, since only stage 0 is incrementally built. However, since I believe @nikomatsakis added the logic in 83453bc, I'll let them try to explain why. cc @alexcrichton as well. |
Notice that |
Note that the fact that |
Ah, so probably behavior was different when the |
So the one thing here is that as it is today, most of the time you don't need to build the stage1 compiler artifacts, so |
Wouldn't that be an argument to generally make |
Perhaps, yes. I don't really know why stage 2 is the default.. maybe @alexcrichton can comment there? It seems to be the wrong default... |
As @Mark-Simulacrum noted, the reason that |
@nikomatsakis As I already said, however, if you run |
^ That's interesting... I hope that does not happen. EDIT: well, by the time it takes to build stage2 from the above(3mins), Ralfjung is probably right: ./x.py build -j 5
Updating submodules
Finished dev [unoptimized] target(s) in 0.0 secs
Building stage0 std artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Finished release [optimized] target(s) in 0.0 secs
Copying stage0 std from stage0 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
Building stage0 test artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Finished release [optimized] target(s) in 0.0 secs
Copying stage0 test from stage0 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
Building stage0 compiler artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Finished release [optimized] target(s) in 0.1 secs
Copying stage0 rustc from stage0 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
Assembling stage1 compiler (x86_64-unknown-linux-gnu)
Building stage1 std artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Finished release [optimized] target(s) in 0.0 secs
Copying stage1 std from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
Building stage1 test artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Finished release [optimized] target(s) in 0.0 secs
Copying stage1 test from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
Building stage1 compiler artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Finished release [optimized] target(s) in 0.1 secs
Copying stage1 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
Assembling stage2 compiler (x86_64-unknown-linux-gnu)
Uplifting stage1 std (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Copying stage2 std from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
Uplifting stage1 test (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Copying stage2 test from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
Building stage1 tool rustdoc (x86_64-unknown-linux-gnu)
Compiling pulldown-cmark v0.0.14
Compiling log v0.3.8
Compiling gcc v0.3.51
Compiling bitflags v0.8.2
Compiling libc v0.2.29
Compiling env_logger v0.4.3
Compiling filetime v0.1.10
Compiling build_helper v0.1.0 (file:///home/xftroxgpx/build/2nonpkgs/rust.stuff/rust/rust/src/build_helper)
Compiling rustdoc v0.0.0 (file:///home/xftroxgpx/build/2nonpkgs/rust.stuff/rust/rust/src/librustdoc)
Compiling rustdoc-tool v0.0.0 (file:///home/xftroxgpx/build/2nonpkgs/rust.stuff/rust/rust/src/tools/rustdoc)
Finished release [optimized] target(s) in 161.27 secs
Build completed successfully in 0:03:07
real 3m7.558s
user 4m50.740s
sys 0m9.694s |
What's the problem with this? |
The block that sets stage 1 when incremental is passed can be removed to fix this. Since stage 2 isn't going to take much time in practice due to copying libs forward, this shouldn't be a problem. |
Don't default to stage 1 with incremental Closes #43177. r? @Mark-Simulacrum
Just like
./x.py build
ends by filling the stage 2 directory...... I would expect
./x.py build -i
to do the same. But it does not, the output ends withSo to get a usable stage 2 while using incremental compilation, I need to
./x.py build -i && ./x.py build
. That seems wrong.The text was updated successfully, but these errors were encountered: