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

x.py build changed how paths are printed => hyperlinks (in e.g. emacs) do not work #47355

Closed
pnkfelix opened this issue Jan 11, 2018 · 7 comments
Labels
C-bug Category: This is a bug. 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

@pnkfelix
Copy link
Member

pnkfelix commented Jan 11, 2018

At some point in the recent past, something in one or more of our tools has broken so that the paths printed during compilation errors/warnings are not presented relative to the current directory.

E.g., when I am building with current directory ~/Dev/Mozilla/rust-mirborrowck/objdir-dbgopt/, via the command ../x.py build --incremental --keep-stage 0 --stage 1 src/libstd, I now get output with errors like this:

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)
   Compiling rustc_mir v0.0.0 (file:///home/pnkfelix/Dev/Mozilla/rust-mirborrowck/src/librustc_mir)
error: expected one of `=>`, `if`, or `|`, found `{`
   --> librustc_mir/borrow_check/mod.rs:949:36
    |
949 |             Rvalue::Len(ref place) {
    |                                    ^ expected one of `=>`, `if`, or `|` here

error: aborting due to previous error

error: Could not compile `rustc_mir`.

but the provided path, librustc_mir/borrow_check/mod.rs is meaningless in the context of my current directory; I need it to either be an absolute path, or a relative path like ../src/librustc_mir/borrow_check/mod.rs

@pnkfelix pnkfelix added the T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) label Jan 11, 2018
@pnkfelix
Copy link
Member Author

This is of course easy for a veteran to work around by manually opening up the files in question, which is why I suspect no one had filed this issue yet. But its probably really bad for a newcomer, and its an annoyance even for veterans.

@Zoxc
Copy link
Contributor

Zoxc commented Jan 11, 2018

This seems to be due to rust-lang/cargo#4788.

cc @alexcrichton

@alexcrichton
Copy link
Member

Yes this is due to the PR @Zoxc linked. We could fix this in rust-lang/rust by moving the Cargo.toml up to the root I believe.

@nikomatsakis
Copy link
Contributor

Drives me crazy. I am currently using ./x.py build 2>&1 | sed s%--> lib%-->src/lib%, but I think that in general running ./x.py should print relative to the directory where you ran the command.

@XAMPPRocky XAMPPRocky added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. C-bug Category: This is a bug. labels Apr 10, 2018
@pnkfelix
Copy link
Member Author

pnkfelix commented May 4, 2018

Just as an update: @alexcrichton wrote:

Yes this is due to the PR @Zoxc linked. We could fix this in rust-lang/rust by moving the Cargo.toml up to the root I believe.

But from reading the history of PR #47731 it appears that the strategy of moving Cargo.toml up to the root was not workable...

@jyn514
Copy link
Member

jyn514 commented Jan 1, 2021

@pnkfelix are you still running into this issue? Similar errors in rustdoc print relative to the workspace root, is that the behavior you want? If so I think this can be closed.

error[E0432]: unresolved import `std::ev`
  --> src/librustdoc/lib.rs:62:5
   |
62 | use std::ev;
   |     ^^^^^--
   |     |    |
   |     |    help: a similar name exists in the module: `env`
   |     no `ev` in the root

@jyn514
Copy link
Member

jyn514 commented Jun 27, 2022

I'm going to close this, I think it's since been fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug. 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

6 participants