mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
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>
This commit is contained in:
committed by
GitHub
co-authored by
Jon Meow
parent
4e81e25877
commit
3bd756c773
@@ -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 -->
|
||||
|
||||
@@ -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.
|
||||
Reference in New Issue
Block a user