[GHC] #10970: Built in MIN_VERSION macro support
GHC
ghc-devs at haskell.org
Tue Feb 9 13:30:28 UTC 2016
#10970: Built in MIN_VERSION macro support
-------------------------------------+-------------------------------------
Reporter: ezyang | Owner:
Type: feature request | Status: new
Priority: normal | Milestone: 8.0.1
Component: Compiler | Version: 7.11
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s): Phab:D1349,
Wiki Page: | Phab:D1869
-------------------------------------+-------------------------------------
Comment (by hvr):
Replying to [comment:3 rwbarton]:
> [...] I don't understand any more why it should be the case that we only
create these macros for packages explicitly specified with `-package` or
equivalent.
Well, if you `-hide-all-packages` and unmask a few packages via
`-package`, then exposing macros for all other packages in the package
database would be very unsound, as it would destroy modularity. You don't
expect package versions outside the set of explicitly requested ones to
have any effect on your code, just like you wouldn't expect modules not
explicitly imported to bring entities into scope (sadly, instances violate
this already, but we shouldn't add to this any more).
Also, always defining macros even though the packages are not activated
(i.e. enabled via `-package`) would also break code which uses `#ifdef
MIN_VERSION_...` to query whether a package has been activated for a given
compilation, and thus its modules are allowed to be `import`ed.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10970#comment:12>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list