]> Cypherpunks repositories - gostls13.git/commit
spec: require 16 bit minimum exponent in constants rather than 32
authorRobert Griesemer <gri@golang.org>
Thu, 10 Dec 2015 19:18:41 +0000 (11:18 -0800)
committerRobert Griesemer <gri@golang.org>
Tue, 18 Oct 2016 22:36:50 +0000 (22:36 +0000)
commit8fbfdad28145bfaad2fa2082336128944d5a3543
tree0f701aad6f23c84805f49bf5817586b556232491
parent3f2cb493e5d2a2c2beac9f75a3717a56e294d38a
spec: require 16 bit minimum exponent in constants rather than 32

A 16bit binary exponent permits a constant range covering roughly the range
from 7e-9865 to 7e9863 which is more than enough for any practical and
hypothetical constant arithmetic.

Furthermore, until recently cmd/compile could not handle very large exponents
correctly anyway; i.e., the chance that any real programs (but for tests that
explore corner cases) are affected are close to zero.

Finally, restricting the minimum supported range significantly reduces the
implementation complexity in an area that hardly matters in reality for new
or alternative spec-compliant implementations that don't or cannot rely on
pre-existing arbitratry precision arithmetic packages that support a 32bit
exponent range.

This is technically a language change but for the reasons mentioned above
this is unlikely to affect any real programs, and certainly not programs
compiled with the gc or gccgo compilers as they currently support up to
32bit exponents.

Fixes #13572.

Change-Id: I970f919c57fc82c0175844364cf48ea335f17d39
Reviewed-on: https://go-review.googlesource.com/17711
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
doc/go_spec.html