Goals and Core Model

Goals

  • Use mutable value semantics (MVS): values are logically independent, and each value can be mutated.
  • Avoid tracing garbage collection.
  • Avoid manual memory management in user code.
  • Keep copies explicit at the assignment/operator level with predictable eager-copy behavior.
  • Keep memory behavior deterministic.

Core Model

  • Mutable Value Semantics - value semantics, no visible aliasing, no identity, but values are locally mutable.
  • No garbage collector or manual memory management - deterministic ownership and drop in generated code.
  • Second-class references - references may only be created in function and block signatures and may not outlive the function/block invocation.
  • Keep ownership costs predictable - borrows and moves avoid extra copy work.

No-Cycle Constraint

The language disallows ownership cycles, and those cycles should be impossible to create within MVS.

  • Composite ownership graphs must be acyclic.
  • Strong back-references that would create cycles are invalid.

Because cycles are disallowed, ownership-based drop remains sufficient for reclamation.