6

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

AlexJ136
  • 1,272
  • 1
  • 12
  • 21
  • 4
    This warning is caused by a bug in Alex, which appears to have been fixed by Simon Marlow two weeks ago. See https://github.com/simonmar/alex/issues/61. Try to get the latest version of Alex. – jub0bs May 14 '15 at 11:59
  • @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 May 14 '15 at 12:55

1 Answers1

10

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.

Daniel Wagner
  • 145,880
  • 9
  • 220
  • 380