Skip to content

Conversation

@TheAngryByrd
Copy link
Owner

@TheAngryByrd TheAngryByrd commented Oct 19, 2025

Proposed Changes

Changes how files reference each other so make the graph for graph based type-checking

Made each file have it's own namespace rather than share the same one, added AutoOpens file to preserve open IcedTasks getting you access to all the CEs

Before:

image ---

After:

image

Unfortunately the time savings isn't much. ~1 second on the src project.

Types of changes

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

  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Oh yeah moving everything into their own namespace is a binary breaking change, but anything directly compiling won't notice.

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...

@TheAngryByrd TheAngryByrd force-pushed the fix-graph-based-checking branch 2 times, most recently from ff15023 to ada8b58 Compare October 19, 2025 17:34
@TheAngryByrd TheAngryByrd marked this pull request as ready for review October 19, 2025 17:42
@TheAngryByrd TheAngryByrd requested a review from Copilot October 19, 2025 17:42
Copy link

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

Refactors the codebase to give each file its own distinct namespace and introduces an AutoOpens module to preserve prior ease of use while aiming to reduce graph-based type-checking compile time.

  • Introduces many new per-file namespaces (e.g., TaskBase, AsyncEx, ColdTasks, etc.).
  • Adds AutoOpens.fs with assembly-level AutoOpen attributes to re-expose prior aggregated surface.
  • Adjusts accessibility (e.g., Async type) and removes a previously defined nullable alias (ExceptionNull).

Reviewed Changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
ValueTaskUnit.fs Renames namespace to ValueTasksUnit and adds required opens for refactored graph.
ValueTask.fs Splits previous combined content into a namespaced ValueTasks and adds opens.
TaskUnit.fs Renames namespace to TasksUnit and adds supporting opens.
TaskLike.fs Moves TaskLike into its own namespace.
TaskBuilderBase.fs Introduces TaskBase namespace and related opens.
Task.fs Adds new opens referencing TaskLike and TaskBase.
PoolingValueTask.fs Adds a second namespace and supporting opens for pooling value tasks.
ParallelAsync.fs Introduces ParallelAsync namespace and adds dependency on AsyncEx.
Nullness.fs Moves to Nullness namespace and removes ExceptionNull type; adds explanatory comment.
IcedTasks.fsproj Registers new AutoOpens.fs in project compilation list.
ColdTask.fs Adds ColdTasks namespace and additional opens; modifies builder extension line.
CancellableValueTask.fs Adds CancellableValueTasks namespace and required opens.
CancellableTaskBuilderBase.fs Adds CancellableTaskBase namespace and supporting opens.
CancellableTask.fs Adds CancellableTasks namespace plus opens.
CancellablePoolingValueTask.fs Adds CancellablePoolingValueTasks namespace and opens.
AutoOpens.fs Introduces assembly-level AutoOpen attributes for multiple namespaces/modules.
AsyncEx.fs Moves AsyncEx into its own namespace and changes Async type accessibility.
.config/dotnet-tools.json Updates Fantomas tool version.

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@TheAngryByrd TheAngryByrd force-pushed the fix-graph-based-checking branch from ada8b58 to bf45e0e Compare October 19, 2025 17:48
@TheAngryByrd TheAngryByrd merged commit b899a67 into master Oct 19, 2025
7 checks passed
@TheAngryByrd TheAngryByrd deleted the fix-graph-based-checking branch October 19, 2025 20:08
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