Uh oh!
There was an error while loading. Please reload this page.
Enable graph-based type checking, parallel optimizations and ILX gen in deterministic build - #19028
Conversation
❗ Release notes required
|
majocha
commented
Oct 24, 2025
Good thing is I got exactly the same diff locally as in the CI, so it is already deterministic in this regard 😁 |
Ok so it's not a type parameter but actual char type. It just randomly gets emitted either as Char or char. Edit: Nope it was because of not unified type argument names between type declaration and extensions. |
eb10796 to
128da51CompareTODO: fsharp/src/Compiler/CodeGen/IlxGen.fs Line 2337 in 12efe3b and fsharp/src/Compiler/CodeGen/IlxGen.fs Line 2757 in 12efe3b Apart from stabilizing these generated names, the order of of generated IL also needs to be deterministic. Specifically, in FCS.dll generated types in PrivateImplementationDetails are sometimes in different order. Possibly relevant: fsharp/src/Compiler/CodeGen/IlxGen.fs Lines 2389 to 2394 in 12efe3b |
f837b8d to
c032cc3Compare5d68b92 to
caebe81Compare18aec62 to
45ffedcCompareit needs to be made compatible with parallel checking
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
513aa4f to
556f28cCompareT-Gro
commented
Nov 11, 2025
One thing where I do not have high confidence in the automated test suite (==> will need more manual testing and dogfooding) is the debugger support via pdbs. |
Uh oh!
There was an error while loading. Please reload this page.


This as a follow up to #18998:
Necessary changes to enable determinism:
There are no additional tests for determinism, it is currently tested only by running the
test-determinismscript locally and in the CI.One issue needed investigation: type extensions with mismatched type argument names can break determinism:
Either
charorCharwill end up in the IL.This is related to #15287 and needs work: #19033