diff --git a/proposals/README.md b/proposals/README.md index 2bdf116092ce..61e3bcf2bc21 100644 --- a/proposals/README.md +++ b/proposals/README.md @@ -39,6 +39,7 @@ request: - [0120 - Add idiomatic code performance and developer-facing docs to goals](p0120.md) - [Decision](p0120_decision.md) - [0143 - Numeric literals](p0143.md) + - [Decision](p0143_decision.md) - [0149 - Change documentation style guide](p0149.md) diff --git a/proposals/p0143_decision.md b/proposals/p0143_decision.md new file mode 100644 index 000000000000..96677cecbd9b --- /dev/null +++ b/proposals/p0143_decision.md @@ -0,0 +1,63 @@ +# Decision for: Numeric literals + + + +Proposal accepted on 2020-09-15 + +Affirming: + +- [austern](https://github.com/austern) +- [chandlerc](https://github.com/chandlerc) +- [geoffromer](https://github.com/geoffromer) +- [gribozavr](https://github.com/gribozavr) +- [josh11b](https://github.com/josh11b) +- [zygoloid](https://github.com/zygoloid) + +Abstaining: + +- [noncombatant](https://github.com/noncombatant) +- [tituswinters](https://github.com/tituswinters) + +## Open questions + +Placement restrictions of digit separators: + +- The core team had consensus for the proposed restricted placement rules. + +Use `_` or `'` as the digit separator character: + +- The core team deferred this decision to the painter. +- The painter selected `_`. + +## Rationale + +The proposal provides a syntax that is sufficiently close to that used both by +C++ and many other languages to be very familiar. However, it selects a +reasonably minimal subset of the syntaxes. This minimal approach provides +benefits directly in line with both the simplicity and readability goals of +Carbon: + +- Reduces unnecessary choices for programmers. +- Simplifies the syntax rules of the language. +- Improves consistency of written Carbon code. + +That said, it still provides sufficient variations to address important use +cases for the goal of not leaving room for a lower level language: + +- Hexadecimal and binary integer literals. +- Scientific notation floating point literals. +- Hexadecimal (scientific) floating point literals. + +### Painter rationale + +The primary aesthetic benefit of `'` to the painter is consistency with C++. +However, its rare usage in C++ at this point reduces this advantage to a very +small one, while there is broad convergence amongst other languages around `_`. +The choice here has no risk of significant meaning or building up patterns of +reading for users that might be disrupted by the change, and so it seems +reasonable to simply converge with other languages to end up in the less +surprising and more conventional syntax space.