[WIP] Reuse typechecking results - stage 1
First part of the implementation of reusing typecheck results, as per the design doc.
This basically does 2 things:
- adds the flag
--reusetypecheckingresults, with all the hooking - force-generates the typechecking graph and skips recompilation if it's unchanged
Open questions: see my comments.
:heavy_exclamation_mark: Release notes required
:white_check_mark: Found changes and release notes in following paths:
[!WARNING] No PR link found in some release notes, please consider adding it.
Change path Release notes path Description src/Compilerdocs/release-notes/.FSharp.Compiler.Service/9.0.200.md No current pull request URL (https://github.com/dotnet/fsharp/pull/17898) found, please consider adding it
@T-Gro PTAL, this is an early stage so I mostly just wanted to discuss the questions I raised in the comments, so that we go in the agreed direction.
It seems like this is going to rely/build on top of graph checking have couple questions:
- Would this PR https://github.com/dotnet/fsharp/pull/17442 be included ?
- If we are going to rely on this would be important to enable by default ?
@edgarfgp so we'll need to discuss this - personally I'd like to turn graph-checking on. Now (like, before Xmas) is a rather good time - we can catch some bugs there before the next big release.
It's somewhat scaring but, well, just this probably shouldn't be stopping us 👀 Graph-checking and reusing typechecking results can test each other and I'd say we should use this benefit here.
I am not speaking for the whole team just yet - only sharing some thoughts. We will discuss and prioritize this.
Merging, since this goes to a feature branch now.