Skip to content

[repo-assist] docs: document known Debug-mode F# compiler bug affecting taskSeq (#473) - #481

Draft
github-actions[bot] wants to merge 1 commit into
mainfrom
repo-assist/docs-known-issues-debug-compiler-bug-473-7df2e732fdd53205
Draft

github-actions[bot] wants to merge 1 commit into
mainfrom
repo-assist/docs-known-issues-debug-compiler-bug-473-7df2e732fdd53205

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

🤖 This PR was created automatically by Repo Assist, an AI assistant. A human maintainer should review before merging.

What

Adds a Known issues section to README.md documenting an upstream F# compiler regression discovered while investigating #473: Debug builds on recent .NET SDKs (10.0.400+ / F# 10+) can silently truncate a taskSeq { } sequence that do!/awaits between yields. MoveNextAsync simply returns false after the first await — no exception, no warning.

Root cause

This is not a bug in FSharp.Control.TaskSeq:

  • It only reproduces in Debug (-c Debug) — Release (-c Release / -p:Optimize=true) always works correctly.
  • It is already tracked upstream as dotnet/fsharp#20466 ("Incorrect state machine compilation in debug"), filed using this repo as the repro case.
  • A fix is already in progress at dotnet/fsharp#20469, which matches how TaskSeqBuilder.fs's Bind/WhileAsync/For compose ResumableCode values.

Since this can't be fixed in library source (it's a compiler-lowering issue), documenting it clearly helps users hitting it (like the reporter of #473, whose tests silently passed on only the first item because dotnet test defaults to Debug) find a workaround quickly.

Change

  • README.md: new "Known issues" section with a short description, links to the upstream issue/fix PR, and the workaround (build/test in Release).
  • release-notes.txt: added an Unreleased bullet per repo convention.

Test Status

Documentation-only change; no source code modified. dotnet fantomas . --check is not applicable (no .fs/.fsx files touched). No build or test run required per repo guidelines for docs-only changes.

Relates to #473 (does not close it, since the root cause is external to this library).

Generated by 🌈 Repo Assist, see workflow run. Learn more.
Comment /repo-assist to run again

Add this agentic workflow to your repo

To install this agentic workflow, run

gh aw add githubnext/agentics/workflows/repo-assist.md@4bc8419fad05e6b032741cbfd189986700bcf71c

…taskSeq (#473)

Documents the upstream F# compiler regression (dotnet/fsharp#20466, fix
in progress at dotnet/fsharp#20469) that can silently truncate a
taskSeq { } sequence when awaits occur between yields, but only when
the consuming project is built in Debug configuration. Not a bug in
this library; Release builds are unaffected.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants