Uh oh!
There was an error while loading. Please reload this page.
Enable sourcelink for Visual fsharp tools repo - #2675
Conversation
KevinRansom
commented
Mar 22, 2017
@dotnet-bot test this please |
3 similar comments
mmitche
commented
Mar 22, 2017
@dotnet-bot test this please |
KevinRansom
commented
Mar 22, 2017
@dotnet-bot test this please |
KevinRansom
commented
Mar 22, 2017
@dotnet-bot test this please |
ctaggart
commented
Mar 23, 2017
@KevinRansom What are your thoughts on using a debug type of |
KevinRansom
commented
Mar 23, 2017
@ctaggart not embed in release builds. The working set of released product is important to minimize. Sourcelink works very well and only has a teeny tiny overhead. switching to portable PDBs is like getting free working set given how immense the old symbol files were. Embedding symbols and not source may be interesting for nuget deployment I think we will need some experience to see what works best in that scenario. |
KevinRansom
commented
Mar 28, 2017
There is a coreclr bug that impacts this: https://github.com/dotnet/coreclr/issues/3541 : JITTrackingEnabled on coreclr making internals visible to not work correctly. I expect it to be fixed in .NET Standard 2.0 Mainly this affects debugging the coreclr version of the FSC compiler. I'm going to see if I can find a work around. |
KevinRansom
commented
Mar 29, 2017
@dotnet-bot test this please |
KevinRansom
commented
Mar 29, 2017
Good lord, what has happened to the build? |
| </Reference> | ||
| <Reference Include="Microsoft.VisualStudio.Text.Internal, Version=$(RoslynVSBinariesVersion).0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | ||
| <HintPath>$(FSharpSourcesRoot)\..\packages\RoslynDependencies.Microsoft.VisualStudio.Text.Internal.$(RoslynVSPackagesVersion)\lib\net45\Microsoft.VisualStudio.Text.Internal.dll</HintPath> | ||
| <HintPath>$(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.Text.Internal.15.0.26201-alpha\lib\net46\Microsoft.VisualStudio.Text.Internal.dll</HintPath> |
There was a problem hiding this comment.
I'm concerned about adding a dependency to an alpha release.
brettfo
commented
Mar 30, 2017
As it currently stands, it doesn't look like source link will do what you think:
|
KevinRansom
commented
Mar 30, 2017
@brett, does that mean that the internal repo doesn't have the sha's from GitHub? I figured once this was in, we could figure out the exact magic to get the correct sha. |
I just downloaded an fsc.pdb from this build. You can use a tool I built to test it and look at it. The commit hash works. The file hash does not. Guessing line endings. |
Confirmed that is line endings. I downloaded the file from that URL, calculated the checksum, opened up the file in VS Code, changed the line endings to CRLF and then calculated it again. Git repos store the files as LF, so you must compile as LF to source linking to work. This should be easy. Hopefully adding something like somewhere in the netci.groovy file is simple. @mmitche ? |
mmitche
commented
Mar 30, 2017
@ctaggart All the git installations are on auto (not specified in the groovy file, though theoretically you could set the repo's git config before running any commands). This should be fixed on the repo side if possible since auto is what almost every developer is using too. |
KevinRansom
commented
Mar 30, 2017
@ctaggart, apparently VSCode hashes with both line endings in-order to figure things out, and VS needs a similar change. Also, we are still building our distributions on a VSO repo, which merges localization files each night and so the hash we use is not available on GitHub. There are hacks we can do to fix that, however, they give @brettfo nightmares, even to think about them. In order to allow him to be awake in the day, I'm going to not push for the hacks, just yet. He is confident that we will not have the closed source loc step for much longer, so the issue will go away. |
ctaggart
commented
Mar 30, 2017
@KevinRansom You don't force the repo to a set of line endings. You simply have the git client on the build server not change the line endings. The setting that tells git to clone on Windows without changing the files is |
* Enable sourcelink for repo * Make it turn offable * Somehow I deleted microbuild=true * remove specific symbol type settings from a couple of projects * Enable sourcelink for build * Immutable fix * More tweaks
Enable sourcelink for Visual F# tools repo.
set usesourcelink=false to turn it off
Note: In order
Kevin