GHC compile times (was Re: GHC 6.4.3 is stalled)
simonmarhaskell at gmail.com
Thu Jul 27 07:34:57 EDT 2006
Simon Peyton-Jones wrote:
> | However, whenever I change a data type or class even if they are not
> | exported, it seems to force a full rebuild of everything that depends on
> | that file. Is there any fundamental reason this can't be fixed? why do
> | the non exported classes and data types end up in the hi file anyway
> | (assuming they appear in no exported functions type signature of course)
> There's no fundamental reason. I think I just thought that it'd be seldom for a data type or class to be defined only internally to a module, and not exported at all.
> Somewhat more common is for the *implementation* of the data type (i.e. its data constructors) to be internal, but the type itself is exported. So then one would want to have a partial spec in the interface file, giving the kind but not the constructors. Again, I didn’t work on this case.
That's funny, I was under the impression that we had fixed this at some stage in
the past - that is, a data type can be exported without its constructors in an
interface. I remember because it caused a bunch of bugs when the code generator
couldn't figure out how to evaluate a type because it had no constructors.
Maybe we should look at the code :-)
More information about the Glasgow-haskell-users