It has been pointed out that we should address where we are with respect to language development for F# 5.0.
Over the last year there has been a number of bug fixes, regressions have been addressed and performance improvements in the Compiler and FSharp.Core. In FSharp 5.0 we will be delivering improved interop with C# with the nullable optional and Default Interface Methods consumption features, and Open static classes as well as Allowing Interfaces with multiple generic instantiations. Some long sought improvements to F#, interpolated strings, nameof and packagemanagement. AndBang support in computation expressions. Slicing syntax regularization and from the end indexing as well as witness passing.
We plan and expect all of these features to make it into the product by the time F# 5.0 ships. We plan to ship F# 5.0 with Net 5.0.
We expect to be feature complete in all of the language features by the end of August, at which time we will lock down the language for updates and focus on bugs and stability and tooling.
Features that are complete:
Features we believe are complete, but need a round of preview:
Features that may undergo design changes prior to F# 5.0 release:
Please take the time to try out your existing projects with the preview and 5.0 language version set, it's the best way I know for us to find the features early.
Thank you
Kevin
/cc. @jonsequitur , @cartermp , @brettfo , @TIHan , @vzarytovskii , @colombod , @LadyNaggaga
Awesome stuff! Note that InfoWorld knows one more feature: enhanced tailcall optimization. I don't know if it should be on this list, but figured to mention in anyway. It was highlighted here: https://www.infoworld.com/article/3533053/whats-new-in-microsoft-net-5.html

@abelbraaksma the article is referring to some recent runtime work, where the performance of _some_ .tail-emitting F# code will be significantly better
@KevinRansom
LanguageFeature.OpenStaticClasses - the design is now complete and the implementation of the remaining parts is in-progressLanguageFeature.NameOf - same classification as opening static classes, except there is more progress on the remaining design pointsLanguageFeature.FromEndSlicing - this now has a resolved design: https://github.com/fsharp/fslang-design/issues/472 - so we should probably consider it committed for F# 5 and then decide which of us completes these design considerationsLanguageFeature.PackageManagement - TBH I think this one is good. I know we want to have a dialect of it for notebooks, but that seems like something we can independently of preview/release. The remaining issues with it are really just about editor perf in VS and some features, like supporting referencing packages or framework referencesLanguageFeature.WitnessPassing
Does that fully cover https://github.com/fsharp/fslang-design/blob/master/RFCs/FS-1043-extension-members-for-operators-and-srtp-constraints.md ?
Would be nice to see the status referenced by fslang-design items too.
@jackfoxy No, it's not related to FS-1043. FS-1043 is still in PR, and will require some lengthy review + consideration to make it in. We're aware of its importance, but the Witness Passing for Quotations work alone has been incredibly challenging to incorporate smoothly and it also impacts FS-1043. Both are extremely complicated features, but the Witness Passing work took precedence because it was essential to unblock ongoing R&D work for making F# code execute on different runtime environments (particularly torch and ONNX).
I'm missing "[RFC FS-1087] tasks and resumable state machines" https://github.com/dotnet/fsharp/pull/6811 on these lists.
Is that not included because it is not affecting the language itself, or is it not F# 5.0 material?
@pkese FS-1087 is highly unlikely to make F# 5, yes. It is an enormously complex feature as-is.
There will be versions of F# after 5.0, in general we will pull features in when they are ready or close to ready, so expect to see it in a future iteration of the language.
Closing out. Remaining work is to mark string interpolation as for F# 5 rather than preview
Most helpful comment
I'm missing "[RFC FS-1087] tasks and resumable state machines" https://github.com/dotnet/fsharp/pull/6811 on these lists.
Is that not included because it is not affecting the language itself, or is it not F# 5.0 material?