小型二进制 Shake 可执行文件

Small binary Shake executable

有没有办法在不拉 ghc 的情况下使用小型二进制可执行文件来使用 Shake?我们喜欢 Shake,但我们不能要求我们的用户安装 ghc。作为 nix 用户,可以构建静态 Haskell 可执行文件吗?理想情况下,我只想从 Github 中获取二进制文件(例如 Dhall 的情况)

Shake 是一个用于编写构建系统的库,因此大多数用户将他们的构建系统编写为一个 Haskell 项目,大量使用 Shake 库。该 Haskell 代码需要使用 ghc 进行编译,以生成为该项目量身定制的构建系统。因此,单个通用的 Shake 二进制文件不是那么有用 - 您需要为您的特定项目生成一个。

只有 developing/modifying 构建脚本的人需要实际编译二进制文件,其他人都可以使用预编译的二进制文件,尽管它需要是您内部提供的,并在每次构建脚本更改时更新。您可以通过在 Shake 之上使用元数据定义您自己的构建系统来减少构建脚本更改的频率,例如按照方法 in this talk。预编译的二进制文件是否可行实际上取决于需要多少用户来修改构建系统。