Determinism of the F# Compiler #1042 (#2954)
* 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
Showing
想要评论请 注册 或 登录