jank 重塑 C++ 的报错体验:把异常栈帧映射回 Clojure 代码,并上线原生包仓库
来源: jank-lang.org — 2026-09-04
概述
jank 是一个用 C++ 实现的 Clojure 方言,这次更新把重点放在让报错比 JVM 版更有用上。它把未捕获运行时异常的栈回溯从三处调试信息——当前可执行文件、AOT 目标文件(相当于 .class)、LLVM JIT 目标文件——无缝缝合,能跳过 clojure.core 等库内部帧,直接定位到用户自己的 Clojure 调用并标出精确 arity 与源码位置,在 macOS 和 Linux 上稳定工作。每个错误还有专属「错误页」给出常见原因与修复建议。
核心要点
原生世界没有可移植的栈回溯 API,jank 靠 AOT+JIT 调试信息拼接出 Clojure 级帧
回溯会跳过 clojure.core 内部帧,精准指向调用 subs 的用户代码 foo
为每个错误建立专属错误页:解释原因、常见坑与建议修法,纳入 jank 手册
同步上线官方原生包仓库,回馈这一年的 GitHub 赞助与 Clojurists Together
金句
In every way, I aim for jank compiler errors to be more helpful, provide more context, and be more visually appealing than the Clojure JVM counterpart.
👍 0
点赞
👎 0
沉底
返回 Lobsters 首页