如何将我的包裹标记为特别依赖于 ghc?
How do I mark my package as depending on ghc specifically?
我的包依赖于 GHC 中的一些实现细节(不仅仅是语言扩展)。我应该如何在我的 .cabal 文件中表达这种依赖关系?我是不是该?我只是偏执吗?
build-depends
我认为也许我应该将 ghc
添加到 build-depends
列表中,但是没有 ghc package。
受到ghc-mod's dependency list的启发,我还是试了一下。我添加了 build-depends: ghc >= 7.20
,这在我只安装了 7.10.3 时产生了预期的失败。 (在撰写本文时,7.20 甚至不存在。)
cabal.exe: At least the following dependencies are missing:
ghc >=7.20
ghc
是某种神奇的包裹吗?还有哪些魔法包?
tested-with
有 tested-with
package property。但是,这似乎并不影响构建。我添加了 tested-with: GHC==7.20
(一个不存在但比我拥有的 7.10.3 更新的 GHC 版本),但是 cabal build
仍然构建了我的包并且甚至没有发出警告或任何东西。
ghc
是一个包,而不是一个魔法包。它只是不是 Hackage 上的一个包。相反,它与您的 ghc 安装一起安装,默认情况下是隐藏的。您可以在 ghc-pkg list
的输出中看到它。它为编译器公开了一个 API 。如果您实际上不使用它,则不应依赖它。一般来说,大多数人 不会 将自己固定在 GHC 上,除非他们确实需要。例如,您 确定 您的包不会用 GHCjs
或 Haste
编译吗?那么,为什么要提前限制自己...
如果你可以在没有 ghc 实现细节的情况下使用你的包,但也可以用 "longhand" 更昂贵的方式做事,你可以使用 cabal 提供的宏在你的根据 GHC 测试给出不同结果的代码。
tested-with
确实是约定俗成的纯信息字段。
我的包依赖于 GHC 中的一些实现细节(不仅仅是语言扩展)。我应该如何在我的 .cabal 文件中表达这种依赖关系?我是不是该?我只是偏执吗?
build-depends
我认为也许我应该将 ghc
添加到 build-depends
列表中,但是没有 ghc package。
受到ghc-mod's dependency list的启发,我还是试了一下。我添加了 build-depends: ghc >= 7.20
,这在我只安装了 7.10.3 时产生了预期的失败。 (在撰写本文时,7.20 甚至不存在。)
cabal.exe: At least the following dependencies are missing:
ghc >=7.20
ghc
是某种神奇的包裹吗?还有哪些魔法包?
tested-with
有 tested-with
package property。但是,这似乎并不影响构建。我添加了 tested-with: GHC==7.20
(一个不存在但比我拥有的 7.10.3 更新的 GHC 版本),但是 cabal build
仍然构建了我的包并且甚至没有发出警告或任何东西。
ghc
是一个包,而不是一个魔法包。它只是不是 Hackage 上的一个包。相反,它与您的 ghc 安装一起安装,默认情况下是隐藏的。您可以在 ghc-pkg list
的输出中看到它。它为编译器公开了一个 API 。如果您实际上不使用它,则不应依赖它。一般来说,大多数人 不会 将自己固定在 GHC 上,除非他们确实需要。例如,您 确定 您的包不会用 GHCjs
或 Haste
编译吗?那么,为什么要提前限制自己...
如果你可以在没有 ghc 实现细节的情况下使用你的包,但也可以用 "longhand" 更昂贵的方式做事,你可以使用 cabal 提供的宏在你的根据 GHC 测试给出不同结果的代码。
tested-with
确实是约定俗成的纯信息字段。