Skip to content

Commit

Permalink
FSharp.Compiler.Service: update tagged collections with new implement…
Browse files Browse the repository at this point in the history
…ation 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.
  • Loading branch information
buybackoff authored Sep 28, 2020
1 parent 2e40961 commit af6ff33
Showing 1 changed file with 706 additions and 776 deletions.
Loading

0 comments on commit af6ff33

Please sign in to comment.