Haskell/Alex: Warning: Tab character

AlexJ136 picture AlexJ136 · May 14, 2015 · Viewed 8.4k times · Source

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)?

Answer

Daniel Wagner picture Daniel Wagner · May 14, 2015

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.