6
votes

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

1
This warning is caused by a bug in Alex, which appears to have been fixed by Simon Marlow two weeks ago. See github.com/simonmar/alex/issues/61. Try to get the latest version of Alex.jub0bs
@Jubobs good to know, thanks for the heads-up. The update doesn't seem to have reached Hackage or my disribution's repos yet, but I can tolerate the issue until then.AlexJ136

1 Answers

9
votes

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.