
#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: | -------------------------------------+------------------------------------- Changes (by rwbarton): * status: closed => new * resolution: fixed => Comment: I didn't understand Duncan's "ulterior motives" before, but since he just mentioned them on IRC, I'm rather sure they are wrong. We should create a `MIN_VERSION_*` macro for every ''visible'' package. Cabal builds with `-hide-all-packages` anyways, so this is no behavior change compared to what's currently implemented when building with Cabal. The performance worry seems suspect, too. Besides the fact that Cabal builds are still unaffected, the amount of work needed to write out the header file can't be large in comparison to the time needed to read the package database in the first place. The only non-linear case would be using `ghc --make` to build a large number of modules while having a large number of packages in the package database, when cpp would have to process the header file once for every package. I think this is still unlikely to be a big issue compared to ghc actually compiling the modules. I'll try to do some timing tests. On general principle, it seems bad to unnecessarily create multiple "tiers" of visible packages: the visible packages but also the ''really'' visible packages, that were specified explicitly. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10970#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler