• D
    Determinism of the F# Compiler #1042 (#2954) · 2dcdb466
    David Glassborow 提交于
    * Add IL output option for deterministic output
    
    Thread 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. see https://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 pdbs
    Make the checks for finding embedded guids more
    strict and unique
    
    * Throw error if determinsitc build and non-portable pdb specified
    2dcdb466
run.pl 26.6 KB