Hasty Briefsbeta

双语

Turbo Haskell

12 hours ago
  • THC(Turbo Haskell 编译器)是一个针对 GHC Core 的 JIT 编译器,使用 Truffle 和 GraalVM 在 JVM 上运行 Haskell,实现了所有 GHC 9.14.1 基本操作。
  • 它支持高级语言特性,如 Template Haskell 和 Linear Haskell,并可以通过 Native Image 进行提前编译生成可执行文件。
  • THC 可以 JIT 或 AOT 编译大型 Haskell 程序,如 pandoc、happy、alex,甚至 GHC 本身。
  • 它提供了到 Python、Ruby、R 和 JavaScript 的多语言 FFI,支持 Data.Text 与 Truffle 字符串之间的零拷贝转换。
  • 支持两种 Truffle 求值后端(基于字节码和基于 AST)、多线程、异步异常以及通过 Project Loom 实现的轻量级绿色线程。
  • SIMD 支持使用 GHC 基本操作和 Vector API 实现运行时 SIMD 宽度选择以及循环 JIT 编译。
  • 尾调用优化使用 Bloom 过滤器和代码转换将热尾调用转换为紧凑循环,并回退到栈展开。
  • 性能与 GHC 相当(在某些基准测试中预热后慢 10-20%),尽管最近的广泛覆盖导致了性能回退。
  • 开发在 GitHub (github.com/ekmett/thc) 上开源,IRC 频道为 libera.chat 上的 ##thc。