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
This commit is contained in:
Mark Dickinson 2009-03-20 16:00:49 +00:00
parent 0ef2cf6126
commit d72c7b671e
3 changed files with 27 additions and 1 deletions

View File

@ -429,6 +429,8 @@ always available.
| | represent a digit | | | represent a digit |
+-------------------------+----------------------------------------------+ +-------------------------+----------------------------------------------+
.. versionadded:: 3.1
.. function:: intern(string) .. function:: intern(string)

View File

@ -86,6 +86,30 @@ Some smaller changes made to the core Python language are:
(Contributed by Fredrik Johansson and Victor Stinner; :issue:`3439`.) (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`.)
.. ====================================================================== .. ======================================================================

View File

@ -67,7 +67,7 @@ typedef long stwodigits; /* signed variant of twodigits */
#define PyLong_MASK ((digit)(PyLong_BASE - 1)) #define PyLong_MASK ((digit)(PyLong_BASE - 1))
#if PyLong_SHIFT % 5 != 0 #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 #endif
/* Long integer representation. /* Long integer representation.