Commit af6ff33
authored
FSharp.Compiler.Service: update tagged collections with new implementation from FSharp.Core (#10192)
Copied implementation from FSharp.Core
Differences are:
* TaggedCollections used fat leaves (Left/Right/Height present always). There are 2xN objects in the tree, of which N are leaves. Fat leaves give 20 (24 aligned) x N. More memory, worse memory locality, more GC are not good for perf.
* TaggedCollections did not use optimized closures. Not sure if they are useful, but in many cases it's noop if f' was already in the right shape.
Copying the source opens the possibility to move MapTree and SetTree code to separate files and reuse a single implementation in both places.1 parent 2e40961 commit af6ff33
1 file changed
Lines changed: 706 additions & 776 deletions
0 commit comments