Просмотр исходного кода

Decision for p0143 - Numeric literals (#167)

Adds a decision and rationale for proposal #143.

Co-authored-by: Jon Meow <46229924+jonmeow@users.noreply.github.com>
Chandler Carruth 5 лет назад
Родитель
Сommit
3bd756c773
2 измененных файлов с 64 добавлено и 0 удалено
  1. 1 0
      proposals/README.md
  2. 63 0
      proposals/p0143_decision.md

+ 1 - 0
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)
 
 <!-- endproposals -->

+ 63 - 0
proposals/p0143_decision.md

@@ -0,0 +1,63 @@
+# Decision for: Numeric literals
+
+<!--
+Part of the Carbon Language project, under the Apache License v2.0 with LLVM
+Exceptions. See /LICENSE for license information.
+SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+-->
+
+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.