<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2016-02-14 17:12 GMT+01:00 Ben Gamari <span dir="ltr"><<a href="mailto:ben@well-typed.com" target="_blank">ben@well-typed.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">[...] This proposal is motivated by concern expressed by some that -Wcompat<br>
would see little usage unless it is placed in one of the warning sets<br>
typically used during development. One such set is -Wall, which enables<br>
a generous fraction of GHC's warning collectionand is is intended [2]<br>
for use during development.<br></blockquote><div><br></div><div>IMHO, the distinction between "during development" and "outside of it" is purely hypothetical.  A typical workflow is: Develop your code locally against one GHC/set of libraries, commit to GitHub and let Travis CI do the real work of testing against a matrix of configurations. If things work well and the changes are worth it, tag your current state and release it. Where exactly in this scenario is the code leaving the "during development" state? I definitely want to enable -Wall for the Travis CI builds, because that's the place where they are most valuable. As stated on the Wiki, stuff in -Wcompat will often be non-actionable, so the only option I see if -Wcompat is included in -Wall will be -Wno-compat for all my projects. -Wcompat would be restricted to a few manual local builds to see where things are heading.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Unfortunately, despite the (albeit only recently stated) intent of<br>
flag, -Wall is widely used outside of development [3], often with the<br>
expectation that the result be warning-clean across multiple GHC<br>
versions. While we hope that -Wall will see less use in this context in<br>
the future, [...]</blockquote><div><br></div><div>Seeing -Wall this way is quite unusual, especially for people coming from C/C++ (and the numbers quoted from Hackage seem to be a hint that others think so, too). Normally, -Wall -Wextra -pedantic etc. are life-savers and should be kept enabled all the time, unless you like endless debugging hours, of course.</div><div> </div><div>In a nutshell: I would consider -Wall implying -Wcompat an annoyance, but as long as it can be disabled by 2 lines in .travis.yml, I don't really care. ;-)</div><div><br></div><div>Cheers,</div><div>   S.</div></div></div></div>