Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
c536e91
temporary stash
T-Gro Apr 18, 2023
df8844c
Merge remote-tracking branch 'upstream/main' into mvid-refassembly-st…
T-Gro Apr 18, 2023
5eeb7eb
Update NicePrint.fs
T-Gro Apr 18, 2023
71ba12b
Merge remote-tracking branch 'upstream/main' into mvid-refassembly-st…
T-Gro May 18, 2023
b516c9e
Cutting few more pieces trough NicePrint -> Hash conversion
T-Gro May 18, 2023
e0bcd96
signature hash
T-Gro May 22, 2023
3f09b87
IL type hashing
T-Gro May 22, 2023
4f41441
attribute hashing, typar hashing
T-Gro May 22, 2023
9899a40
typars part 1
T-Gro May 22, 2023
0073239
typar hashing
T-Gro May 22, 2023
7907e8b
next wave
T-Gro May 29, 2023
afa8cb6
hashTraitWithInfo
T-Gro May 29, 2023
128a30a
hashMeasure
T-Gro May 29, 2023
919be77
hashttype
T-Gro May 30, 2023
1454fa4
ttype hash, arginfo hash, typar decl hash
T-Gro May 30, 2023
f4d8903
Merge remote-tracking branch 'upstream/main' into mvid-refassembly-st…
T-Gro May 31, 2023
2e7b1db
Removing what is not needed
T-Gro May 31, 2023
84c21e4
Curried and uncurried member signatures
T-Gro May 31, 2023
fa0bdd3
Vals and members
T-Gro Jun 1, 2023
6ab9757
Extension members, record fields, union case fields
T-Gro Jun 1, 2023
69143c6
hashing ilfields, events
T-Gro Jun 1, 2023
8e418ba
Properties, getters, setters
T-Gro Jun 1, 2023
fa2e4d2
Delegates, enums
T-Gro Jun 1, 2023
9322795
inheritsHash
T-Gro Jun 2, 2023
2ccdfcb
Merge remote-tracking branch 'upstream/main' into mvid-refassembly-st…
T-Gro Jun 2, 2023
c23fe43
hashTyconDefn part I
T-Gro Jun 2, 2023
ef99186
type definiton part II, exception definition
T-Gro Jun 2, 2023
0334515
TFSharpObjectRepr hashing, module contents hashing
T-Gro Jun 2, 2023
a60921d
hash module or namespace
T-Gro Jun 2, 2023
f9f28b2
cleanup
T-Gro Jun 2, 2023
31af168
removing unneeded params
T-Gro Jun 2, 2023
22cdd74
Merge remote-tracking branch 'upstream/main' into mvid-refassembly-st…
T-Gro Jun 5, 2023
344afa8
Accessibility logic added
T-Gro Jun 5, 2023
f8a24ab
Putting signature hash into fsc pipeline
T-Gro Jun 5, 2023
a923c41
Including platform and ass level attributes into hash
T-Gro Jun 5, 2023
881d1f6
testing support
T-Gro Jun 5, 2023
3a4a749
Stability tests added
T-Gro Jun 6, 2023
bc00f1c
Merge remote-tracking branch 'upstream/main' into mvid-refassembly-st…
T-Gro Jun 6, 2023
fd49c44
TODO for negative tests added
T-Gro Jun 6, 2023
14e0841
formatted
T-Gro Jun 6, 2023
ace39cd
More test cases added, neg tests for SRTP changes
T-Gro Jun 6, 2023
6ff6f56
Private module addition - not changing the hash
T-Gro Jun 7, 2023
ba1c41e
CurryChangedToTuple
T-Gro Jun 7, 2023
263f548
Merge remote-tracking branch 'upstream/main' into mvid-refassembly-st…
T-Gro Jun 7, 2023
120edcc
Expr<T> robustness
T-Gro Jun 7, 2023
e84196e
fantomas
T-Gro Jun 7, 2023
cff92e9
more tests added based on existing sigfile issues
T-Gro Jun 7, 2023
1cc028e
Merge branch 'main' into mvid-refassembly-stability
T-Gro Jun 8, 2023
537e366
Adding @nojaf's test case for private let binding
T-Gro Jun 9, 2023
bcd7988
Merge branch 'main' into mvid-refassembly-stability
T-Gro Jun 14, 2023
1d58218
Merge branch 'main' into mvid-refassembly-stability
T-Gro Jun 14, 2023
602fb59
Merge remote-tracking branch 'upstream/main' into mvid-refassembly-st…
T-Gro Jun 26, 2023
98d6765
Include optdata into mvidhash - works nice ONLY IF --nooptimizationdata
T-Gro Jun 26, 2023
d9ab7ad
formatting
T-Gro Jun 26, 2023
d9ba99b
IVT support
T-Gro Jun 27, 2023
db65ee8
Full suite passing only if --nooptimizationdata used
T-Gro Jun 27, 2023
b9c1c1c
Merge branch 'main' into mvid-refassembly-stability
T-Gro Jul 4, 2023
4cb0c7d
Merge remote-tracking branch 'upstream/main' into mvid-refassembly-st…
T-Gro Jul 10, 2023
682de65
extracting optimization hash out of EncodeOptimizationData
T-Gro Jul 10, 2023
106fc68
Merge branch 'main' into mvid-refassembly-stability
KevinRansom Jul 12, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 13 additions & 6 deletions src/Compiler/AbstractIL/ilwrite.fs
Original file line number Diff line number Diff line change
Expand Up @@ -3799,6 +3799,7 @@ type options =
dumpDebugInfo: bool
referenceAssemblyOnly: bool
referenceAssemblyAttribOpt: ILAttribute option
referenceAssemblySignatureHash : int option
pathMap: PathMap }

let writeBinaryAux (stream: Stream, options: options, modul, normalizeAssemblyRefs) =
Expand Down Expand Up @@ -4126,11 +4127,17 @@ let writeBinaryAux (stream: Stream, options: options, modul, normalizeAssemblyRe
| HashAlgorithm.Sha256 -> System.Security.Cryptography.SHA256.Create() :> System.Security.Cryptography.HashAlgorithm

let hCode = sha.ComputeHash code
let hData = sha.ComputeHash data
let hMeta = sha.ComputeHash metadata

// Not yet suitable for the mvidsection optimization
let deterministicId = [| hCode; hData; hMeta |] |> Array.collect id |> sha.ComputeHash
let hData = sha.ComputeHash data
// Not yet suitable for the mvidsection optimization

let deterministicId =
[| hCode
hData
match options.referenceAssemblyOnly, options.referenceAssemblySignatureHash with
| true, Some impliedSigHash -> System.BitConverter.GetBytes(impliedSigHash)
| _ -> sha.ComputeHash metadata |]
|> Array.collect id
|> sha.ComputeHash
let deterministicMvid () = deterministicId[0..15]
let pdbData =
// Hash code, data and metadata
Expand Down Expand Up @@ -4546,7 +4553,7 @@ let writeBinaryFiles (options: options, modul, normalizeAssemblyRefs) =
let writeBinaryInMemory (options: options, modul, normalizeAssemblyRefs) =

let stream = new MemoryStream()
let options = { options with referenceAssemblyOnly = false; referenceAssemblyAttribOpt = None }
let options = { options with referenceAssemblyOnly = false; referenceAssemblyAttribOpt = None; referenceAssemblySignatureHash = None }
let pdbData, pdbInfoOpt, debugDirectoryChunk, debugDataChunk, debugChecksumPdbChunk, debugEmbeddedPdbChunk, debugDeterministicPdbChunk, textV2P, _mappings =
writeBinaryAux(stream, options, modul, normalizeAssemblyRefs)

Expand Down
1 change: 1 addition & 0 deletions src/Compiler/AbstractIL/ilwrite.fsi
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ type options =
dumpDebugInfo: bool
referenceAssemblyOnly: bool
referenceAssemblyAttribOpt: ILAttribute option
referenceAssemblySignatureHash: int option
pathMap: PathMap }

/// Write a binary to the file system.
Expand Down
2 changes: 1 addition & 1 deletion src/Compiler/Checking/NicePrint.fs
Original file line number Diff line number Diff line change
Expand Up @@ -2404,7 +2404,7 @@ module TastDefinitionPrinting =

module InferredSigPrinting =
open PrintTypes

/// Layout the inferred signature of a compilation unit
let layoutImpliedSignatureOfModuleOrNamespace showHeader denv infoReader ad m expr =

Expand Down
Loading