在运行'stack build'与'stack build --profile'之间存储什么状态或类似地改变ghc选项?

Kyr*_*ren 8 haskell haskell-stack

如果我运行stack clean && stack build --profile,我得到的可执行文件比运行时慢stack clean && stack build,这很正常.

如果我运行stack clean && stack build --profile && stack build然后我得到一个同样慢的可执行文件,这一直持续到我运行stack clean && stack build

我已经rebuild-ghc-options: true在stack.yaml中设置了选项,但我要么不理解堆栈的正确使用,要么我以某种方式滥用它,因为我没有一个明确的心理模型,说明当我运行时状态会受到什么影响stack build.在我运行之前stack clean,它显然正在影响未来的构建,它是否也会影响依赖性?我如何确保在使用默认设置构建时,每次都获得相同的可执行文件?

编辑:让我说清楚,我理解机械上发生了什么,我明白stack build只重建"需要重建"的东西,如果我运行stack build想要的东西就是重建所有需要进行发布构建的东西如果我刚刚使用性能分析构建,这意味着重建所有内容,那就这样吧.

编辑2:好的,我知道堆栈不知道发布或分析构建等,没有根本的区别,但是--profile只是改变了ghc标志吗?我想我要问的是,为什么不做rebuild-ghc-options锡上的说法呢?如果ghc选项发生变化,为什么不完全重建项目呢?那个国旗实际上做了什么?