使用 Haskell 的堆栈构建系统编译时打开断言

Turning on assertions while compiling with Haskell's stack build system

我正在使用 Stack 9.0 作为我的 Haskell 项目构建系统。

我刚刚注意到,当我使用 Stack 编译我的 Haskell 项目时,所有断言都被关闭了。相比之下,在命令行执行 "normal" GHC 构建时,默认情况下会打开断言,除非使用 -fignore-asserts 标志 (link).

明确关闭。

例如这个简单的主函数无法抛出断言错误

import Control.Exception.Base

main :: IO ()
main = assert (1==2) $ print "Hello World!"

如何编辑项目的 .cabal 文件以启用断言?目前在我的 .cabal 文件中,我看到以下 ghc 选项

 ghc-options: -threaded -rtsopts -with-rtsopts=-N

这很奇怪,因为在此列表中尚未明确关闭断言。

编辑:

我在 运行 stack --version 之后有 Version 1.1.2 x86_64 hpack-0.14.0。特别是,我使用 stack lts 9.0ghc 8.0.2

尝试传入 --fast 标志,这将禁用优化(通过 --ghc-options -O0)并允许对 运行.

的断言