6

私の現在のプロジェクトには、AlexTokens.xがコンパイルする必要があるファイルがあります。Tokens.hs私のファイルでは、セクションに.cabalリストTokensし、喜んでファイルを作成します。other-modulescabal build

ただし、Alex に GHC 最適化バージョンのファイルを作成するように指示する -g オプションを指定せずにこれを行います。このオプションは、GHC で使用するとスキャンが 10 倍高速になり、コンパイルも桁違いに速くなります。

GHC を使用してコンパイルするときに -g オプションを含むように cabal に指示するにはどうすればよいですか?

4

1 に答える 1

5

私の知る限り、Cabalでは現在、構成ファイルまたはコマンドラインでのみプログラムオプションを指定できますが、ファイルでは指定できません.cabal

これについて未解決の問題があります: https://github.com/haskell/cabal/issues/1223

ただし、のソースを見るとCabal、特定の問題はデフォルトで解決されているようです。にはDistribution.Simple.PreProcess、次のものがあります。

ppAlex :: BuildInfo -> LocalBuildInfo -> PreProcessor
ppAlex _ lbi = pp { platformIndependent = True }
  where pp = standardPP lbi alexProgram (hcFlags hc)
        hc = compilerFlavor (compiler lbi)
        hcFlags GHC = ["-g"]
        hcFlags _ = []

これは、Cabal が GHC で使用されている場合、それ-gがプリプロセッサとして使用されているときに自動的に Alex に渡されることを意味します。

于 2014-01-13T21:33:15.970 に答える