
#370: Check for use of -X flags on upload ----------------------------+----------------------------------------------- Reporter: guest | Owner: Type: defect | Status: new Priority: normal | Milestone: Cabal-2.0 Component: Cabal library | Version: HEAD Severity: normal | Resolution: Keywords: | Difficulty: normal Ghcversion: 6.8.2 | Platform: ----------------------------+----------------------------------------------- Changes (by duncan): * milestone: HackageDB => Cabal-2.0 Comment: Closely related to this is the problem that the `extensions` field does not quite mean what we want. It currently means to apply those excetions to all the modules in the package, but what we want it to mean is that this package uses these extensions (and not all modules need use all the extensions). I fear we need a different name for this meaning or we'll break lots of existing packages. We can gradually move to the new system. Eg use {{{ library uses-extensions: Foo, Bar }}} This is a declaration to the outside world that this library uses these extensions, however it does not mean that we pass -XFoo -XBar when buliding this library. We expect the .hs files to use the `LANGUAGE` pragma. This `uses-extensions` field would just be the union of all the extensions listed in the `LANGUAGE` pragma. The next question would be how to enforce that the declaration is accurate. We could parse the OPTIONS and LANGUAGE pragmas to extract the languages used. Note also that we should be encouraging the use of the portable `LANGUAGE` pragma, not ghc's `-X` flags. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/370#comment:1 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects