fsharp icon indicating copy to clipboard operation
fsharp copied to clipboard

Rework some F# layering

Open KevinRansom opened this issue 7 months ago • 4 comments

I intend to try to refactor F# core into at least two assemblies.

  1. fscorlib --- Core types supporting runtime scenarios
  2. FSharp.Core --- Types supporting runtime and compilation scenarios

The benefit of this is that we can build a platform specific fscorlib.dll and deploy it with each new runtime, so we can start to use new runtime features in our core library. I have no idea how successful this will be whilst retaining compatibility, but I really want to give it a solid try.

This PR

  • [x] Renames the config setting compilingFSharpCore to compilingCoreLibrary

Eliminate compiler reliance on ExtraTopLevelOperators modules, because it pulls types from all over FSharp.Core

  • [x] Add ExtraTopLevelOperators to Operators and Operators.Checked
  • [x] Tests for added Operators and Operators.Checked
  • [x] Hides ExtraTopLevelOperators for moved operations from intellisense
  • [ ] Move dict and set implementations to Collections namespace
  • [ ] Move Printf
  • [x] Move DefaultAsyncBuilder
  • [ ] Move Measures
  • [ ] Ensure Compiler only uses the above from their new locations

KevinRansom avatar Jun 29 '24 00:06 KevinRansom