Turbo Haskell:让 Haskell 在 JVM 上飞驰

我在一周前开玩笑般开始了 THC(Turbo Haskell Compiler)的开发,如今它已能运行 GHC 9.14.1 的所有 prim-ops,并通过 Truffle 和 GraalVM 在 JVM 上执行 Haskell 代码。THC 支持 JIT 和 AOT 编译,兼容 Template Haskell、Linear Haskell 等高级特性,甚至能编译 GHC 自身。它提供多语言 FFI,可无缝调用 Python、Ruby、R 和 JavaScript 库,实现零拷贝字符串转换。在并发模型上,THC 支持 Java 线程和 Project Loom,提供轻量级绿色线程。针对尾递归优化,THC 采用代码变换技术将热尾调用转为紧循环,显著提升性能。虽然目前性能略逊于 GHC,但潜力巨大。项目代码已开源,欢迎加入社区共同探索。

当执行必须回退到普通调用时,THC 会定期展开累积的栈帧,而热尾调用则直接变成高效的循环。
  1. BalinKing

    只是略有相关,但我突然想起了 Frege[0],一种我之前偶然发现的面向 JVM 的 Haskell 方言,当时觉得非常酷……我看到最近有提交记录,但发布版本却都很旧,所以无法判断这个项目的现状。

  2. kitd

    奇怪的是,FFI 列表里竟然没有 Java,明明目标是 JVM。是笔误还是疏忽?

  3. fouc

    像 Turbo Pascal 一样?

同日更多故事

2026-10-02