summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2009-03-20 16:00:49 (GMT)
committerMark Dickinson <dickinsm@gmail.com>2009-03-20 16:00:49 (GMT)
commitd72c7b671e2d010ea39a8686f89c83612d2d3a76 (patch)
treed720a29ccca22a761e6310f2e4f25e57f6b03106
parent0ef2cf6126f47b9a4ef8f8ff93cafed487b67363 (diff)
downloadcpython-d72c7b671e2d010ea39a8686f89c83612d2d3a76.zip
cpython-d72c7b671e2d010ea39a8686f89c83612d2d3a76.tar.gz
cpython-d72c7b671e2d010ea39a8686f89c83612d2d3a76.tar.bz2
Add ..versionadded for sys.int_info, update py3k version of
whatsnew/2.7.rst to keep it in sync with the trunk version, and replace SHIFT with PyLong_SHIFT in #error message
-rw-r--r--Doc/library/sys.rst2
-rw-r--r--Doc/whatsnew/2.7.rst24
-rw-r--r--Include/longintrepr.h2
3 files changed, 27 insertions, 1 deletions
diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst
index 091b4d6..632e550 100644
--- a/Doc/library/sys.rst
+++ b/Doc/library/sys.rst
@@ -429,6 +429,8 @@ always available.
| | represent a digit |
+-------------------------+----------------------------------------------+
+ .. versionadded:: 3.1
+
.. function:: intern(string)
diff --git a/Doc/whatsnew/2.7.rst b/Doc/whatsnew/2.7.rst
index 8037b13..e44a42b 100644
--- a/Doc/whatsnew/2.7.rst
+++ b/Doc/whatsnew/2.7.rst
@@ -86,6 +86,30 @@ Some smaller changes made to the core Python language are:
(Contributed by Fredrik Johansson and Victor Stinner; :issue:`3439`.)
+* Integers are now stored internally either in base 2**15 or in base
+ 2**30, the base being determined at build time. Previously, they
+ were always stored in base 2**15. Using base 2**30 gives
+ significant performance improvements on 64-bit machines, but
+ benchmark results on 32-bit machines have been mixed. Therefore,
+ the default is to use base 2**30 on 64-bit machines and base 2**15
+ on 32-bit machines; on Unix, there's a new configure option
+ --enable-big-digits that can be used to override this default.
+
+ Apart from the performance improvements this change should be
+ invisible to end users, with one exception: for testing and
+ debugging purposes there's a new structseq ``sys.long_info`` that
+ provides information about the internal format, giving the number of
+ bits per digit and the size in bytes of the C type used to store
+ each digit::
+
+ >>> import sys
+ >>> sys.long_info
+ sys.long_info(bits_per_digit=30, sizeof_digit=4)
+
+
+ (Contributed by Mark Dickinson; :issue:`4258`.)
+
+
.. ======================================================================
diff --git a/Include/longintrepr.h b/Include/longintrepr.h
index 144d04b..dd0933a 100644
--- a/Include/longintrepr.h
+++ b/Include/longintrepr.h
@@ -67,7 +67,7 @@ typedef long stwodigits; /* signed variant of twodigits */
#define PyLong_MASK ((digit)(PyLong_BASE - 1))
#if PyLong_SHIFT % 5 != 0
-#error "longobject.c requires that SHIFT be divisible by 5"
+#error "longobject.c requires that PyLong_SHIFT be divisible by 5"
#endif
/* Long integer representation.