Package management

Albert Y. C. Lai trebla at
Thu Apr 28 04:53:38 CEST 2011

On 11-04-26 05:05 PM, Brandon Moore wrote:
> There are already hashes to keep incompatible builds of a package separate.
> Would anything break if
> existing packages were left alone when a new version was installed? (perhaps
> preferring the most
> recent if a package flag specifies version but not hash).

Whether we allow multiple builds of same package same version, or allow 
multiple versions of same package, we face the same dilemmas:

First dilemma: If the package comes with C code, you get a name clash at 
the C level. Because C function names in such packages are unlikely to 
vary by version. Well, the linker sees two extern C functions both 
called get_current_timezone_seconds (real example from the time 
package), great.

Second dilemma: If the package comes with instance code like "instance 
Read (IO a)", you get overlapping instances.

Third dilemma: Data types and type classes defined by the package cannot 
be safely exchanged between two users because the two users depend on 
two different builds. Perhaps it is safe in most cases, but you can't be 
too sure.

More information about the Glasgow-haskell-users mailing list