Skip to content

FSharp.Compiler.Service 43.12.201 #850

Merged
knocte merged 2 commits into
fsprojects:masterfrom
Numpsy:fcs4312
Jul 14, 2026
Merged

FSharp.Compiler.Service 43.12.201 #850
knocte merged 2 commits into
fsprojects:masterfrom
Numpsy:fcs4312

Conversation

@Numpsy

@Numpsy Numpsy commented Mar 15, 2026

Copy link
Copy Markdown
Contributor

This contains the whole of #770, plus an extra commit to update to FCS 43.12.201 (I'm not clear what's going on with the version numbers here)

Needs a review to see if the 'ExpressionUtilities.LetOrUse' helper is the right approach.

| SynExpr.LetOrUse(_, _, bindings, body, _, _) ->
let instanceNames = extraFromBindings bindings List.Empty |> Set.ofList
processLetBinding instanceNames body returnEmptyArray
| SynExpr.LetOrUse letOrUse when not letOrUse.IsBang ->

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one is using when because when I tried the active pattern I got error FS3569: The member or function 'processLetBinding' has the 'TailCallAttribute' attribute, but is not being used in a tail recursive way.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's what the TailCall attrib is for: so that the compiler makes sure you're using a tail call recursive algorithm. If you mark a func as TailCall without changing the algorithm to be a tail-call-recursive, compilation will fail.

@Numpsy

Numpsy commented Mar 15, 2026

Copy link
Copy Markdown
Contributor Author

Looks like the performance is still bad without #845

@knocte

knocte commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

Ok, this version of FCS should contain the fix we need (dotnet/fsharp@89d7886), can you please include a commit to remove this workaround: 755f4d1 ?

@Numpsy
Numpsy force-pushed the fcs4312 branch 3 times, most recently from 479a535 to e6b1813 Compare June 29, 2026 19:13
@Numpsy Numpsy changed the title [WIP] FSharp.Compiler.Service 43.12.201 FSharp.Compiler.Service 43.12.201 Jun 29, 2026
@Numpsy

Numpsy commented Jun 29, 2026

Copy link
Copy Markdown
Contributor Author

Ok, this version of FCS should contain the fix we need (dotnet/fsharp@89d7886), can you please include a commit to remove this workaround: 755f4d1 ?

Done

@Numpsy
Numpsy marked this pull request as ready for review June 29, 2026 20:01
@Numpsy
Numpsy force-pushed the fcs4312 branch 2 times, most recently from 0f223d3 to ca139ca Compare July 10, 2026 20:38

@webwarrior-ws webwarrior-ws left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Otherwise LGTM.

Comment thread src/FSharpLint.Core/Framework/Utilities.fs Outdated
Numpsy added 2 commits July 14, 2026 17:17
Most of the changes are down to the LetOrUse changes in:
dotnet/fsharp#19090

The ExpressionUtilities.LetOrUse active pattern was taken
from an implementation detail of that change as well as it
avoids using when clauses in lots of places.
This reverts commit 755f4d1
because the workaround is not needed anymore, now that we use
a new enough FCS dependency.
@knocte
knocte merged commit 48a8a3f into fsprojects:master Jul 14, 2026
8 checks passed
@Numpsy
Numpsy deleted the fcs4312 branch July 14, 2026 20:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants