Original Translation
2881
(Contributed by Roger D. Serwy; :issue:`5150`.)
2882
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.
2883
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 :attr:`sys.int_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::
2884
>>> import sys >>> sys.int_info sys.int_info(bits_per_digit=30, sizeof_digit=4)
2885
The :cfunc:`PyLong_AsUnsignedLongLong()` function now handles a negative *pylong* by raising :exc:`OverflowError` instead of :exc:`TypeError`.
2886
(Contributed by Mark Dickinson and Lisandro Dalcrin; :issue:`5175`.)
2887
Deprecated :cfunc:`PyNumber_Int`. Use :cfunc:`PyNumber_Long` instead.
2888
(Contributed by Mark Dickinson; :issue:`4910`.)
2889
Added a new :cfunc:`PyOS_string_to_double` function to replace the deprecated functions :cfunc:`PyOS_ascii_strtod` and :cfunc:`PyOS_ascii_atof`.
2890
(Contributed by Mark Dickinson; :issue:`5914`.)