<div dir="ltr"><div dir="ltr">On Tue, 31 Mar 2020 at 11:08, Simon Peyton Jones via ghc-steering-committee <<a href="mailto:ghc-steering-committee@haskell.org">ghc-steering-committee@haskell.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Thanks Joachim. <br>
<br>
Everyone: I have extended our choices document with a draft post to the Github thread.<br>
<a href="https://docs.google.com/document/d/1MgovHRUUNjbuM4nM8qEe308MfbAYRh2Q8PxFHl7iY74/edit?usp=sharing" rel="noreferrer" target="_blank">https://docs.google.com/document/d/1MgovHRUUNjbuM4nM8qEe308MfbAYRh2Q8PxFHl7iY74/edit?usp=sharing</a><br>
<br>
Can you review it, for both tone and content? You have edit permission, so by all means improve the wording. Look for omissions. I want to bring the discussion to a close, not re-ignite further debate, but be respectful of those who disagree.<br></blockquote><div><br></div><div>Before we accept the proposal I think we should have a precise description of the changes to the syntax. For example, we don't address the question of whether a field name can be an operator or not. We explicitly left these questions until later; wouldn't now be the right time to address them?</div><div><br></div><div>Also worth bringing up at this point, since we landed on C2a: Note 5 says <br></div><div><br></div><div style="margin-left:40px"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap" id="gmail-docs-internal-guid-589ae4f8-7fff-3cec-bd66-f25989f1be63">One mechanism for handling this is </span><a href="https://github.com/shayne-fletcher-da/ghc-proposals/blob/record-dot-syntax/proposals/0000-record-dot-syntax.md#2322-parsing-of-field-selections" style="text-decoration:none"><span style="font-size:11pt;font-family:Arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">given in the proposal</span></a><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">. It involves no changes to the lexer, but instead an adjacency test one production of the parser.</span></div><div><br></div><div>I'm not sure about this as a language design. (1) it's an ad-hoc side-condition that can't be expressed in the lexical or context-free grammar (however there's precedent for this kind of thing in the form of the layout rule of course), and (2) it's quite a costly feature in terms of implementation effort to add to the language, because your AST needs complete and accurate source-span information. We can do it in GHC, and haskell-src-exts can do it nowadays, but earlier versions of haskell-src-exts before complete SrcSpanInfo was added wouldn't have been able to implement this rule. Arguably we're only accepting this as a GHC extension and not a Haskell extension in general, but as we know GHC is the testbed for future language extensions, so it's a good time to consider these issues.<br></div><div><br></div><div>The alternative of course is to go with some variant of <br></div><div><br><ol style="margin-top:0px;margin-bottom:0px" id="gmail-docs-internal-guid-dc8280f6-7fff-fac5-cb3b-60a7ca215b98"><ul style="margin-top:0px;margin-bottom:0px"><li dir="ltr" style="list-style-type:circle;font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap">Use the “tight infix” mechanism from </span><a href="https://github.com/ghc-proposals/ghc-proposals/pull/229" style="text-decoration:none"><span style="font-size:11pt;font-family:Arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">this (accepted) GHC proposal</span></a></p></li></ul></ol></div><div><br></div><div>which is also an ad-hoc side-condition sadly, but could be implemented in the lexer. Nevertheless, all this needs to be nailed down before the proposal can be accepted, IMO.</div><div><br></div><div>Cheers</div><div>Simon</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Could you do so this week, by end Friday? I propose to leave the votes recorded there, but when posting I'll move the post from the document (deleting it from there) to GitHub.<br>
<br>
I'm cc'ing Neil and Shayne, the authors. Neil, Shayne: I think (and desperately hope!) you'll be content with this outcome. Can you review my draft post too?<br>
<br>
Simon<br>
<br>
| -----Original Message-----<br>
| From: ghc-steering-committee <<a href="mailto:ghc-steering-committee-bounces@haskell.org" target="_blank">ghc-steering-committee-bounces@haskell.org</a>><br>
| On Behalf Of Joachim Breitner<br>
| Sent: 30 March 2020 17:48<br>
| To: ghc-steering-committee <<a href="mailto:ghc-steering-committee@haskell.org" target="_blank">ghc-steering-committee@haskell.org</a>><br>
| Subject: Re: [ghc-steering-committee] Record dot syntax: vote results<br>
| <br>
| Dear Committe,<br>
| <br>
| thanks all for voting. The ranking of votes is now<br>
| <br>
| C2a > C2b > C4 > C1 > C7 > C6 > C3 > C5<br>
| <br>
| In particular C2a beats every other options by 7:4 or more, and is<br>
| therefore the result of this poll.<br>
| <br>
| You can see more statistics at<br>
| <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.cond" rel="noreferrer" target="_blank">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.cond</a><br>
| <a href="http://orcet.vote" rel="noreferrer" target="_blank">orcet.vote</a>%2FVote%2FAB23CE70AC%2F&data=02%7C01%7Csimonpj%40microsoft.c<br>
| om%7Ce27e9c8f455b436e2bee08d7d4ca3538%7C72f988bf86f141af91ab2d7cd011db47%7<br>
| C1%7C0%7C637211837260982595&sdata=LLWCxVjXxyLqcJUZ9iMgB%2B5QYGMuHFzJga<br>
| u9agTakiQ%3D&reserved=0<br>
| <br>
| So, does this conclude this saga?<br>
| <br>
| Cheers,<br>
| Joachim<br>
| <br>
| --<br>
| Joachim Breitner<br>
| <a href="mailto:mail@joachim-breitner.de" target="_blank">mail@joachim-breitner.de</a><br>
| <br>
| <a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.joach" rel="noreferrer" target="_blank">https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.joach</a><br>
| im-<br>
| <a href="http://breitner.de" rel="noreferrer" target="_blank">breitner.de</a>%2F&data=02%7C01%7Csimonpj%<a href="http://40microsoft.com" rel="noreferrer" target="_blank">40microsoft.com</a>%7Ce27e9c8f455b43<br>
| 6e2bee08d7d4ca3538%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6372118372<br>
| 60982595&sdata=GE%2BBYN7rA7zWgwuKlArv4PR%2Fm3IlmZ7PqWbGpgXUyms%3D&<br>
| reserved=0<br>
| <br>
| <br>
| _______________________________________________<br>
| ghc-steering-committee mailing list<br>
| <a href="mailto:ghc-steering-committee@haskell.org" target="_blank">ghc-steering-committee@haskell.org</a><br>
| <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.has" rel="noreferrer" target="_blank">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.has</a><br>
| <a href="http://kell.org" rel="noreferrer" target="_blank">kell.org</a>%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-steering-<br>
| committee&data=02%7C01%7Csimonpj%<a href="http://40microsoft.com" rel="noreferrer" target="_blank">40microsoft.com</a>%7Ce27e9c8f455b436e2be<br>
| e08d7d4ca3538%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637211837260982<br>
| 595&sdata=nEx7qjYqnST1TA74HRkgK4O1zW3tvqpM4Dx4ECCig7I%3D&reserved=<br>
| 0<br>
_______________________________________________<br>
ghc-steering-committee mailing list<br>
<a href="mailto:ghc-steering-committee@haskell.org" target="_blank">ghc-steering-committee@haskell.org</a><br>
<a href="https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee" rel="noreferrer" target="_blank">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a><br>
</blockquote></div></div>