Backporting srcLoc to the GHC 7.10 branch

Simon Peyton Jones simonpj at microsoft.com
Mon Jul 13 10:15:52 UTC 2015


> * There is some change you want to make to 7.10.2.  
>   I'm not sure precisely what it is. 

|  The change would be to put the latest two commits from
|  
|  https://github.com/nh2/ghc/commits/ghc-7.10.1-release-srcloc-ip
|  
|  on top of 7.10 branch.

Aha.  Now you say "the top two commits" I can see what you are talking about, namely the entire CallStack feature.  Specifically
https://github.com/nh2/ghc/commit/5cd10eb4b6eef06f53bbdcfae4b9f8f505ea522c


|  > * The change is an API change, which we do not normally make.
|  >   But you argue that it will harm no one (why are you so sure?),
|  >   and you are confident that it will not break anything (why?)
|  
|  The API change is precisely at this commit.
|  
|  https://github.com/nh2/ghc/commit/d4e476817a7df449b71a2acc515b4d0fa6f8
|  9b6b

It's much more than that!  The main commit (the one you want) adds `CallStack`, `getCallStack` etc, as well as special treatment for implicit parameters of that type.

That widens the API, which is certainly less disruptive than changing it.


Let's see what Ben and Herbert have to say.

Do any other ghc-devs, or Mark or Michael, have an opinion?

Simon

|  
|  I never said that it will not harm anyone or that it will not break
|  anything. I only said that it is a small price to pay.
|  
|  The change is your own in the typechecker, a two SrcSpans turning into
|  RealSrcSpans. I think we can agree at least that it is not a large
|  change. I understand if it gets rejected on this basis regardless, I
|  am merely trying my chances.
|  
|  > * FP Complete and Zalora specifically want this change.
|  >   Zalora = you?  Who at FP Complete wants the change?
|  
|  Some of us at Zalora, yes. This thread of messages was created my FP
|  Complete and they did the backport. They even say that they'll include
|  the changes into their custom build of GHC and ship that to their
|  customers. So it seems like they'd want the change. The very first
|  message in this thread is Michael Snoyman asking if such backport
|  could make it into 7.10.
|  
|  > Ben and Herbert are the guys you have to persuade if you really want
|  this.
|  > I suspect it'll be more effective to open a ticket, milestoned for
|  > 7.10.2, with specifics on it.  Email gets lost; tickets don't.
|  
|  Noted, thanks.
|  
|  > Thanks
|  >
|  > Simon
|  >
|  >
|  > | -----Original Message-----
|  > | From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of
|  > | Mateusz Kowalczyk
|  > | Sent: 06 July 2015 17:40
|  > | To: ghc-devs at haskell.org
|  > | Subject: Re: Backporting srcLoc to the GHC 7.10 branch
|  > |
|  > | On 04/20/2015 05:29 PM, Niklas Hambüchen wrote:
|  > | > Hello everybody,
|  > | >
|  > | > I'm glad to announce that I performed the suggested backporting
|  as
|  > | > part
|  > | of
|  > | > my work for FP Complete!
|  > | >
|  > | > With the help of Eric (thanks for your support in #ghc!) we now
|  > | > have
|  > | this
|  > | > patch for 7.10 and 7.8.
|  > | >
|  > | > As promised, here are the commits:
|  > | >
|  > | > * https://github.com/nh2/ghc/commits/ghc-7.10.1-release-srcloc-
|  ip
|  > | > * https://github.com/nh2/ghc/commits/ghc-7.8.4-release-srcloc-ip
|  > | >
|  > | > You can see in the history that I only needed to cherry-pick
|  "Make
|  > | > the location in TcLclEnv and CtLoc into a RealSrcSpan" as a
|  > | > dependent
|  > | commit,
|  > | > so the changes beyond the actual feature are fairly minimal.
|  > | >
|  > | > For 7.8, I had to do a little more cleanup, see the "Use
|  wrapIPTc
|  > | instead
|  > | > of coercionToTcCoercion on wrapIP" commit.
|  > | >
|  > | > Regarding the commit of the feature itself, I had to do quite
|  some
|  > | merge
|  > | > resolution, especially due to the (lack of) the -fwarn-
|  redundant-
|  > | > constraints patch https://github.com/nh2/ghc/commit/32973bf3
|  > | > (alias
|  > | "but it
|  > | > was Christmas, so I did some recreational programming that went
|  > | > much further").
|  > | > However, the type checker had a strong opinion of what the right
|  > | > merge decision was, at least for the 7.10 backport; for 7.8
|  there
|  > | > was an ambiguity (whether to return `Nothing` or `Just` in
|  > | > `interactDict`),
|  > | which
|  > | > was resolved with Eric's help.
|  > | >
|  > | > Please be invited to review the two commits.
|  > | >
|  > | > We would like to make 7.8 and 7.10 binaries with this feature
|  > | > available
|  > | as
|  > | > well, and will do so after getting a review!
|  > | >
|  > | > Niklas
|  > | >
|  > | > _______________________________________________
|  > | > ghc-devs mailing list
|  > | > ghc-devs at haskell.org
|  > | > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
|  > | >
|  > |
|  > | Hi all,
|  > |
|  > | In light of how small the actual backported changes are, I wonder
|  if
|  > | it would be possible to include it in 7.10.2 (or .3 if we're doing
|  > | that). I know that at first it was rejected but it was rejected
|  > | before the diff existed. In practice, the only API change was two
|  > | SrcSpans changing into RealSrcSpans inside the typechecker. Seems
|  > | like a small price, considering two commercial companies that use
|  > | Haskell (FP Complete and I'm here on behalf of Zalora's internal
|  team) would love to see it.
|  > |
|  > | I know SPJ suggested perhaps lobbying for early 7.12 instead but
|  how
|  > | early could we possibly lobby for it considering 7.10.2 is not
|  even
|  > | out of the door yet?
|  > |
|  > | Niklas, do you also have a diff on top of 7.10.2 (rc-1/2)? I'd be
|  > | interested in seeing that too.
|  > |
|  > | --
|  > | Mateusz K.
|  > | _______________________________________________
|  > | ghc-devs mailing list
|  > | ghc-devs at haskell.org
|  > | http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
|  >
|  
|  
|  --
|  Mateusz K.


More information about the ghc-devs mailing list