我想在我的机器上为所有堆栈编译的软件包设置一些自定义编译器标志(比默认值更积极的优化),并且在stack guide之后,我将 ghc-options
(适用于 "$everything"
)添加到我的 ~/.stack/config.yaml
. 这些标志已正确应用于任何项目目录之外的 stack
调用 .
但是,在项目目录中, stack.yaml
选项不仅仅优先; ~/.stack/config.yaml
中的所有内容都完全被忽略了!我没有在任何项目本地 stack.yaml
文件中指定 ghc-options
,但那些指定的 ~/.stack/config.yaml
无效 .
stack documentation似乎暗示选项应该崩溃,正如我曾预期的那样:
stack有两层配置:项目和非项目 . 所有这些都存储在stack.yaml文件中,但前者有额外的字段(解析器,包,extra-deps和flags) . 后者可以单独组合,以便系统配置文件提供默认值,用户可以使用〜/ .stack / config.yaml覆盖默认值,并且项目可以进一步自定义 .
除非我对“自定义”的含义有不同的看法,否则这不是我所观察到的行为 . 有什么我做错了,或者文件在这方面有误导性?
1 回答
是的,我认为这是一个错误 . 我有一个尚未合并的公关,修复了它https://github.com/commercialhaskell/stack/pull/3781