GHC Exactprint merge process

I have been running a branch in !2418[1] for just over a year to migrate the ghc-exactprint functionality directly into the GHC AST[2], and I am now satisfied that it is able to provide all the same functionality as the original. This is one of the features intended for the impending 9.2.1 release, and it needs to be reviewed to be able to land. But the change is huge, as it mechanically affects most files that interact with the GHC AST. So I have split out a precursor !5158 [3] with just the new types that are used to represent the annotations, so it can be a focal point for discussion. It is ready for review, please comment if you have time and interest. Regards Alan [1] https://gitlab.haskell.org/ghc/ghc/-/merge_requests/2418 [2] https://gitlab.haskell.org/ghc/ghc/-/issues/17638 [3] https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5158

"Alan & Kim Zimmerman"
I have been running a branch in !2418[1] for just over a year to migrate the ghc-exactprint functionality directly into the GHC AST[2], and I am now satisfied that it is able to provide all the same functionality as the original.
This is one of the features intended for the impending 9.2.1 release, and it needs to be reviewed to be able to land. But the change is huge, as it mechanically affects most files that interact with the GHC AST.
So I have split out a precursor !5158 [3] with just the new types that are used to represent the annotations, so it can be a focal point for discussion.
It is ready for review, please comment if you have time and interest.
Thanks Alan! I'll have a look. Cheers, - Ben

I've started a review, but sent along what I had when dinner was ready. Hopefully more later, but don't wait up for me! Incidentally: this is a monstrous patch, and so there is a strong incentive just to get on with it without resolving all these quibbles. I won't stand in your way on that front -- it might be better to improve this after it lands. However, I also see quite a few TODO:AZ notes. Are you intending to fix these before landing? Or do you think it's OK to merge first and then return? High level piece: I'm in support of this direction of movement -- I just want to make sure that the new code is understandable and maintainable. Thanks, Richard
On Mar 6, 2021, at 12:39 PM, Alan & Kim Zimmerman
wrote: I have been running a branch in !2418[1] for just over a year to migrate the ghc-exactprint functionality directly into the GHC AST[2], and I am now satisfied that it is able to provide all the same functionality as the original.
This is one of the features intended for the impending 9.2.1 release, and it needs to be reviewed to be able to land. But the change is huge, as it mechanically affects most files that interact with the GHC AST.
So I have split out a precursor !5158 [3] with just the new types that are used to represent the annotations, so it can be a focal point for discussion.
It is ready for review, please comment if you have time and interest.
Regards Alan
[1] https://gitlab.haskell.org/ghc/ghc/-/merge_requests/2418 https://gitlab.haskell.org/ghc/ghc/-/merge_requests/2418 [2] https://gitlab.haskell.org/ghc/ghc/-/issues/17638 https://gitlab.haskell.org/ghc/ghc/-/issues/17638 [3] https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5158 https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5158_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

After a consult with Simon, I've updated the relevant wiki page at https://gitlab.haskell.org/ghc/ghc/-/wikis/api-annotations with a sketch of a design description for this new feature, along with lots of questions. Both Simon and I agree that it may be more sensible to merge first and ask questions later, but we do think the design could be tightened in a few places. There are no notifications etc on wiki page updates, so it might be good to also correspond via email when updates take place. Richard
On Mar 11, 2021, at 6:48 PM, Richard Eisenberg
wrote: I've started a review, but sent along what I had when dinner was ready. Hopefully more later, but don't wait up for me!
Incidentally: this is a monstrous patch, and so there is a strong incentive just to get on with it without resolving all these quibbles. I won't stand in your way on that front -- it might be better to improve this after it lands. However, I also see quite a few TODO:AZ notes. Are you intending to fix these before landing? Or do you think it's OK to merge first and then return?
High level piece: I'm in support of this direction of movement -- I just want to make sure that the new code is understandable and maintainable.
Thanks, Richard
On Mar 6, 2021, at 12:39 PM, Alan & Kim Zimmerman
mailto:alan.zimm@gmail.com> wrote: I have been running a branch in !2418[1] for just over a year to migrate the ghc-exactprint functionality directly into the GHC AST[2], and I am now satisfied that it is able to provide all the same functionality as the original.
This is one of the features intended for the impending 9.2.1 release, and it needs to be reviewed to be able to land. But the change is huge, as it mechanically affects most files that interact with the GHC AST.
So I have split out a precursor !5158 [3] with just the new types that are used to represent the annotations, so it can be a focal point for discussion.
It is ready for review, please comment if you have time and interest.
Regards Alan
[1] https://gitlab.haskell.org/ghc/ghc/-/merge_requests/2418 https://gitlab.haskell.org/ghc/ghc/-/merge_requests/2418 [2] https://gitlab.haskell.org/ghc/ghc/-/issues/17638 https://gitlab.haskell.org/ghc/ghc/-/issues/17638 [3] https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5158 https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5158_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org mailto:ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Thanks Richard
This MR is a huge change, and hard to digest. But it is also a step
function, in that we cannot have the old way of using API Annotations for
exact printing and the new way at the same time.
So I have focused on making sure that it can actually do what I believe is
required, which I am satisfied it now does. Admittedly this needs to be
more clearly defined. I am happy to do that, and to tweak the
implementation based on feedback. There are plenty of rough spots, as I
have been working on the big picture at the expense of polished details.
And I do appreciate the willingness to merge now and then clean up, this
will make my life a lot simpler, I have rebased 50 odd times already.
Regards
Alan
On Fri, 12 Mar 2021, 22:21 Richard Eisenberg,
After a consult with Simon, I've updated the relevant wiki page at https://gitlab.haskell.org/ghc/ghc/-/wikis/api-annotations with a sketch of a design description for this new feature, along with lots of questions. Both Simon and I agree that it may be more sensible to merge first and ask questions later, but we do think the design could be tightened in a few places.
There are no notifications etc on wiki page updates, so it might be good to also correspond via email when updates take place.
Richard
On Mar 11, 2021, at 6:48 PM, Richard Eisenberg
wrote: I've started a review, but sent along what I had when dinner was ready. Hopefully more later, but don't wait up for me!
Incidentally: this is a monstrous patch, and so there is a strong incentive just to get on with it without resolving all these quibbles. I won't stand in your way on that front -- it might be better to improve this after it lands. However, I also see quite a few TODO:AZ notes. Are you intending to fix these before landing? Or do you think it's OK to merge first and then return?
High level piece: I'm in support of this direction of movement -- I just want to make sure that the new code is understandable and maintainable.
Thanks, Richard
On Mar 6, 2021, at 12:39 PM, Alan & Kim Zimmerman
wrote: I have been running a branch in !2418[1] for just over a year to migrate the ghc-exactprint functionality directly into the GHC AST[2], and I am now satisfied that it is able to provide all the same functionality as the original.
This is one of the features intended for the impending 9.2.1 release, and it needs to be reviewed to be able to land. But the change is huge, as it mechanically affects most files that interact with the GHC AST.
So I have split out a precursor !5158 [3] with just the new types that are used to represent the annotations, so it can be a focal point for discussion.
It is ready for review, please comment if you have time and interest.
Regards Alan
[1] https://gitlab.haskell.org/ghc/ghc/-/merge_requests/2418 [2] https://gitlab.haskell.org/ghc/ghc/-/issues/17638 [3] https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5158 _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
participants (3)
-
Alan & Kim Zimmerman
-
Ben Gamari
-
Richard Eisenberg