Releases: fsharp/fsharp-compiler-docs
Release 37.0.0
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!)
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)
Release 36.0.2
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..37d0ccc:
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)
Extend nameof
to support naming generic parameters (nameof<'t>
) and instance members (nameof(Unchecked.defaultof<C>.Property)
) (thanks @dsyme)
Release 34.1.1
34.1.1
From dotnet/fsharp:3777cd4d8..836da28:
- 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)
Release 34.1.0
From dotnet/fsharp:3af8959b6..9d69b49:
- 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
34.0.1 Hotfix Release
After 34.0.0 was unlisted, this release was made to incorporate a few mono-specific fixes to that version.
Contains commits from 32b1249 to d701873 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# inref parameters
- new services around simplifing names and finding unused declarations
- package management in scripts (in preview)
- and-bang syntax support (in preview)
FSharp Integration - January 2020
Note: this release was unlisted due to regressions around F# script project option discovery on some platforms. 34.0.1 will be released in the short term to address these issues.
Contains commits from 32b1249 to 5a01170 from dotnet/fsharp. Notable features:
- lowered allocations for large strings and char arrays (notably source file texts)
- improved support for byreflike 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# inref parameters
- preview-level functionality for #r "nuget" in scripts
33.0.1
33.0.0
Integrate dotnet/fsharp from 48f932c to 0859851. 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
Packages can be found at Nuget.
32.0.0
31.0.0
31.0.0
- Integrate dotnet/fsharp from 5a8f454 to 05c558a
- Notable changes include:
- Removal of the
Microsoft.FSharp.Compiler.SourceCodeServices
namespace - A new API for determining if an identifier needs to be quoted is available:
FSharp.Compiler.LexHelp.Keywords.DoesIdentifierNeedQuotation
- Enhancements to the correctness of PDBs
- Better string formatting of records and values
- More stack overflow fixes in the compiler
- Inline IL parsing error handling
LeafExpressionConverter
handles struct tuplesFSharpChecker
now can parse a file without caching:ParseFileNoCache
- Removal of the