You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
* Add IL output option for deterministic outputThread a new option through the options to the code writing the IL.For the moment just use a constant for deterministic timestamp, and use 0 as the timestamp in the MVID* Basic check to prevent wildcard version + deterministic at the same time* Hash the code, data and metadata, and use for mvid + timestamp* Fix fsc & fsci help tests by adding in new command line option for deterministic* tests for command line, wildcard versions, normal non-deterministic behaviour* Attempt to get CI to support timeout* Allow PRECMD to call FSI more than once, and use this for copying files and pausing to prevent race-condition* PortablePdbBuilder use consistent id If compiling deterministically, use deterministic id provider support in making a pdb builder. seehttps://github.com/dotnet/roslyn/blob/master/src/Compilers/Core/Portable/PEWriter/PeWriter.cs#L132* Portable and Embedded pdb now deterministic* wip: fix up timestamp in pdb, but mvids still out of sequence* Fix breaking change from rebasing on master* Add notes about determinism with non portable pdbsMake the checks for finding embedded guids morestrict and unique* Throw error if determinsitc build and non-portable pdb specified
Copy file name to clipboardExpand all lines: src/fsharp/FSComp.txt
+3Lines changed: 3 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -859,6 +859,7 @@ optsDebugPM,"Emit debug information (Short form: -g)"
859
859
optsDebug,"Specify debugging type: full, portable, embedded, pdbonly. ('%s' is the default if no debuggging type specified and enables attaching a debugger to a running program, 'portable' is a cross-platform format, 'embedded' is a cross-platform format embedded into the output file)."
optsDeterministic,"Produce a deterministic assembly (including module version GUID and timestamp)"
862
863
optsCrossoptimize,"Enable or disable cross-module optimizations"
863
864
optsWarnaserrorPM,"Report all warnings as errors"
864
865
optsWarnaserror,"Report specific warnings as errors"
@@ -1137,6 +1138,8 @@ fscTooManyErrors,"Exiting - too many errors"
1137
1138
2022,pathIsInvalid,"Problem with filename '%s': Illegal characters in path."
1138
1139
2023,fscResxSourceFileDeprecated,"Passing a .resx file (%s) as a source file to the compiler is deprecated. Use resgen.exe to transform the .resx file into a .resources file to pass as a --resource option. If you are using MSBuild, this can be done via an <EmbeddedResource> item in the .fsproj project file."
1139
1140
2024,fscStaticLinkingNoProfileMismatches,"Static linking may not be used on an assembly referencing mscorlib (e.g. a .NET Framework assembly) when generating an assembly that references System.Runtime (e.g. a .NET Core or Portable assembly)."
1141
+
2025,fscAssemblyWildcardAndDeterminism,"An %s specified version '%s', but this value is a wildcard, and you have requested a deterministic build, these are in conflict."
1142
+
2026,fscDeterministicDebugRequiresPortablePdb,"Determinstic builds only support portable PDBs (--debug:portable or --debug:embedded)"
1140
1143
3000,etIllegalCharactersInNamespaceName,"Character '%s' is not allowed in provided namespace name '%s'"
1141
1144
3001,etNullOrEmptyMemberName,"The provided type '%s' returned a member with a null or empty member name"
1142
1145
3002,etNullMember,"The provided type '%s' returned a null member"
match AttributeHelpers.TryFindVersionAttribute tcGlobals"System.Reflection.AssemblyVersionAttribute""AssemblyVersionAttribute" topAttrs.assemblyAttrswith
1818
+
match AttributeHelpers.TryFindVersionAttribute tcGlobals"System.Reflection.AssemblyVersionAttribute""AssemblyVersionAttribute" topAttrs.assemblyAttrstcConfig.deterministicwith
1814
1819
| Some v->
1815
1820
match tcConfig.versionwith
1816
1821
| VersionNone-> Some v
@@ -1896,7 +1901,7 @@ let main1OfAst (ctok, legacyReferenceResolver, openBinariesInMemory, assemblyNam
1896
1901
1897
1902
// Try to find an AssemblyVersion attribute
1898
1903
letassemVerFromAttrib=
1899
-
match AttributeHelpers.TryFindVersionAttribute tcGlobals"System.Reflection.AssemblyVersionAttribute""AssemblyVersionAttribute" topAttrs.assemblyAttrswith
1904
+
match AttributeHelpers.TryFindVersionAttribute tcGlobals"System.Reflection.AssemblyVersionAttribute""AssemblyVersionAttribute" topAttrs.assemblyAttrstcConfig.deterministicwith