Original Translation
2877
Unpickling now interns the attribute names of pickled objects. This saves memory and allows pickles to be smaller.
2878
(Contributed by Jake McGuire and Antoine Pitrou; :issue:`5084`.)
2879
IDLE
2880
IDLE's format menu now provides an option to strip trailing whitespace from a source file.
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`.)