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 upTracking issue for Path Prefix Remapping #41555
Comments
michaelwoerister
added
A-debuginfo
A-metadata
B-unstable
T-compiler
T-tools
labels
Apr 26, 2017
alexcrichton
added
T-dev-tools
and removed
T-tools
labels
May 22, 2017
This comment has been minimized.
This comment has been minimized.
|
What's the next step to stabilize this? Looks like it probably won't be stable for 1.20? |
This comment has been minimized.
This comment has been minimized.
|
Good question. I did not heard any complaints about the way things currently work -- which I interpret as everybody being happy Some of the people initially interested in the feature were @jmesmon, @infinity0, @sanxiyn, and @jsgf. Do you have any feedback? Other than that, two open topics are:
I personally would be fine with either of the first two options. |
This comment has been minimized.
This comment has been minimized.
|
I haven't tested this yet but I'm still interested. When I get a chance, I'll test it with 1.19 in Debian and see if we get a reproducible build. |
This comment has been minimized.
This comment has been minimized.
|
We use it in clippy for making our tests' stderr output OS independent. Works like a charm: https://github.com/Manishearth/rust-clippy/blob/master/tests/examples.rs#L29 |
This comment has been minimized.
This comment has been minimized.
|
Is the duplication of the path with |
This comment has been minimized.
This comment has been minimized.
|
Maybe it changed. But I had to implement it this way, otherwise it wouldn't work |
This comment has been minimized.
This comment has been minimized.
The current implementation works on plain strings. It does not try to interpret them as paths. |
This comment has been minimized.
This comment has been minimized.
|
Oh right. I was going by the code at the bottom of this older comment, I didn't notice you had gone back to plain string matching. What was the reason? I know GCC also do plain string matching, but I actually prefer path-level matching because it would be easier to use. This cross-platform duplication issue is a further example in that area. |
This comment has been minimized.
This comment has been minimized.
|
@brson, @michaelwoerister I just hacked it up in buck and it all looks good. Once it's stable (at least, we have decided on a stable command line option), I can do a real diff. Either |
This comment has been minimized.
This comment has been minimized.
|
@michaelwoerister Do you think it's possible to stabilize this in the 1.21 timeframe? |
This comment has been minimized.
This comment has been minimized.
|
@infinity0 I'm divided on whether path matching should be string- or component-based. Component-based is a bit more ergonomic in the cross-platform case. I'm not sure though if it can be somewhat less predictable in corner cases (e.g. strange Windows path prefixes). @jsgf That should be doable. I'm nominating this for the next @rust-lang/dev-tools meeting to discuss string matching and which form the CLI should take -- and then we can let the appropriate subteams vote on it. @rust-lang/core: Which teams need to sign off on stabilizing this? Quick recap: This feature allows to remap file paths (in output messages and output artifacts) to be remapped. This is necessary for reproducible builds and helps with custom debugging setups. |
michaelwoerister
added
the
I-nominated
label
Jul 18, 2017
This comment has been minimized.
This comment has been minimized.
|
@michaelwoerister @rust-lang/dev-tools sounds good to me as a team for signing off! |
This comment has been minimized.
This comment has been minimized.
|
On matching mechanism: an alternate to paths & strings is to use regexes. Strings works fine for me though. |
Mark-Simulacrum
added
the
C-tracking-issue
label
Jul 22, 2017
michaelwoerister
removed
the
I-nominated
label
Aug 7, 2017
kennytm
referenced this issue
Aug 8, 2017
Merged
RFC: Implicit caller location (third try to the unwrap/expect line info problem) #2091
michaelwoerister
removed
the
T-compiler
label
Aug 8, 2017
This comment has been minimized.
This comment has been minimized.
|
This has been discussed in the @rust-lang/dev-tools meeting and the conclusion was that we want to stabilize in the following form:
@rfcbot fcp merge |
This comment has been minimized.
This comment has been minimized.
rfcbot
commented
Aug 8, 2017
•
|
Team member @michaelwoerister has proposed to merge this. The next step is review by the rest of the tagged teams: No concerns currently listed. Once these reviewers reach consensus, this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! See this document for info about what commands tagged team members can give me. |
rfcbot
added
the
proposed-final-comment-period
label
Aug 8, 2017
This comment has been minimized.
This comment has been minimized.
|
@rfcbot reviewed |
This comment has been minimized.
This comment has been minimized.
So in other words you would split on the final |
bors
added a commit
that referenced
this issue
Oct 5, 2017
This comment has been minimized.
This comment has been minimized.
|
Does this need release notes? Is this where that gets tagged? |
This comment has been minimized.
This comment has been minimized.
|
I can confirm that #44940 fixed the compile issues I was seeing when using this feature and a simple Thoughts on privacyI think this feature possesses the mechanics to more broadly address privacy issues for closed-source code. This may be out of scope for the current issue, but I wanted to bring it up now since this feature hasn't been fully implemented yet. The current reality for closed source code is that any time a ExampleLet's say a company creates a video game with some hidden content. If the source for that module included a
Using this feature, the company now has a manual way to suppress this at compile time (cool!):
But note that this is very manual (need a Straw Man ProposalIf rustc let you suppress all uses of
|
Xanewok
referenced this issue
Nov 14, 2017
Closed
Looking for Feedback: Support jumping to stdlib #480
This was referenced Feb 2, 2018
This comment has been minimized.
This comment has been minimized.
|
What's the current status of this? It looks like it's been approved for stabilization, but the plan is to change the option to a single |
This comment has been minimized.
This comment has been minimized.
|
I've been using the |
This comment has been minimized.
This comment has been minimized.
|
Yes, it's just waiting to be implemented. I've just been busy with other things. I'm glad to take PRs though. |
This comment has been minimized.
This comment has been minimized.
|
OK, I'm looking at it now. |
This comment has been minimized.
This comment has been minimized.
kpcyrd
commented
Feb 19, 2018
|
As a minor note, it would be interesting to have both $HOME and $PWD remapped to standard values for release builds. This is currently the only thing that I have to adjust manually for reproducible builds (besides #47135). |
This comment has been minimized.
This comment has been minimized.
|
They would only affect the build if you're explicitly referencing them with |
jsgf
added a commit
to jsgf/rust
that referenced
this issue
Feb 20, 2018
jsgf
added a commit
to jsgf/rust
that referenced
this issue
Feb 20, 2018
jsgf
added a commit
to jsgf/rust
that referenced
this issue
Feb 22, 2018
Manishearth
added a commit
to Manishearth/rust
that referenced
this issue
Feb 28, 2018
This comment has been minimized.
This comment has been minimized.
kpcyrd
commented
May 9, 2018
|
@jsgf the binary includes my I think my project root and my explicit or implicit cargo home should be remapped. |
This comment has been minimized.
This comment has been minimized.
|
@kpcyrd Well I guess that's an issue to be addressed in |
kpcyrd
referenced this issue
May 10, 2018
Open
Reproducible builds: Automatically remap $CARGO_HOME and $PWD #5505
This comment has been minimized.
This comment has been minimized.
kpcyrd
commented
May 10, 2018
|
@jsgf you're right, I've opened an issue for that: rust-lang/cargo#5505 |
Centril
added
disposition-merge
finished-final-comment-period
and removed
final-comment-period
labels
May 24, 2018
This comment has been minimized.
This comment has been minimized.
|
Closing as this was stabilised in 1.26.0 and there doesn't seem to be any leftover features to be implemented. |
michaelwoerister commentedApr 26, 2017
This feature was originally requested in #38322. The PR that implements this in its unstable form is #41508. This will eventually become stable if the testing phase goes well.