所有权系统
Vix v0.3.0 引入了轻量级 Owner 系统:编译期的所有权和借用检查,提供 Rust 风格的内存安全,但模型更简单。
设计目标
- 无需垃圾回收的内存安全
- 使用后移动检测(use-after-move)
- 悬垂引用检测(dangling reference)
- 编译期检查,零运行时开销
- 无需显式生命周期标注
编译阶段
所有权检查在类型检查之后运行:
解析 → 语义分析 → 类型检查 → 所有权检查 → 代码生成
核心概念
| 概念 | 说明 |
|---|---|
| 所有权 | 每个值有唯一所有者 |
| 移动 | 非 Copy 类型赋值时转移所有权 |
| 借用 | ref 创建不可变引用,mut ref 创建可变引用 |
| 复制 | 小型/简单类型自动推断为 Copy |
与 Rust 的区别
| 方面 | Vix | Rust |
|---|---|---|
| 生命周期 | 语句作用域 | 'a 泛型生命周期 |
| Copy 推断 | 启发式自动推断 | 显式 trait |
| 借用检查 | 语句级临时作用域 | NLL |
| Drop | 不支持 | 支持 |
| Pin/Unpin | 不支持 | 支持 |
