Skip to content

Free ForAll and Self Modifying Code: ForAll#3043

Open
gregli-msft wants to merge 6 commits intogregli/free-self-basefrom
gregli/free-self-forall
Open

Free ForAll and Self Modifying Code: ForAll#3043
gregli-msft wants to merge 6 commits intogregli/free-self-basefrom
gregli/free-self-forall

Conversation

@gregli-msft
Copy link
Contributor

@gregli-msft gregli-msft commented Mar 20, 2026

This PR enables Set, Clear, and ClearCollect to be used in ForAll. This has been a long-time customer request that we told PPCC 2024 audiences that we would do.

These functions have been disallowed until now with the hope that we may someday parallelize ForAll. However, this was attempted in Canvas and customers had found other ways to take a dependency on the order of evaluation. We are officially giving up on this notion - ForAll will from this point forward always be sequential (as it always has been).

We will also introduce a new Map function that does not support side effects in the lambda and can be parallelized.

This is not a breaking change. This previously generated an error, but no longer.

@gregli-msft gregli-msft changed the title Gregli/free self forall Free ForAll and Self Modifying Code: ForAll Mar 20, 2026
@gregli-msft gregli-msft marked this pull request as ready for review March 20, 2026 05:26
@gregli-msft gregli-msft requested a review from a team as a code owner March 20, 2026 05:26
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.

1 participant