Haskell堆栈在构建时忽略了-Wall -Werror 阴谋集团ghc-options标志



我想在使用堆栈构建(执行堆栈构建)时始终使用"-Wall -Werror"选项,但是将这些标志添加到package.yaml中的ghc-options没有任何作用。我还想避免将 --pedantic 标志传递给堆栈构建。以下是配置文件:

package.yaml
...
executables:
  XYZ-exe:
    main:                Main.hs
    source-dirs:         app
    ghc-options:
    - -Wall
    - -Werror
    - -threaded
    - -rtsopts
    - -with-rtsopts=-N
    dependencies:
    - XYZ
...
XYZ.cabal
...
executable XYZ-exe
  main-is: Main.hs
  hs-source-dirs:
      app
  ghc-options: -Wall -Werror -threaded -rtsopts -with-rtsopts=-N
...

"-Wall -Werror"标志在ghc选项中指定,但在构建时被忽略。这是堆栈构建的输出:

stack build
Building all executables for `XYZ' once. After a successful build of all of 
them, only specified executables will be rebuilt.
XYZ-0.1.0.0: configure (lib + exe)
Configuring XYZ-0.1.0.0...
XYZ-0.1.0.0: build (lib + exe)
Preprocessing library for XYZ-0.1.0.0..
Building library for XYZ-0.1.0.0..
[  1 of 105] Compiling Data.List.Extras ( srcDataListExtras.hs, .stack- 
workdiste626a42bbuildDataListExtras.o )
... the rest is omitted, all succeed ...

这是堆栈构建的输出 --pedantic

stack build --pedantic
Building all executables for `HStat' once. After a successful build of all of them, only specified executables will be rebuilt.
HStat-0.1.0.0: configure (lib + exe)
Configuring HStat-0.1.0.0...
HStat-0.1.0.0: build (lib + exe)
Preprocessing library for HStat-0.1.0.0..
Building library for HStat-0.1.0.0..
[  1 of 105] Compiling Data.List.Extras ( srcDataListExtras.hs, .stack-workdiste626a42bbuildDataListExtras.o )
srcDataListExtras.hs:4:1: error: [-Wunused-imports, -Werror=unused-imports]
    The import of ‘Data.Maybe’ is redundant
      except perhaps to import instances from ‘Data.Maybe’
    To import instances alone, use: import Data.Maybe()
  |
4 | import           Data.Maybe
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^

这按预期工作 - src\Data\List\Extras.hs 确实有一个未使用的数据。我做错了什么?

ghc-options 标志必须在 package.yaml 的部分中单独定义:

library:
  source-dirs: src
  ghc-options:
  - -Wall
  - -Werror
  - -fwarn-incomplete-uni-patterns

这样做解决了这个问题。

相关内容

  • 没有找到相关文章

最新更新