【发布时间】:2015-11-18 00:12:57
【问题描述】:
要在项目的所有文件中使用语言扩展名,例如 UnicodeSyntax,有两个选项:
- 每个源文件中都有一个编译指示:
{-# LANGUAGE UnicodeSyntax #-} - 在
.cabal文件的每个部分(库、可执行文件、测试)中添加extensions: UnicodeSyntax。
是否有任何理由或最佳实践来选择其中之一?
我正在使用stack 和他们的标准new-template 用于简单的包。
【问题讨论】:
-
请注意,您可以有选择性:对于每个源文件,您可以启用不同的扩展名...
-
另外:你使用
Makefile吗? -
同意@CommuSoft,但如果我在所有文件中使用扩展名,编译器标志似乎可以减少重复。我想知道编译器标志是否是某种不好的做法。
-
我不明白为什么要在某些
Makefile或 shell 脚本中包含标志,否则其他程序员将很难“猜测”正确的标志。请注意,一个潜在的优势可能是分析程序(如可以解析man页面的fish)如果标志不可用,则可能已经发出警告。 -
因为
my.cabal包含:ghc-options: «some options»它听起来确实是 ghc 特定的,并且不便携,而不是 pragma。
标签: haskell haskell-stack