carbon-lang
carbon-lang copied to clipboard
Make proposal for semicolons
End-of-statement semicolons were the topic of leads question https://github.com/carbon-language/carbon-lang/issues/1924. The question was resolved, and the comment https://github.com/carbon-language/carbon-lang/issues/1924#issuecomment-1207586109 provides their decision.
Because the question was asked independent of a proposal, a standard proposal is still needed for evolution review, essentially translating the issue into a proposed solution with rationale, alternatives considered, etc. This issue is to track the proposal need.
I'd love to get more involved with the proposal process, so I would like to give this a try :smiley:
Sure, please feel free to pick this up -- I've assigned it to you to help track. Note on #1999 there's a question if we should combine this more generally with statement blocks if you want to grab both together, because it's all related (right now, the main place for semicolons being at the end of statements).
Note, I don't think explicit examples came up on #1924 or #1739, but it'd probably help to give examples where line ending placement may be ambiguous if inferred (particularly when both interpretations lead to valid code). Going over how a few other languages have implemented this and the trade-offs in alternatives would help flesh out semicolons in particular; JS was noted along with a blog link from the designer, but Python and Swift would probably also offer good background as different approaches.
Been quite busy lately but I just wanted to post an update.
I've been working on a draft in a google doc and hope to have an initial version up for review the coming week or so :)
FWIW, sharing the google doc first in Discord is always a great way to get early comments and easy suggestions / collaboration. May be worth pinging people directly.
We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please comment or remove the inactive label. The long term label can also be added for issues which are expected to take time.
This issue is labeled inactive because the last activity was over 90 days ago.
I'm going to pick this up to get the rationale formally adopted, just because it came up again recently.