
On Sat, Jun 6, 2015 at 6:21 PM, Sven Panne
2015-06-06 22:09 GMT+02:00 Anthony Cowley
: I'll repeat myself:
... and so do I:
1) The proposed extension will live behind a pragma
That's exactly what I'm asking for: A new {-# LANGUAGE FunkyImports #-} pragma (name to be decided ;-), which must be mentioned in a cabal file's "extension:" field (https://www.haskell.org/cabal/users-guide/developing-packages.html#creating-...). Failing to mention a language extension is just as wrong as declaring wrong bounds.
This was clarified in several mails in the thread before yours starting with a response to Herbert.
2) cabal does not take language extensions into account when computing a build plan
If that's actually the case (can some Cabal devs clarify this?), than it's a Cabal bug, otherwise the "extension:" field would be meaningless and build plans would be fragile. Anyway, this has nothing to do per se with the proposal.
That is the state of affairs. After claiming in this thread that an extension is the only way to help cabal, Herbert himself went on github to open an issue requesting the feature https://github.com/haskell/cabal/issues/2644. I'm not going to try to explain or justify his actions, but the point is that your predictions of how compatibility is sure to be broken have been based on not reading the proposal followed by a misunderstanding of how our tools have worked for years. Cabal should be improved, but if the dozens of extensions we've seen thus far haven't caused widespread havoc, then it seems unlikely that this one would.
The only way to give cabal a clue about a used extension is to put a lower bound on base, but you specifically rejected that as ridiculous.
That would in fact be ridiculous, just as saying "every release with a prime major version number implies the new language extension.". One could perfectly implement any base version without implementing the proposal.
And yet anybody who has seriously made an effort to preserve backwards compatibility has had to do this effectively forever. Again, I'm happy to mark you down as -1 on the proposal. Anthony