
I was assuming that the list was generated by doing more or less the same
check we do now. I haven't looked at the code for it.
If so, then it seems it wouldn't flag a now-unnecessary Data.Traversable
dependency for instance. At least not without rather significant retooling.
I might be off in my understanding of how it works, though.
-Edward
On Tue, Jan 20, 2015 at 7:40 PM, Edward Z. Yang
I don't see why that would be the case: we haven't *excluded* any old import lists, so -ddump-minimal-imports could still take advantage of Prelude in a warning-free way.
Edward
It isn't without a cost. On the down-side, the results of -ddump-minimal-imports would be er.. less minimal.
On Tue, Jan 20, 2015 at 6:47 PM, Edward Z. Yang
wrote: I like this proposal: if you're explicit about an import that would otherwise be implicit by Prelude, you shouldn't get a warning for it. If it is not already the case, we also need to make sure the implicit Prelude import never causes "unused import" errors.
Edward
Sure.
Adding it to the CHANGELOG makes a lot of sense. I first found out about it only a few weeks ago when Herbert mentioned it in passing.
Of course, the geek in me definitely prefers technical fixes to human ones. Humans are messy. =)
I'd be curious how much of the current suite of warnings could be fixed just by switching the implicit Prelude import to the end of the import
Excerpts from Edward Kmett's message of 2015-01-20 15:41:13 -0800: list
inside GHC.
Now that Herbert has all of his crazy tooling to build stuff with 7.10 and with HEAD, it might be worth trying out such a change to see how much it reduces the warning volume and if it somehow manages to introduce any new warnings.
I hesitate to make such a proposal this late in the release candidate game, but if it worked it'd be pretty damn compelling.
-Edward
On Tue, Jan 20, 2015 at 6:27 PM, Edward Z. Yang
wrote: Hello Edward,
Shouldn't we publicize this trick? Perhaps in the changelog?
Edward
Excerpts from Edward Kmett's message of 2015-01-20 15:22:57 -0800:
Building -Wall clean across this change-over has a big of a
Excerpts from Edward Kmett's message of 2015-01-20 16:36:53 -0800: trick to
The easiest way I know of when folks already had lots of
import Data.Foldable import Data.Traversable
stuff
is to just add
import Prelude
explicitly to the bottom of your import list rather than
it. painstakingly
exclude the imports with CPP.
This has the benefit of not needing a bunch of CPP to manage what names come from where.
Why? GHC checks that the imports provide something 'new' that is used by the module in a top-down fashion, and you are almost suredly using something from Prelude that didn't come from one of the modules above.
On the other hand the implicit import of Prelude effectively would come first in the list.
It is a dirty trick, but it does neatly side-step this problem for folks in your situation.
-Edward
On Tue, Jan 20, 2015 at 6:12 PM, Bryan O'Sullivan < bos@serpentine.com> wrote:
> > On Tue, Jan 20, 2015 at 3:02 PM, Herbert Valerio Riedel < hvr@gnu.org> > wrote: > >> I'm a bit confused, several past attoparsec versions seem to build just >> fine with GHC 7.10: >> >> https://ghc.haskell.org/~hvr/buildreports/attoparsec.html >> >> were there hidden breakages not resulting in compile errors? >> Or are the fixes you mention about restoring -Wall hygiene? >> > > I build with -Wall -Werror, and also have to maintain the test and > benchmark suites. >