kelyra
KELYRA / 系统编程语言

贴近硬件。
让复杂性有边界。

Kelyra 致力于成为一门默认安全、性能可预测的系统编程语言,将 CPU 原生程序、GPU Shader 与 C 生态连接起来,让人和 AI 都能理解、检查和维护代码。

早期设计与原型阶段 · 以下能力为设计目标

01 / 设计理念

控制成本,也明确责任。

系统编程需要对内存、布局、并行和硬件能力保持控制。Kelyra 希望将这些控制与清晰的安全边界结合,让程序的行为可以解释,修改的影响可以审查。

安全作为基础

设计明确的所有权、借用与资源释放规则。普通代码受到安全约束,裸指针、外部接口和底层操作通过显式边界表达。

性能可以解释

让分配、复制、布局和并发的成本可见。不强制依赖追踪式垃圾回收,以实际程序和基准验证抽象的代价。

规则适合共同维护

追求一致的语法、明确的接口和可定位的诊断,为人工审查、自动化工具与 AI 辅助开发提供共同依据。

02 / 语言目标

七个方向,一套工具链。

从获取依赖到运行原生程序,从主机内存到 GPU 资源,语言与工具链共同描述程序的输入、能力和约束。

G1 / BUILD

依赖管理与构建

通过统一清单与命令管理依赖、构建、测试和打包。固定依赖版本与工具链输入,让离线构建和可复现验证成为工作流的一部分。

G2 / PORTABILITY

跨平台与能力检查

以 Windows、Linux、macOS 及多种 CPU 架构为长期方向,明确区分各平台的支持程度。专用硬件能力通过显式声明和检查使用。

G3 / PERFORMANCE

原生性能与成本可见

面向 AOT 原生编译,提供对数据布局、分配器、值传递和向量运算的控制。以吞吐量、延迟、内存和编译耗时共同衡量表现。

G4 / INTEROP

连接 C 与汇编

通过双向 C ABI 复用现有库,并向外部程序提供接口。为汇编、回调和跨语言资源管理明确调用约定、生命周期及错误边界。

G5 / TOOLING

面向人和 AI 的工具

提供机器可读的诊断、源码范围,以及符号、类型和引用查询。让自动化修改有可检查的契约,并以独立测试验证修改结果。

G6 / GRAPHICS

图形学与 Shader

目标是用 Kelyra 编写顶点、片元和计算 Shader。CPU 与 GPU 共享兼容的模块和类型表达,同时明确执行域、数据布局与同步规则。

G7 / PARALLELISM

多线程与并行

围绕系统线程、作用域任务和数据并行建立一致的资源规则。明确共享数据、取消和任务结束时的责任,检查跨线程访问的合法性。

03 / 应用愿景

用完整程序检验语言。

Kelyra 的首版目标是形成可运行的端到端路径,让各项能力在同一个程序中协作,并接受正确性与性能验证。

从资源加载,到并行计算,再到画面。

一个代表性程序可以调用 C 库解码资源,使用 CPU 任务并行准备数据,再通过 Kelyra Shader 完成绘制与计算。主机和 GPU 的接口布局保持一致,任务结束后正确等待并回收资源。

这是一条计划中的验收路径。语言也面向非图形系统程序,覆盖复杂数据结构、资源管理与批量处理。

04 / 当前进展

从基础开始,逐步验证。

项目已建立 CMake 构建基础并接入 LLVM / MLIR,当前最小程序可以创建并输出一个空的 MLIR 模块。语言语法、类型系统和安全模型仍在设计中,尚不能编译 Kelyra 源程序。

下面是设计草案中的阶段规划,不代表已经交付,也不承诺发布时间或完整的平台覆盖。

  1. M0

    语义原型

    验证值与资源规则、模块与错误语义,探索基础 CPU 程序、C 接口及 Shader 子集。

  2. M1

    首版最小闭环

    围绕代表性程序串联七项目标,验证跨平台运行、受限安全模型、图形计算和作用域并行。

  3. M2

    平台与工程扩展

    逐步扩展架构和图形后端,改善增量分析、调试与异步能力。

  4. M3

    稳定化

    在实践基础上形成版本迁移、兼容性策略和成熟的发布流程。