[ghc-steering-committee] Modifiers and #512: NoFieldSelectors

Simon Peyton Jones simon.peytonjones at gmail.com
Sat Jan 13 21:53:21 UTC 2024


I agree with this.

Simon

On Sat, 13 Jan 2024 at 21:19, Adam Gundry <adam at well-typed.com> wrote:

> It's certainly unfortunate that this proposal has been stalled for so long.
>
> I think there is rough consensus that modifiers-style syntax would be
> preferable to the pragma syntax suggested in the proposal. That's
> slightly different from requiring Modifiers in its full glory to be
> implemented prior to this proposal, because one could implement the
> proposal more directly (e.g. having the parser recognise
> %NoFieldSelectors just as it could recognise {-# NoFieldSelectors #-}).
> Thus we don't need a synchronisation point: if necessary the amended
> NoFieldSelectors proposal can be implemented first and then the
> Modifiers implementation can generalise it.
>
> So I'd suggest we "conditionally accept" the proposal, on the basis that
> it is amended to use modifier syntax, giving a clear signal to the
> author that the proposal isn't going to get stuck again. By
> "conditionally accept" I mean we wouldn't insist on another full round
> of committee review once the revisions are made.
>
> Also, given the delays, I think it would be best if one of us offers to
> take care of the work of revising the proposal, rather than requiring
> the author to do it (but of course asking their opinion on this proposed
> approach).
>
> Does this sound reasonable? Some of this may be what Vlad means by
> "Revise the proposal to use modifiers-based syntax and then accept", I'm
> not sure.
>
> Cheers,
>
> Adam
>
>
> On 18/12/2023 08:59, Arnaud Spiwack wrote:
> > Here's my thought.
> >
> > If the modifiers implementation arrives before #512 is implemented, then
> > it's fair to amend the proposal. If the modifiers implementation arrives
> > after #512 is implemented, then it will be time to amend the proposal,
> > add the modifier version of #512, and deprecate the pragma. If there
> > hasn't been a release of the pragma version, then it can be deleted
> > entirely. I don't really feel there needs to be additional
> > synchronisation points imposed onto contributors.
> >
> > On Thu, 14 Dec 2023 at 13:35, Richard Eisenberg <rae at richarde.dev
> > <mailto:rae at richarde.dev>> wrote:
> >
> >     Concur. Let's boldly go into the future with modifiers. :)
> >
> >     Thanks, Vlad.
> >
> >     Richard
> >
> >>     On Dec 11, 2023, at 4:31 PM, Simon Peyton Jones
> >>     <simon.peytonjones at gmail.com <mailto:simon.peytonjones at gmail.com>>
> >>     wrote:
> >>
> >>         If we choose to revise, I volunteer to implement Modifiers in
> >>         time for GHC 9.12
> >>
> >>
> >>     Like Joachim, this changes the situation a lot.  Thank you for
> >>     offering.  You are an excellent implementor, and if you say you'll
> >>     do it, I'm sure you will.  Don't forget that, to be useful for the
> >>     author, the modifiers need to be in Template-Haskell-generated
> >>     syntax too.
> >>
> >>     With that in mind:
> >>
> >>     * [ x] Revise the proposal to use modifiers-based syntax and then
> >>     accept
> >>
> >>     I'm sure the author will be happy to use modifier syntax -- he
> >>     just needs to be sure that doing so won't block the feature and
> >>     your offer gives him that surety.
> >>
> >>     Simon
> >>
> >>     On Mon, 11 Dec 2023 at 12:40, Vladislav Zavialov
> >>     <vlad.z.4096 at gmail.com <mailto:vlad.z.4096 at gmail.com>> wrote:
> >>
> >>         Dear Committee Members,
> >>
> >>         Our previous discussion regarding #512 was inconclusive.
> >>
> >>         Thread 1:
> >>
> https://mail.haskell.org/pipermail/ghc-steering-committee/2022-November/002991.html
> <
> https://mail.haskell.org/pipermail/ghc-steering-committee/2022-November/002991.html
> >
> >>         Thread 2:
> >>
> https://mail.haskell.org/pipermail/ghc-steering-committee/2022-December/003015.html
> <
> https://mail.haskell.org/pipermail/ghc-steering-committee/2022-December/003015.html
> >
> >>
> >>         #512 is the proposal that introduces per-declaration,
> >>         per-constructor, and per-field NoFieldSelectors annotations.
> >>
> >>         I'm not quite sure how to summarize the discussion because
> >>         everyone seems to have a unique view. But it all revolves
> >>         around a syntactic issue: should the proposal use pragma-based
> >>         syntax or modifiers-based syntax?
> >>
> >>         Here are two facts to inform your opinion:
> >>
> >>         1. The Modifiers proposal is accepted, and it makes sense to
> >>         use it for the proposed feature
> >>         2. The Modifiers proposal is, however, unimplemented
> >>
> >>         So at the moment #512 says that we'd first introduce the
> >>         pragma-based syntax, and when Modifiers are implemented we
> >>         could deprecate the pragma-based syntax in favor of Modifiers.
> >>
> >>         I am *strongly* opposed to introducing a feature that we know
> >>         is destined for deprecation. But not everyone shares this
> >>         attitude, apparently, so let's vote.
> >>
> >>         Here are the options. Select all that you find acceptable
> >>         (multiple-choice):
> >>         * [ ] Accept the proposal with pragma-based syntax, then
> >>         deprecate it and switch to modifiers-based syntax
> >>         * [ ] Accept the proposal with pragma-based syntax, do not
> >>         switch to modifiers-based syntax
> >>         * [ ] Revise the proposal to use modifiers-based syntax and
> >>         then accept
> >>         * [ ] Reject the proposal regardless of syntax
> >>
> >>         Before you vote, let me try to sway you towards the "revise"
> >>         option. If we choose to revise, I volunteer to implement
> >>         Modifiers in time for GHC 9.12. I believe Modifiers are a
> >>         splendid idea and I envision many good uses for them.
> >>
> >>         Vlad
>
>
> --
> Adam Gundry, Haskell Consultant
> Well-Typed LLP, https://www.well-typed.com/
>
> Registered in England & Wales, OC335890
> 27 Old Gloucester Street, London WC1N 3AX, England
>
> _______________________________________________
> ghc-steering-committee mailing list
> ghc-steering-committee at haskell.org
> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-steering-committee/attachments/20240113/9f02ae2c/attachment.html>


More information about the ghc-steering-committee mailing list