Skip to content

Source status: no status is stated in the source document, so none is assigned here. Do not treat this page as a finalized specification. The normative rules are in the Technical Specification.

Concurrency System

The language will provide safe, explicit mechanisms for concurrent and asynchronous execution.

1. Concurrency Rules

  • Parallel execution must be explicitly declared.
  • Shared mutable state must have controlled access.
  • Concurrent operations must declare their effects.
  • Data races must be prevented through compiler-enforced rules.
  • Resource ownership must remain unambiguous.

2. Asynchronous Operations

  • Async functions must explicitly declare their asynchronous behavior.
  • Awaited operations must have defined success and failure outcomes.
  • Unfinished tasks must not be silently abandoned.
  • Cancellation must be explicitly handled.
  • Task lifetimes must be managed.

3. Shared State

  • Shared mutable data requires explicit synchronization.
  • Locks must have defined ownership and release behavior.
  • Atomic operations must be explicitly identified.
  • Deadlock-prone operations should be detected where possible.

4. Determinism

Where practical, concurrent execution should produce predictable results.

The language should provide mechanisms for controlling execution order when correctness depends on it.

Design Goal

AI agents should not be able to accidentally introduce unsafe concurrency through ambiguous execution, uncontrolled shared state, or forgotten asynchronous operations.


Source and authority

This page migrates CONCURRENCY.md in full. It is an explanatory / implementation document, not the normative specification. Where it simplifies a rule, the Technical Specification governs. The original file is preserved in source-original/LANG/.