All Versions
Latest Version
Avg Release Cycle
49 days
Latest Release

Changelog History
Page 1

  • v37.0.0 Changes

    🚀 This release bring a number of new changes, including a massive enhancement to SemanticClassification types thanks to @cartermp.

    From dotnet/fsharp:333eb82c8..d9e070a9d:

    • now allows for multiple implementations of generic interfaces (preview feature) (thanks @0x53A!)
    • 0️⃣ the default assembly set for script resolution now includes System.Numerics (thanks @KevinRansom)
    • 📦 #r nuget package resolution is now committed eagerly, instead of delayed (thanks @KevinRansom)
    • ⬇️ reduced allocations for some strings in the compiler (thanks @kerams)
    • 👍 better printing for SRTP constraints (thanks @abelbraaksma/@realvictorprm)
    • more expressive DUs for semantic classification (thanks @cartermp)
    • ✂ remove legacymsbuildreferenceresolver (thanks @KevinRandom)
    • supply witnesses for op_UnaryPlus (thanks @TIHan)
    • clean up CE classifications (thanks @cartermp)
    • 🛠 Fixed tostring/equality for StringText (thanks @deviousasti)
    • 🛠 Fixed error text for FS0874
    • Disallow assignment to C# Const/Readonly properties (thanks @baronfel)
    • 👍 Allow Int64.MinValue as a valid nativeint literal (thanks @abelbraaksma)
    • ✨ Enhancements to the nameof feature (preview feature)
    • String interpolation (preview feature)
  • v36.0.3 Changes

    🛠 This is a small bugfix release that fixes a nuspec package dependency issue with Sourcelink

  • v36.0.2 Changes

    🛠 This is a small bugfix release that I'm making primarily to publish a version of FCS with sourcelink enabled, so that tooling users can make use of that information.

    From dotnet/fsharp:079276b4b..37d0cccec:

    • 🛠 Fixes for do! handling in computation expressions (thanks @baronfel)
    • ➕ Add missing versions in FCS' Interactive header (thanks @nightroman)
    • 👌 Support Source-translation in match! expressions (thanks @baronfel)
    • Ensure stack traces from uncaught exceptions in CEs are maintained (thanks @NinoFloris)
    • 👍 Better handling of inline in witness-passing codepaths (thanks @dsyme)
    • Enable publishing of FCS with sourcelink (thanks @baronfel)
    • 0️⃣ Extend nameof to support naming generic parameters (nameof<'t>) and instance members (nameof(Unchecked.defaultof<C>.Property)) (thanks @dsyme)
  • v36.0.1 Changes

    From dotnet/fsharp:522dd906c..16bca5aef:

    • 🛠 Fixes to attribute range parsing (thanks @auduchinok)
    • ➕ Added nested exception details to Type Provider load errors (thanks @dsyme)
    • 👌 Improved error messages around unknown identifiers in patterns (thanks @jbeeko)
    • 👍 Better dependency probing behavior with Facade assemblies (thanks @KevinRansom)
    • APIs for programmatically adding and retrieving bindings in an FSI session (thanks @TIHan)
    • Optional parameter on FSharpChecker.FindBackgroundReferencesInFile API to allow for stale results (thanks @TIHan)
    • 👍 Better tooltips for function arguments (thanks @mcon)
    • 🐎 Many performance tweaks to various compiler function implementations (thanks @forki)
    • 🛠 Typo fixes in the AST (thanks @auduchinok)
    • 👍 Better IL emitted for usages of static members as System.Action (thanks @MoFtZ)
    • 👍 Allow for indexers to specify a type annotation (thanks @TIHan)
    • 👍 Allow languages/scripts that have no notion of upper-case to use their characters for DU identifiers (thanks @KevinRansom)
    • ⚡️ more optimized comparison/equality for DateTime (thanks @cartermp)
    • ➕ add support for char for the GenericZero/GenericOne mechanisms (thanks @Happypig375)
    • ✨ enhancements for the dependencymanager's resolution for native scripts (thanks @KevinRansom)
    • 👍 more consistent support for type-directed nullable parameters (thanks @dsyme)
    • 🛠 fix FSI's ordering of out-of-order dlls in nuget packages (thanks @KevinRansom)
    • 🆕 New SyntaxTree.Paren syntax node (thanks @auduchinok)
    • ➕ add SRTP witness solutions (via the new CallWithWitnesses pattern) (thanks @dsyme)
  • v35.0.0 Changes

    📦 This version bumps the major due to API surface area changes in the AST and TAST. In addition, there's a new package for the built-in Nuget dependency manager for FSI: FSharp.DependencyManager.Nuget

    Members are now in SyntaxTree/SyntaxTreeOps and TypedTree/TypedTreeBasics/TypedTreeOps/TypedTreePickle.

    From dotnet/fsharp:d1a3d0705..522dd906c:

    • 👌 Improved error recovery from patterns (thanks @auduchinok)
    • Smaller IL Emit for unsigned 64-bit constants (thanks @teo-tsirpanis)
    • 👌 Improved ProvidedTypes Type generation (thanks @DedSec256)
    • 👌 Improved CodeLenses provided (thanks @realvictorprm)
    • ⚡️ Optimize internal member calculations in PrettyNaming and items lookup (thanks @auduchinok)
    • 🛠 More fixes to compiler internals, ranges, etc (thanks @auduchinok)
    • 👌 Support for consumption of C# Default Interfaces
    • 👍 Better encapsulation of ProvidedExpr members (thanks @DedSec256)
  • v34.1.1 Changes

    From dotnet/fsharp:3777cd4d8..836da28c0:

    • Slight tweaks to error messages around numeric literals (Thanks @Happypig375)
    • Deny taking native address of an immutable local value (Thanks @TIHan)
    • 🛠 Fixes to reported ranges for wildcard self-identifiers, module abbreviations, nested modules, attributes, nested types, and fields (Thanks @auduchinok)
    • 👍 Better compiler error recovery for errors in constructor expressions (Thanks @auduchinok)
    • 🛠 Fix handling of F# Options in C# members with regards to nullable type interop (Thanks @TIHan)
    • 🚚 Move dependency handling of native dlls to the DependencyManager (Thanks @KevinRansom)
  • v34.1.0 Changes

    From dotnet/fsharp:3af8959b6..9d69b49b7:

    • 0️⃣ set default script TFM to netcoreapp3.1 if none found
    • 👌 improve C#-nullable and optional interop (RFC FS-1075)
    • ➕ Add type name to undefined name error if known
    • 👌 improve printing via %A/fsi
    • misc. improvements to DependencyManager
    • 👌 improve type provider support for .netcoreapp3.1 target frameworks.
    • 🆕 New, optimized find-all-references API with reduced memory usage.
    • 👍 better error messages for failed overload resolution
  • v34.0.1 Changes

    Contains commits from 32b124966 to d7018737c from dotnet/fsharp. Notable changes include:

    • lowered allocations for large strings and char arrays (notably source file texts)
    • 👌 improved support for byref-like rules with regards to type abbreviations
    • 👍 better support for scopes in recursive modules
    • 👍 better location of .net core reference assemblies
    • lowered allocations for several internal compiler structures
    • 👍 better error messages for anonymous record mismatches
    • FSharpChecker learned how to keep background symbol uses
    • 🚚 Project cracker/project cracker tool were removed
    • 👍 Better support for consuming C# in-ref parameters
    • 🆕 new services around simplifying names and finding unused declarations
    • 📦 package management in scripts (in preview)
    • 👍 and-bang syntax support (in preview)
  • v33.0.1 Changes

    ↔ Integrate dotnet/fsharp from 4f5f08320 to 7b25d7f82. Notable changes include:

    • ➕ Addition of the FsharpUnionCase.HasFields property
    • 🏗 FCS builds entirely on .Net Core now
    • 👍 Better debug information for ranges
    • 👌 Support for Literal values in signature files
    • Using memory-mapped files cross-platform to read IL.
  • v33.0.0 Changes

    ↔ Integrate dotnet/fsharp from 48f932cf8 to 085985140. Notable changes include:

    allowing '_' as a self-identifier
    events for FSI evaluation lifecycle events
    enhancements to FSI return-values
    fixed parsing for langversion CLI arguments
    allow cancellation of FSI interactions
    ToString fixes for value options
    Fixes for code generation in autogenerated members for very large records
    make ranges of member declarations capture the entire member
    improve error recovery in the parser
    improve logic for auto-detecting framework assemblies for FSI