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

时间:2017-08-20 01:34:37

标签: haskell haskell-stack

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

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

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

import Control.Exception.Base

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

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

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

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

编辑:

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

1 个答案:

答案 0 :(得分:0)

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

相关问题