
#9230: Make -fwarn-tabs the default -------------------------------------+------------------------------------- Reporter: dfeuer | Owner: mlen Type: feature | Status: new request | Milestone: 7.10.1 Priority: normal | Version: 7.8.2 Component: Compiler | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Easy (less than 1 Unknown/Multiple | hour) Type of failure: | Blocked By: None/Unknown | Related Tickets: Test Case: | Blocking: | Differential Revisions: Phab:D255 | -------------------------------------+------------------------------------- Comment (by dfeuer): Replying to [comment:18 thoughtpolice]:
In essence it just adds `Opt_WarnTabs` (AKA `-fwarn-tabs`) to `standardWarnings` in `DynFlags`, which is the correct move. Next, it disables `-fno-warn-tabs` when building the libraries by modifying `mk /validate-settings.mk` to include `-fno-warn-tabs`, so that everything can validate correctly.
This may very well be the best thing for right now, but here's another idea that would take more work but might pay off in the long run, especially if other warnings are added to the defaults in the future. Instead of ''actually'' running ghc with `-Werror`, make the validation script watch for warnings. That is, replace an `Error` monad with a `Writer` monad. Given appropriate options, validation could ''collect'' warnings instead of halting immediately. This would allow us to automatically create lists of files for which specific warnings should be tolerated. Obviously, these lists would need to be maintained in order to prevent regressions, but this is easy: Phabricator (or whatever) would collect a "warning diff" from each build that passes validation, which could be used to update the lists. Ideally, we'd also find a way to trim down the warning list generated by a differential to just those files it changed, so as to get notice that something else might need to be fixed. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9230#comment:20 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler