arc diff linter looping / stuck

Richard Eisenberg eir at cis.upenn.edu
Fri Aug 8 19:15:05 UTC 2014


On Aug 7, 2014, at 5:51 PM, Simon Peyton Jones <simonpj at microsoft.com> wrote:

> I'm off on holiday for a week, but you and I have discussed most of these changes, some at length. If you are happy with your implementation, then go ahead and commit, from my pov.

OK.

> 
> I did take a quick look though.  For #9200 and TcTyClsDecls, I think you have implemented "Possible new strategy" on https://ghc.haskell.org/trac/ghc/wiki/GhcKinds/KindInference, but not "A possible variation" (same page).  correct?  If so, worth a note in the source code. And actually I'd transfer the algorithm itself, including the definition of CUSK, into the code. 

I've made a new ticket, #9427, for the "variation", which is properly a feature request, not a bug. I can cycle back around to this in a little while.

> 
> kcStrategy seems a very odd name for a predicate on HsDecls that is just a Bool saying whether or not it has a CUSK.  Also odd is that every call to kcHsTyVarBndrs has a corresponding call to kcStrategy, and both functions are in TcHsType; why not just combine them into one?

There is enough variation in how kcHsTyVarBndrs is called to make this a little inconvenient (it's sometimes called on a FamilyDecl, not a TyClDecl, and with existentials in a data constructor, with no clear declaration at all). Instead, I've decided that CUSKness a property of the declaration itself, and put the CUSK-checking code in HsDecls. There is a Note there as well. And, I've removed the last vestiges of KindCheckingStrategy.

I hope this is OK. If it validates, I'll push, and we can revisit refactoring later if necessary.

Thanks,
Richard

> 
> Thanks for doing this
> 
> Simon
> 
> | -----Original Message-----
> | From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of Richard
> | Eisenberg
> | Sent: 07 August 2014 19:34
> | To: ghc-devs
> | Subject: arc diff linter looping / stuck
> | 
> | Hi all,
> | 
> | I've prepared a bunch of commits to fix several tickets. After pushing
> | these commits to branch wip/rae (to save my place and to get validate
> | running on Travis), I then `git checkout`ed back to a point where `git
> | diff origin/master` gave me a patch for precisely one bug (instead of the
> | several unrelated ones I had fixed). I wanted to post to Differential.
> | `arc diff` allowed me to fill out a description message (which mentioned,
> | in its comments, the right set of commits), but then hung on the
> | "linting..." stage. I suppose I could skip the linter, but it's more
> | likely I've done something wrong here...
> | 
> | Any advice?
> | 
> | In the meantime, please consider this to be a request for feedback on
> | everything in wip/rae! The bugs fixed are #9200, #9415, #9404, and #9371.
> | 
> | Thanks!
> | Richard
> | _______________________________________________
> | ghc-devs mailing list
> | ghc-devs at haskell.org
> | http://www.haskell.org/mailman/listinfo/ghc-devs
> 



More information about the ghc-devs mailing list