Chiba Logo CHIBA v0.6.13
CHIBA blog RSS feed
CHIBA / DOCS / LEVEL-1 SPEC

普通值默认是 Managed Value

这里集中展示 CHIBA level-1 specification,覆盖 core language、control flow、memory、patterns、IR lowering 与 package system 等实现边界。

The docs surface keeps CHIBA level-1 specification pages browsable inside the site, with direct paths into language, control flow, memory, pattern, and lowering rules.

普通值默认是 Managed Value

语法

该条目描述默认语义,不新增独立语法。

语义

普通 data、tuple、record、closure env 默认按 managed value 处理,不要求用户为日常值显式标注 unique 或 reference 类修饰。

Array[T] 也按普通 managed value 处理。level-1 中 Array[T] 没有 safe internal mutability;它不是 mutable buffer capability。

这里的 managed 不是 GC 同义词,而是“受 arena / escape / promotion / RC 规则统一管理”的值语义。

低级 capability 类型如 Ptr[T]Ref[T]UnsafeRef[T] 不属于这条默认 managed value 路线。

普通 managed value 的更新语义总是产生新值。record update {base | field: value} 和 array update helper 都应被理解为 whole-value update;lowering 可在 uniqueness / escape 允许时做原地复用优化,但 surface 语义不是可变容器写入。

Usage

data User = {
	User(name: String, age: i32)
}

let u = User("a", 10)

注释:u 是普通 managed value;它默认走 level-1 的 managed 内存语义,而不是要求用户显式选择底层 capability 模式。

let xs: Array[i64] = [1, 2, 3]
// xs[0] := 9  // error: Array[T] is not internally mutable

注释:Array[T] 是普通值;元素更新需要构造新 array value,或通过 Array[Ref[T]] 存储显式可变 cell。

边界

当程序进入 FFI、Metal、ABI 或共享可变能力边界时,应显式改用 capability 类型,而不是依赖 managed value 自动退化。