Search code examples
haskellcabalalex

Haskell/Alex: Warning: Tab character


I'm writing a toy language in haskell. I'm using Alex to generate a scanner. Every time I build my project with cabal, I get the following warnings:

dist/build/optimiser/optimiser-tmp/Lexer.hs:465:1: Warning:
    Tab character

dist/build/optimiser/optimiser-tmp/Lexer.hs:466:1: Warning:
    Tab character

dist/build/optimiser/optimiser-tmp/Lexer.hs:467:1: Warning:
    Tab character

dist/build/optimiser/optimiser-tmp/Lexer.hs:471:1: Warning:
    Tab character

dist/build/optimiser/optimiser-tmp/Lexer.hs:472:1: Warning:
    Tab character

(plus about 10 more of these warnings)

It seems that the alex-generated scanner uses tabs instead of spaces, and ghc's default behaviour is to warn the user about this.

Is anyone aware of a way to either force alex to use spaces, or to suppress those warnings from ghc (via cabal)?


Solution

  • As mentioned in the comments, this is supposedly fixed in alex master. Until you can use the fixed version, you can try adding

    ghc-options: -fno-warn-tabs
    

    to your .cabal file.