【发布时间】:2021-11-18 04:34:36
【问题描述】:
我现在应该真的知道这一点,但我不知道。我经常开发基于 Cabal 的软件包,并且刚刚成功运行了 cabal build。现在我想在 GHCi 中尝试一些东西。如果我运行cabal repl,那么 GHC 会将整个包重新编译为字节码并在解释器中运行。根本不是我想要的!如果我只是直接运行 GHCi,我会使用 -O -fobject-code 之类的东西,但这不会给我包上下文。我只想“在编译包时给我一个 repl,只在必要时编译其他东西。”我该怎么做?
【问题讨论】:
-
我正在为此使用
stack repl --package foo。 -
@arrowd,我们没有在这个项目中使用
stack。您是否建议以某种方式将stack指向当地的阴谋集团项目?我对它的了解甚至比对阴谋集团的了解还要少。 -
不,我只是说它适用于 Stack 很好。如果你使用普通的 Cabal,不知道该怎么办。
-
@arrowd 这似乎对我不起作用。
stack repl单独解释当前包(在我的测试中命名为test,我知道是原始的),而stack repl --package test报告“包测试以多种不兼容的方式指定:测试测试”(并且退出而不让我进入ghci)。为了重现,这些是我使用的初始化命令:mkdir test; cd test; cabal init --lib --non-interactive; stack init。 (也许我错误地使用了stack?) -
不,我确实理解错了。我认为在“编译”包下你的意思是你的项目的一些依赖包。所以,你基本上想将 Cabal 的
new-dist目录提供给 GHCi,这样它就不会重新编译它,对吧?
标签: haskell package cabal ghci