CK 在哪里运行
选择运行或分享 CK 代码的方式。
“输出方式”就是 CK 最后把代码变成什么。刚开始学习时,直接用 Native 方式运行程序即可;需要把计算交给现有的 C 程序或 WebAssembly 环境时,再选择其他方式。
已有 Node.js、Python 或 Rust 项目?接入现有项目会说明怎样调用导出的 CK 函数。
按你要做的事来选#
| 你想做什么 | 输出方式 | 命令示例 |
|---|---|---|
| 边写边运行、看到计算结果 | Native 运行 | ckc run hello.ck |
| 生成一个可单独启动的程序 | Native 可执行文件 | ckc build app.ck --kind executable --out app |
| 让 C 程序调用 CK 计算 | C 源码,或 Native 库 | ckc emit-c kernel.ck --out kernel.c |
| 让支持 WebAssembly 的环境调用计算 | WebAssembly | ckc emit-wasm kernel.ck --out kernel.wasm |
Native:先从这里开始#
Native 是可在当前操作系统上运行的程序或库。完成快速开始后,ckc run 会编译并运行 main;ckc build --kind executable 会留下一个可以稍后单独启动的程序。官方发行版包含所需的本机运行组件,使用这些命令不需要另外安装编译器或链接器。
ckc run hello.ck
ckc build hello.ck --kind executable --out hello
生成的独立程序在 macOS/Linux 上通常可用 ./hello 启动,在 Windows PowerShell 上用 .\hello.exe 启动。
交给其他程序使用#
ckc emit-c 会生成 C 源码和配套头文件。它只负责生成文件;之后由你现有的 C 编译器来编译和连接它。
ckc emit-c kernel.ck --out kernel.c
WebAssembly 是一种供其他环境载入的小型程序格式。环境负责准备内存并调用导出的 CK 函数;详细边界见进阶:内存与安全。
ckc emit-wat kernel.ck --out kernel.wat
ckc emit-wasm kernel.ck --out kernel.wasm
进阶:库、对象文件与运行限制#
CK 还可以输出动态库、静态库和对象文件。不同格式对可调用函数、运行时检查和目标平台有不同要求。export fn 用来声明给宿主程序调用的函数;发行版构建 Native 库时还会生成 C 头文件。
WebAssembly 输出目前不支持 checked 溢出或切片边界检查,库导出也不能使用 Native 专用的屏幕打印函数。要了解准确接口,请阅读 Native ABI、C ABI和 WebAssembly ABI。
链接到仓库的完整参考文档以 main 分支为准,可能包含尚未进入最新下载版本的功能。