Skip to content

Upgrade to .NET 10 and F# 10#36

Merged
itsdanieldk merged 3 commits intomainfrom
feature/dotnet10-upgrade
Dec 10, 2025
Merged

Upgrade to .NET 10 and F# 10#36
itsdanieldk merged 3 commits intomainfrom
feature/dotnet10-upgrade

Conversation

@itsdanieldk
Copy link
Member

This pull request updates the project to target .NET 10 and FSharp.Core 10 across all projects, enables F# language preview features, and introduces several improvements and fixes to the computation expression (CE) builder and internal fiber implementation. There are also updates to test dependencies, launch settings, and editor configuration.

.NET and F# Core version upgrades:

Computation Expression (CE) and Fiber improvements:

  • Added ReturnFromFinal and YieldFromFinal members to the FIOBuilder, clarifying the intent for final operations in computation expressions [1] [2].
  • Changed Yield implementation to use FIO.Succeed directly for improved clarity and consistency.
  • Simplified YieldFrom to return the effect directly.
  • Fixed logic in InternalFiber.Complete to avoid double-completion and handle already completed tasks more robustly.

Test and tooling updates:

  • Updated test dependencies to the latest versions (e.g., Microsoft.NET.Test.Sdk, FsCheck, xunit.runner.visualstudio) for improved reliability and compatibility.
  • Updated the benchmark project’s launch settings with new command-line arguments for broader benchmark coverage.

Editor and CI configuration:

  • Added a VSCode setting to disable inlay hints for F# files, improving editor experience.
  • Updated GitHub Actions workflow to use .NET 10.

These changes collectively modernize the codebase, improve developer experience, and enhance the reliability and maintainability of the computation expression infrastructure.

Copilot AI review requested due to automatic review settings December 10, 2025 15:12
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR upgrades the project from .NET 9 to .NET 10 and F# 9 to F# 10, while introducing several improvements to the computation expression builder and fiber implementation.

  • Updated all projects to target .NET 10 and FSharp.Core 10.0.101 with preview language features enabled
  • Enhanced the FIOBuilder with new ReturnFromFinal and YieldFromFinal members for clearer final operation semantics
  • Fixed potential double-completion issue in InternalFiber.Complete method
  • Updated test dependencies and benchmark configurations

Reviewed changes

Copilot reviewed 13 out of 14 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/FSharp.FIO.Tests/FSharp.FIO.Tests.fsproj Updated target framework, added preview language version, and upgraded test dependencies
src/FSharp.FIO/FSharp.FIO.fsproj Updated target framework, added preview language version, and updated package paths
src/FSharp.FIO/DSL/Core.fs Fixed double-completion logic in InternalFiber
src/FSharp.FIO/DSL/CE.fs Added ReturnFromFinal/YieldFromFinal members and simplified Yield/YieldFrom implementations
src/FSharp.FIO.Lib/FSharp.FIO.Lib.fsproj Updated target framework and FSharp.Core version
src/FSharp.FIO.App/FSharp.FIO.App.fsproj Updated target framework and FSharp.Core version
examples/FSharp.FIO.Examples/FSharp.FIO.Examples.fsproj Updated target framework and FSharp.Core version
examples/FSharp.FIO.Examples.App/FSharp.FIO.Examples.App.fsproj Updated target framework and FSharp.Core version
benchmarks/FSharp.FIO.Benchmarks/Properties/launchSettings.json Updated benchmark command-line arguments for broader coverage
benchmarks/FSharp.FIO.Benchmarks/FSharp.FIO.Benchmarks.fsproj Updated target framework and FSharp.Core version
benchmarks/FSharp.FIO.Benchmarks.Plots/FSharp.FIO.Benchmarks.Plots.fsproj Updated target framework and FSharp.Core version
.vscode/settings.json Added setting to disable F# inlay hints
.github/workflows/test.yml Updated CI workflow to use .NET 10

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@itsdanieldk itsdanieldk merged commit be4378d into main Dec 10, 2025
1 check passed
@itsdanieldk itsdanieldk deleted the feature/dotnet10-upgrade branch December 10, 2025 15:16
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.

2 participants