Jank 是一个基于 C++ 的原生 Clojure 方言,提供前所未有的无缝互操作。与其他语言不同,Jank 可以处理 C++ 模板、虚函数、异常、重载解析和 RAII,无需样板代码 — 开发者只需包含头文件即可直接编码。
由基于 Clang 的 C++ JIT 编译器驱动,Jank 提供交互式 REPL 驱动的开发。示例展示了直接从 Clojure 语法调用 Boost.Filesystem,具有自动类型转换和自然映射到 Clojure try/catch 的异常处理。
Jank 使用基于 Leiningen 的项目管理和 Cargo 启发的原生构建系统。添加 C/C++ 依赖仅需一行更改。工具支持调试(优化级别 0)和发布(级别 3)配置文件。
对于游戏开发,Jank 提供了函数式不可变数据和 REPL 驱动的工作流,同时允许直接访问 C++ 以用于关键性能路径。ImGui/GLFW 示例展示了零 marshaling 互操作 — 无桥接、注册或回调。Jank 编译为 C++,使用 C++ 类型系统,并可以链接任意 C 或 C++ 库。
FAQ Q: Jank 如何在无需样板代码的情况下实现无缝的 C++ 互操作?
FAQ A: Jank 使用原生理解 C++ 语义的 Clang JIT 编译器 — 模板、虚函数、异常、重载解析和 RAII 都能直接工作。开发者只需包含 C++ 头文件即可调用函数,无需 marshaling、注册或桥接代码。
来源: Hacker News · 由HeadlinesBriefing整理摘要