Skip to content

功能清单

分级规则

  • P0:没有它,语言无法作为真实原型闭环
  • P1:能显著提高可用性和工程落地能力
  • P2:高级能力和生态扩展,不应阻塞前面阶段

一、语言核心

功能级别说明
模块与包系统P0文件到模块映射,支持 use 与包边界
基础类型与字面量P0数值、字符串、布尔、字节、数组、切片
let / varP0默认不可变,显式可变
解构绑定P0元组和数据解构的基础能力
struct / enumP0产品类型与代数数据类型
表达式导向 if / matchP0统一分支求值模型
函数、方法、命名参数P0保证日常 API 友好度
一等函数与高阶函数P0函数可作为参数、返回值、字段和值
基于元组的多返回值P0不单独发明多返回语法机制
闭包与捕获P0支持捕获外部环境与 move 闭包
默认参数P1改善配置密集 API
data structP1自动派生数据承载类型常见能力
泛型函数和类型P0参数化抽象的基础
trait / implP0约束、复用和静态分发
trait objectP1受控动态分发
模式守卫P1增强匹配表达力
扩展方法P1改善领域 API 组织
实例方法引用语法糖P1绑定 receiver 后直接形成函数值
用户自定义属性P2仅在工具链模型稳定后引入
宏系统P2避免 P0 复杂度爆炸
:= 便捷声明P2当前不建议进入核心语言

二、类型系统与安全

功能级别说明
Option[T] / Result[T, E]P0错误和缺失值的统一载体
本地类型推断P0降低样板但不牺牲可读性
公共 API 显式返回类型P0文档和审查友好
穷尽性检查P0match 安全性基础
流敏感类型收窄P1Kotlin/TypeScript 风格 smart cast
类型谓词P2用户自定义收窄能力
satisfies 操作符P1校验表达式满足目标类型且保留具体推断
Never 底类型P1穷尽性和发散控制流分析
自动 trait 派生P1EqHashDebug
unsafe 边界P0FFI、原始指针、手工布局
基础效果标记 async / ffiP0明确危险与运行时边界
并发能力 trait Send / SyncP0数据竞争模型基础
更完整效果系统P2ioallocblocking
受控动态分发规则P1object safety 与诊断

三、内存与运行时

功能级别说明
默认值语义P0压低别名复杂度
移动后使用检查P0所有权安全基础
自动借用P0把复杂留给编译器
非逃逸值栈分配P0零成本基础能力
逃逸分析P1降低堆分配与提升诊断
区域分配P1为短生命周期对象优化
析构与 drop 语义P0资源释放可预测
deferP0清理逻辑更直观
Shared / WeakP1图结构与共享只读模型
Mutex / RwLock / AtomP0并发共享容器
可选 arena / pool 库P1性能调优场景
可选托管内存域P2非核心运行时能力

四、并发与异步

功能级别说明
async fn / awaitP0基础异步抽象
spawnP0任务创建
selectP0多路等待
取消上下文与原因P1借鉴 Go context 的工程模型
结构化取消P1避免异步泄漏
async streamP1流式 I/O
actor 标准库P1高层并发隔离
tracing hooksP1可观测性接入
executor 抽象P0运行时不绑死
分布式 actorP2高级能力,不应前置

五、互操作与 ABI

功能级别说明
C ABI 导入导出P0最基础混编能力
原始指针与布局控制P0FFI 必需
头文件生成P1对外暴露 Qlang API
C 头文件绑定生成P1导入成熟 C 库
静态库 / 动态库链接P0工程落地基础
Rust 通过 C ABI 互操作P1稳定而现实
C++ shim 工作流P0避免一开始啃最硬问题
直接 C++ 绑定生成P2仅覆盖受控子集
ABI 兼容诊断P1减少边界事故
FFI 安全包装生成P1提升边界可用性

六、编译器与后端

功能级别说明
lexer / parserP0前端入口
AST / HIR / MIRP0清晰分层
名称解析P0作用域和导入处理
类型检查P0主语义阶段
所有权与借用检查P0安全基础
LLVM IR 生成P0代码生成核心
对象文件与链接驱动P0产物闭环
单态化P1泛型代码生成
基础优化管线P1常见性能收益
增量编译P1IDE 和中大型项目所需
交叉编译目标模型P1多平台计划
非 LLVM 后端P2后续扩展方向

七、诊断与开发体验

功能级别说明
精准 spanP0所有工具的共同前提
错误码P0稳定诊断接口
fix-it 建议P1真正现代化的报错体验
语义级 note / helpP0降低学习成本
彩色终端输出P0可读性基础
JSON 诊断输出P1IDE、CI 和脚本集成
编译时间分析P1性能调优工具

八、工具链

功能级别说明
ql build / run / check / testP0最小开发闭环
ql fmtP0风格统一
ql docP1文档系统闭环
ql new / initP1项目初始化
ql benchP1性能回归
ql ffiP1生成桥接代码
工作区支持P0多包工程必需
项目引用图P1类似 project references 的依赖编译图
.qi 接口产物P1公共 API 元数据输出
profile 与优化等级P0debug/release/testing
lockfileP1可复现构建
registry / publishP2生态扩展

九、LSP 与编辑器支持

功能级别说明
diagnosticsP0编辑器即时报错
hoverP0类型与文档提示
go to definitionP0基础导航
find referencesP0重构支撑
completionP0真实语义补全
renameP1跨文件可靠重命名
semantic tokensP1高质量高亮
code actionsP1自动导入、补齐 match 分支
inlay hintsP1推断可视化
call hierarchyP2进阶导航

十、标准库

功能级别说明
coreP0基础类型、迭代器、结果、比较
allocP0容器与分配接口
ioP0文件、流、错误
netP1套接字与网络基础
asyncP1Future、task、channel
ffiP0边界包装工具
testP0测试断言与 harness
timeP1时间与计时
processP1进程与环境
cryptoP2需谨慎设计与审计

十一、质量与工程化

功能级别说明
parser snapshot testsP0语法稳定性
UI diagnostics testsP0报错回归
codegen golden testsP0产物一致性
FFI 集成测试P0混编可信度
LSP 场景测试P1编辑器体验回归
formatter stability testsP0格式化器可信度
benchmark CIP1性能趋势观察
多平台 CIP1Windows/Linux/macOS

十二、明确延后

以下能力目前不应进入 P0:

  • 宏系统
  • 反射
  • 直接全量 C++ 互操作
  • 包注册中心
  • 分布式 actor
  • 非 LLVM 后端
  • 复杂效果系统

延后不是放弃,而是保证主干先站稳。

Qlang research repository