Skip to content

Conversation

@TheAngryByrd
Copy link
Owner

Proposed Changes

Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.

Implements Runtime-Async features

Types of changes

What types of changes does your code introduce to IcedTasks?
Put an x in the boxes that apply

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

  • Build and tests pass locally
  • I have added tests that prove my fix is effective or that my feature works (if appropriate)
  • I have added necessary documentation (if appropriate)

Further comments

If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

- Updated benchmark results for SyncCompletionBenchmarks with new timestamps and .NET SDK version.
- Introduced TaskBuilderRuntime in Consts.fs for categorization.
- Added benchmarks for ManyWriteFile using TaskBuilderRuntime in FileWritingBenchmarks.fs.
- Implemented synchronous completion benchmarks for TaskBuilderRuntime in SynchonousCompletionBenchmark.fs.
- Updated project file to target .NET 10.0 only.
…groundTaskBuilderRuntime for background execution support
@TheAngryByrd
Copy link
Owner Author

TheAngryByrd commented Nov 6, 2025

Noticed some strange behavior with Task.Yield with benchmarks

| FSharp_TenBindsAsync_TaskBuilder                                     | AsyncBinds,FSharp,TaskBuilder                                          |  2,035.52 ns |    40.605 ns |   100.366 ns |  0.72 |    0.06 | 0.0039 |     112 B |        0.06 |
| FSharp_TenBindsAsync_TaskBuilderRuntime                              | AsyncBinds,FSharp,TaskBuilder                                          |     55.92 ns |     1.094 ns |     1.703 ns |  0.02 |    0.00 | 0.0198 |     312 B |        0.16 |

It should not be this fast. Made me discover we're probably blocked by dotnet/fsharp#19056

Converting to draft until then

…tFrameworks and cleaning up unnecessary properties
…e target frameworks

- Updated `FileWritingBenchmarks.fs` to raise a NotSupportedException for .NET versions below 10.0.
- Modified `SynchonousCompletionBenchmark.fs` to include conditional compilation for .NET 10.0 or greater, raising exceptions for unsupported versions.
- Adjusted `benchmarks.fsproj` to target multiple frameworks: net10.0, net9.0, and net8.0.
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