-
Notifications
You must be signed in to change notification settings - Fork 785
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
Signature data embedded in executable contains absolute source file path #5213
Comments
I believe this is the only place where the file names are stored: Before we just set this to "null", I should add that these file names are utilised by the F# IDE Tools to allow goto-definition and other things to work when
This means go-to-definition will start failing for these cases if the file name information is just removed. Alternatives might be
|
Seems like the right call to me. Though we'll also want to make sure this doesn't negatively affect other editors (@auduchinok / @Krzysztof-Cieslak / @nosami FYI) |
I think it would be really odd if GTD only worked across compiled assembly boundaries for Debug mode.... No other design-time tooling depends on this like this....
I think it would. |
VSMac can't turn off in-memory cross-project references. I would like to add this feature soon though. |
Hmmm. Well I think that from a tooling perspective there's no issue in having this info. What I think I'd prefer is a way to specify a default where this info is not present when building, and have things like design-time builds kick with that feature turned on. |
Here's what should happen:
I've labeled this as |
For a file |
yes, F# is a little bit worse. C# only embeds the absolute path if you generate a pdb, F# does it always. You can try it with -pdb, then you should also see a path in C#. ( I see value in having a way to suppress this (mostly for deterministic builds), but I don't think it should be enabled by default (even in release) if tooling suffers. Edit: C# allows you to map paths with -pathmap. I edited my csproj and added Result: So instead of blindly and in a hurry nulling out the value, please consider implementing the proper c# solution |
Linking #3812 |
@saul I think F# should do deterministic paths by default when compiling with pdb, like C#. Is PathMap implementation the first step towards doing that or, should it be a native compiler feature? |
I just looked in a release build and found this and others:
|
Yeah it's everywhere in F# ecosystem, taskbuilder, saturn, giraffe all have (fun localized) user paths in there. |
Re-opening as this is not resolved in VS |
The
FSharpSignatureData
resource embedded in the assembly contains absolute paths to the source files. This could include a user's real name etc.I know this info is in the pdb, but shipping that with an executable is optional.
Executables produced from C# compiler don't contain file paths
Repro steps
Provide the steps required to reproduce the problem
test.fs
containing, say,let main argv = 1
fsc test.fs
strings test.exe
test.fs
Expected behavior
No source paths in the exe
Actual behavior
Absolute paths are embedded in the
FSharpSignatureData
resourceKnown workarounds
Provide a description of any known workarounds.
Related information
Provide any related information
The text was updated successfully, but these errors were encountered: