We need to add role annotations for 7.8

Brandon Allbery allbery.b at gmail.com
Mon Mar 24 14:57:17 UTC 2014


On Mon, Mar 24, 2014 at 10:44 AM, Mark Lentczner
<mark.lentczner at gmail.com>wrote:

> On Mon, Mar 24, 2014 at 7:28 AM, Brandon Allbery <allbery.b at gmail.com>wrote:
>
>> My counter-proposal was to have 7.8 default to representational to give
>> library maintainers a release cycle to add the necessary annotations, then
>> switch the default to nominal in 7.10 to get the additional safety.
>>
>
> This is unworkable. How much conditional code do you want library writers
> to have to have? Library writers strive to have code which works with n
> prior releases where n is commonly 3. Having code that works with 7.6, 7.8,
> and 7.10 would be a nighmare!
>

No? Immediately switching to nominal requires those annotations
immediately. No immediate change is needed if we keep the current default;
if you have problems with conditional code, you will have them no matter
what with roles --- the only question is when. Also see SPJ's response.


> On Mon, Mar 24, 2014 at 7:32 AM, Brandon Allbery <allbery.b at gmail.com>
>  wrote:
>
> perhaps there should be some mechanism to specify to ghc 7.8 whether a
>> compile should default to representational or nominal so that authors have
>> a way to test their code / look for problems.
>>
>
> Also unworkable... now we need a conditional flag for the state of the
> default so the code can
>
be written to work with either based on a GHC flag? And how is that
> supposed to work with
>

Nope; in fact, code containing this flag should be rejected by hackage the
same way some other options are rejected. It exists ONLY to help library
authors with the transition, and should never be used with released code,
only for maintainer debugging/testing.

It would be nice if it could be forced to only work in sandboxes, but that
would require a rather unhealthy level of ghc / cabal-install interaction.
I expect such testing will end up requiring hsenv. There's just no good way
of handling this whole role annotations thing; it's a massive sledgehammer.

-- 
brandon s allbery kf8nh                               sine nomine associates
allbery.b at gmail.com                                  ballbery at sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20140324/a6bb1130/attachment.html>


More information about the Libraries mailing list