Move Control.Monad.IO.Class to base from transformers
ClosedPublic

Authored by RyanGlScott on Aug 14 2015, 8:46 PM.

Details

Diff Detail

Repository
rGHC Glasgow Haskell Compiler
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
RyanGlScott updated this revision to Diff 3833.Aug 14 2015, 8:46 PM
RyanGlScott retitled this revision from to Move Control.Monad.IO.Class to base from transformers.
RyanGlScott updated this object.
RyanGlScott edited the test plan for this revision. (Show Details)
RyanGlScott added reviewers: hvr, ekmett, austin, bgamari.
RyanGlScott updated the Trac tickets for this revision.
hvr requested changes to this revision.EditedAug 15 2015, 3:05 AM
hvr edited edge metadata.

We have to get the transfomers changes merged into upstream before we can land this one; and there's a few other changes queued for transformers (see also D1148) and it's best if we send them all in one batch to Ross

This revision now requires changes to proceed.Aug 15 2015, 3:05 AM

I've made a "pull request" for transformers here.

hvr added a comment.Sep 27 2015, 5:57 AM

*bump* what's the upstream (and general) status?

In D1147#36288, @hvr wrote:

*bump* what's the upstream (and general) status?

I haven't heard from Ross in a while, so it's hard to say. I forwarded the Haskell libraries mailing list conversations to him and opened up a pull request on the transformers darcs repo about this particular change, but there hasn't been any movement so far. I'll go ahead and send him a follow-up e-mail.

OK, Ross updated the upstream version of transformers to incorporate the changes needed to accommodate D1147 and D1148. He requested that someone double-check the version bounds on the #ifdef guards he added.

@hvr, how does GHC's transformers mirror work? I'm not familiar with how git interacts with darcs, so I want to make sure I'm doing things The Right Way™ before I proceed.

hvr added a comment.EditedSep 27 2015, 3:47 PM

There's two Git repos needed for Darcs-upstreams (luckily transformers is the last one using Darcs):

Sadly, the Darcs mirror-repo sometimes non-fast-forwards (I'm not sure if this because the Darcs upstream does something bad, or if it's just the mirroring that's fragile), and that requires some tricky git-branching hack which I need to document at some time.

To make it simple, I've just synced up the master branch of latter Git repo w/ the Darcs mirror Git-repo , let's just hope it doesn't get rebased again...

Argh, I thought I had all the changes I needed in transformers, but I accidentally messed up the .cabal flags. Ross has since pushed two commits which fix this, but now the Git mirror is out-of-sync again :(

Do I have the power to sync the Git mirror in from a Diff, or does this need to be done externally?

hvr added a comment.Oct 1 2015, 4:35 AM

Argh, I thought I had all the changes I needed in transformers, but I accidentally messed up the .cabal flags. Ross has since pushed two commits which fix this, but now the Git mirror is out-of-sync again :(

Do I have the power to sync the Git mirror in from a Diff, or does this need to be done externally?

If you have git push rights to ghc, then you probably would have that too. But I've just synced up again myself (has the benefit I am to blame if something gets messed up :-) ), so now Darcs mirror and lagged mirror's master are synced up again

hvr added a comment.Oct 1 2015, 4:37 AM

btw, I've noticed

Control/Monad/Trans/Error.hs:#if !(MIN_VERSION_base(4,8,3))
Control/Monad/Trans/Error.hs:#if !(MIN_VERSION_base(4,8,3))

GHC 8.0 will either ship with base-4.8.2.0 *or` with base-4.9.0.0 (but it's still unclear whether we *need* that major version bump). Any other version numbers are very unlikely

RyanGlScott updated this revision to Diff 4368.Oct 1 2015, 9:30 AM
RyanGlScott edited edge metadata.
  • Update transformers submodule

Well, the bounds in transformers right now are at least sufficient to make this work until we pinpoint an exact version to use for the next base release.

Also, I don't think I have push access to GHC, but I suppose I haven't tempted the fates and tried it myself...

bgamari accepted this revision.Oct 10 2015, 8:03 AM
bgamari edited edge metadata.

Alright, looks like this should be safe to merge.

hvr accepted this revision.Oct 10 2015, 8:08 AM
hvr edited edge metadata.
hvr added a comment.Oct 10 2015, 8:50 AM

Well, the bounds in transformers right now are at least sufficient to make this work until we pinpoint an exact version to use for the next base release.

I still don't understand how #if !(MIN_VERSION_base(4,8,3)) can be right though, as the result differs depending on whether we pinpoint to 4.8.2 or 4.9.0

Oh, right. For some silly reason, I was thinking we were going to pinpoint base to version 4.8.2 in GHC 7.10.3. I'll ask Ross to change the bounds to !(MIN_VERSION_transformers(4,8,2)).

...and the bounds have been changed to 4.8.2 on the darcs mirror.

I tempted the fates and discovered that I don't have push access (probably for the best), so I must once again leave the venerable task of syncing GHC's transformers repo to you. (Third try's the charm?)

hvr added a comment.Oct 12 2015, 4:15 AM

I tempted the fates and discovered that I don't have push access (probably for the best), so I must once again leave the venerable task of syncing GHC's transformers repo to you. (Third try's the charm?)

done!

RyanGlScott edited edge metadata.
  • Update transformers submodule commit
austin accepted this revision.Oct 12 2015, 9:17 PM
austin edited edge metadata.

LGTM!

This revision is now accepted and ready to land.Oct 12 2015, 9:17 PM
This revision was automatically updated to reflect the committed changes.

@RyanGlScott, it looks like 7.10.3 will be released with base-4.8.2 afterall. Do you think you could ask Ross to change the bound back?

hvr added a comment.Oct 27 2015, 12:53 PM

@RyanGlScott Moreover, I'm preparing to bump GHC HEAD's base version to 4.9, so GHC 8 is very likely to be released with base-4.9.0.0 given current knowledge

Sure, I can let him know.

For the curious, is there a place where I can see what specific changes are going to be incorporated into GHC 7.10.3? That could help me figure out all this bleeding-edge business a little more easily.

At this point the ghc-7.10 branch is up-to-date. You can refer to the release notes for a quick overview.

The CPP bounds in transformers should now be set to 4,9,0. All we need is an update to the transformers git repo.

hvr added a comment.Oct 30 2015, 12:59 PM

The CPP bounds in transformers should now be set to 4,9,0. All we need is an update to the transformers git repo.

great, thanks!