【问题标题】:How can I use GHCi with the new cabal 1.17 sandboxes?如何将 GHCi 与新的 cabal 1.17 沙箱一起使用?
【发布时间】:2013-06-05 12:59:45
【问题描述】:

我一直在尝试支持类似于 cabal-dev 的沙盒的 cabal head。但是,下一个版本尚不支持cabal-dev ghci 等效项和apparently no support planned

我可以使用一些咒语来解决这个问题并获得类似于cabal-dev ghci 的东西吗?

【问题讨论】:

  • 不幸的是,目前还没有 cabal-dev ghci 的易于使用的类似物。 Duncan 计划在某个时候合并 Sam Anklesaria 的 GSoC 2011 补丁,实现cabal repl(他已经合并了一些准备工作),但 ATM 它们不在 HEAD 中。一旦实现cabal repl,沙盒也将支持它。
  • 感谢您的信息!我也会接受难以使用的解决方案。

标签: haskell cabal


【解决方案1】:

编辑(2013 年 8 月):cabal repl 补丁最近已被合并。此功能将成为下一个版本的一部分。


在撰写本文时,没有易于使用的类似 cabal-dev ghci。我们计划在未来添加 cabal repl 命令 - 但是,目前 Cabal HEAD 中没有此功能。

与此同时,您可以尝试以下解决方法:

$ cd $YOUR_PACKAGE_DIR

# For GHC >= 7.6
$ ghci -no-user-package-db -package-db .cabal-sandbox/i386-linux-ghc-7.6.1-packages.conf.d

# For GHC < 7.6
$ ghci -no-user-package-conf -package-conf .cabal-sandbox/i386-linux-ghc-7.4.2-packages.conf.d

这不会使您的软件包模块立即从 ghci 获得 - 您必须使用 :limport 加载它们(在存在自定义预处理器和 CPP 的情况下可能会中断)。

【讨论】:

  • 请注意,cabal repl 从 cabal 版本 1.18 开始可用:coldwa.st/e/blog/2013-08-21-Cabal-1-18.html 这意味着当您拥有 cabal 版本 >= 1.18 时,您只需在项目目录中键入 cabal repl,沙箱将是可用时使用。
  • 另外,请注意 i386-linux... 特定于您的操作系统和 ghc 版本 - 我有不同的 ghc 版本和操作系统,所以我必须为我的 conf 输入不同的前缀.d 文件。这对其他人来说可能很明显,但我是 Haskell 的新手。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多