Calcit 编程语言
用于交互和实时应用程序的打入功能语言. 由Rust所建并编译为JavaScript ES模块.
- 内容 https://calcit-lang.org/ (中文(简体) )
- API 文档 https://apis.calcit-lang.org/ (中文(简体) )
- 指南 https://guide.calcit-lang.org/ (中文(简体) )
浏览示例 或还 尝试在线 WASM 版本。 。 。 .
核心设计:
- 口译员在Rust上运行,与Rust FFI相通
- 持久性数据结构
- 基于缩进的 Cirru 语法, 友好到纯文本编辑
- 代码数据宏和功能样式
- 名义结构/元素、特征、方法、选择/结果和静态分析
- 编译到 ES 模块中的 JavaScript, JavaScript Interop
- 热密码互换友好
当前方向 :
- {\fn方正黑体简体\fs18\b1\bord1\shad1\3cH2F2F2F}卡尔西特 卡尔西特 卡尔西特
calcit.cirru是条形源快照;已退休compact.cirru获得移徙指导- CLI - 第一项发展与
calcit运行时间和独立发布caps软件包管理器,用于在终端工作流程中与 AI 代理良好合作 - 改进CI、Docs查询、模块管理和增量更新的CLI编辑和验证
- 一致支持实时网络应用:打入WebSocket消息,确定状态更新,diff/patch同步,确认,再同步
仓库边界
Calcit 保留语言语义学,运行时行为,后端降低 calcit CLI/代理接口,以及
已在此仓库中版本语言文档 。 具有独立依赖性和排放的产品
cadence被单独保存或跟踪取出:
| 模块 | 地位和所有权 |
|---|---|
calcit-bindgen | ; rust/Calcit/TypeScript/WIT生成; 明显相容性 diff {{} {} stale check} Struct record} { Enum{} ;0.1.7 → 组件 接口 IR v4. async export/import → WASI HTTP客户端 → 组件 → Cirru EDN →/结果的默认拒绝 Wasmtime主机; → 打开前 → /结果与稳定业务退出码, 货物 → 检查 → 资源 → HTTP 服务 → 里程碑 → 接口 IR export/schema/ conformation; + 生成器 → 544号 追踪。 |
calcit-native-ffi | 独立生产共享本地模块的ABI/帮助箱;在其中跟踪犬类ABI的所有权 卡尔西特-内生-ffi# 7。 。 。 . |
caps | 独立生产包管理器作为 calcit-caps 板条箱; 完成的核心切换在 555号。 。 。 . |
见 549号 为双语储存库边界路线图. Calcit没有近期的LSP计划,因此分析和代理CLI能力仍留在这个存储库并发布 而不是被拆分给假设的消费者.
安装 
用 Rust 构建和安装 :
# get Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# install the independently versioned user-facing tools
cargo install calcit --bin calcit
cargo install calcit-caps
已安装的二进制 :
calcit,运行时间和JS编译器caps,用于下载在deps.cirru
从首次包含该资产的版本起,Ubuntu 22.04 x86 64 的低资源机器可下载 发布 中的 calcit-ubuntu22.04-x86_64-no-wasm, I) 妇女:。源码构建可用 cargo build --release --no-default-features --bin calcit WASM/WASI 联合来文。
在从源头开发 Calcit 核心时, 在本地安装其运行时间, 并自发布后安装盖:
cargo install --path . --bin calcit
cargo install calcit-caps
对于新的 GitHub 动作工作流程, 使用 设置- calcit@v1。
安装在 deps.cirru,并创建
轻量级 cr -> calcit 现有工作流程命令的兼容链接 。 对于前名卡尔西特发布它
倒计时 cr 并揭露等同物 calcit 命令。 本地Calcit释放不再包括盖;迁移
本地脚本直接取而代之,而不是依赖包装. 现有
设置cr 仍然支持工作流程标记.
快速启动
评价片段 :
calcit eval 'range 100'
calcit eval -- '-> 100 range (map $ \ * % %)'
带着条子运行时间快照跑 calcit.cirru数字 :
calcit calcit.cirru # run once (default)
calcit # reads calcit.cirru from the current directory
calcit -w # watch mode (explicit flag required)
默认 Calcit 读取 :init-fn 财务报告和审定财务报表 :reload-fn 从 calcit.cirru :entries.default。也可以指定函数:
calcit --init-fn='app.main/main!' --reload-fn='app.main/reload!'
您也可以配置 :entries 内 calcit.cirru数字 :
calcit --entry server
JavaScript 代码源
Calcit以一致的语义编译为JavaScript. 在浏览器或节点项目中,JavaScript interop仍然是预期的.
calcit js # compile to js, also picks `calcit.cirru` by default
calcit js --emit-path=out/ # compile to js and save in `out/`
默认情况下, js 代码生成到 js-out/。您需要Vite或节点来运行它,从一个条目文件中:
import { main_$x_, reload_$x_ } from "./js-out/app.main.mjs";
main_$x_(); // which corresponds to `main!` function in calcit
CLI 和代理工作流程
常规修改先读取紧凑代理 契约;复杂操作按需读取完整指南。不要把 calcit.cirru 抓图 QQ。
常见命令 :
calcit docs agents --contract # read the compact mutation contract first
calcit query search 'foo' # locate code by symbol or string
calcit edit ... # structured edits for defs, imports, config, modules
calcit js # compile once
calcit js -w # watch mode
caps # install/update dependencies from deps.cirru
Calcit编辑器不再是日常发展的推荐路径. 如果您还需要旧编辑工作流程,请看 Calcit 编辑器。 。 。 .
相关实例和工作流程:
- 最小曲线
- Respo Calcit 工作流程
- 设置- 计算 用于新的 GitHub 动作工作流程
模块
deps.cirru 声明需要下载的依赖关系,这与 GitHub 上的寄存器相对应。 指定分支或标签 :
{} (:calcit-version |0.9.11)
:dependencies $ {} (|calcit-lang/memof |0.0.11) (|calcit-lang/lilac |main)
:dev-dependencies $ {} (|calcit-lang/calcit-test |0.1.0)
运行 caps 解决递归依赖图并安装。 不可改变的修订被储存在
~/.config/calcit/module-caches/,而当前项目在下方接收链接 .calcit/modules/。 。 。 .
因此,不同的项目可以使用不同的修改而无需切换共享的取出. 现有
项目模块链接是包式模块路径唯一的运行时源; 明确相对和
绝对路径保留其正常的直接分辨率.
已公布的SemVer标签为首选. 部门参考文献仍然用于发展,但 caps 警告时
坚定的承诺。 当一个图要求一个寄存器的 SemVer 标签时, 请求的最高值
选择并报告版本.
根项目同时安装 :dependencies 财务报告和审定财务报表 :dev-dependencies。只遵循递归分辨率
:dependencies,因此依赖声明的测试和维护模块不会泄露给消费者.
使用 caps add --dev <org/repo>@<ref> 财务报告和审定财务报表 caps remove --dev <org/repo> 管理开发组.
:calcit-version 帮助检查版本并提供提示 中情局。 。 。 .
要装入模块,请使用 :modules 配置和运行时快照文件 calcit.cirru数字 :
:entries $ {}
:default $ {}
:modules $ [] |memof/calcit.cirru |lilac/
路径定义于 :modules 从快照目录中加载 .calcit/modules/,比如说.
.calcit/modules/memof/calcit.cirru运行 caps 实现或刷新项目本地视图.
模块以 / 自动后缀为 calcit.cirru。只包含已退休模块 compact.cirru 根据移民指南被拒绝.
检查并核实已解决的图表:
caps tree
caps why calcit-lang/memof
caps status
caps verify
caps verify --toolchain # after yarn install, for JS projects
发展
本地验证命令 :
# run tests in Rust
cargo run --bin calcit -- calcit/test.cirru
# run tests in Node.js
cargo run --bin calcit -- calcit/test.cirru js && yarn try-js
# run snippet
cargo run --bin calcit -- eval 'range 100'
# internal compiler/WASM validation when working on this repository
cargo run --bin calcit -- calcit/test.cirru ir
yarn try-wasm
对于寄存器的开发,通常的验证流程是:
cargo fmt
cargo clippy -- -D warnings
yarn compile
cargo test
yarn check-all
其他工具:
一些资源:
- 开发日志 https://github.com/calcit-lang/calcit/讨论
- 视频记录 https://space.bilibili.com/14227306/channel/seriesdetail?sid=281171 (英语)
许可证
麻省理工学院