12

我知道 GHC API 允许我作为库使用,访问编译器功能,例如分析、运行和转换 Haskell 代码。将 GHC 作为包导入的 Haskell 程序在编译时将包含其自己的(部分)GHC 副本,因此即使在未安装 GHC 的系统上也可以执行。

但是,如果我不想在程序中包含 GHC,而是使用系统上安装的 GHC 怎么办?

这样,当给程序一个 Haskell 代码时,它将使用系统的 GHC 来理解它,并在必要时导入所有的包和库(在 GHCi 上可用的)。

  1. GHC(安装在不同系统上)是否提供这样的 API?
  2. 如果是这样,系统文档资源是否也提供类似的东西?(通过它我可以从 Haskell 代码中选择一个函数,然后查看类型签名、使用信息等。)
4

1 回答 1

2

您可以要求最终用户安装BuildWrapperscion,然后以编程方式与它们交互。如果您不想强制用户安装它们,您可以将他们的代码与您的可执行文件捆绑在一起,并让可执行文件调用系统 GHC 来自己构建它们。

于 2013-02-17T21:20:33.283 回答