Skip to content

Remove coroutine support - #182

Merged
chklauser merged 1 commit into
mainfrom
agent/remove-coroutines
Jul 24, 2026
Merged

Remove coroutine support#182
chklauser merged 1 commit into
mainfrom
agent/remove-coroutines

Conversation

@chklauser

Copy link
Copy Markdown
Owner

Summary

  • remove the coroutine and yield syntax, AST lowering, newcor opcode, and coroutine VM/runtime contexts
  • replace coroutine-backed native sequence commands with ordinary lazy PValueEnumerable values
  • add the JIT-compatible create_enumerable(getEnumerator) command and migrate repository scripts to it or existing sequence combinators
  • make coroutine and yield available as ordinary identifiers

Compatibility

This intentionally removes the coroutine language/runtime feature. Script code that needs custom lazy enumeration can return:

create_enumerable(() =>
    new enumerator(moveNext, current, dispose)
)

Validation

  • dotnet test --no-restore
  • 1,435 total: 1,432 passed, 3 skipped, 0 failed
  • stale implementation-symbol scan and git diff --check

@chklauser
chklauser marked this pull request as ready for review July 24, 2026 21:17
@chklauser
chklauser merged commit 92dcbef into main Jul 24, 2026
2 checks passed
@chklauser
chklauser deleted the agent/remove-coroutines branch July 24, 2026 21:17
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