[Python-checkins] CVS: python/dist/src/Misc NEWS,1.182,1.183

Tim Peters tim_one@users.sourceforge.net
Mon, 11 Jun 2001 18:22:24 -0700


Update of /cvsroot/python/python/dist/src/Misc
In directory usw-pr-cvs1:/tmp/cvs-serv15300/python/dist/src/Misc

Modified Files:
	NEWS 
Log Message:
Added q/Q standard (x-platform 8-byte ints) mode in struct module.
This completes the q/Q project.

longobject.c _PyLong_AsByteArray:  The original code had a gross bug:
the most-significant Python digit doesn't necessarily have SHIFT
significant bits, and you really need to count how many copies of the sign
bit it has else spurious overflow errors result.

test_struct.py:  This now does exhaustive std q/Q testing at, and on both
sides of, all relevant power-of-2 boundaries, both positive and negative.

NEWS:  Added brief dict news while I was at it.


Index: NEWS
===================================================================
RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v
retrieving revision 1.182
retrieving revision 1.183
diff -C2 -r1.182 -r1.183
*** NEWS	2001/06/10 23:40:19	1.182
--- NEWS	2001/06/12 01:22:21	1.183
***************
*** 85,88 ****
--- 85,91 ----
    order.
  
+ - Many other small changes to dicts were made, resulting in faster
+   operation along the most common code paths.
+ 
  - Dictionary objects now support the "in" operator: "x in dict" means
    the same as dict.has_key(x).
***************
*** 120,124 ****
  - Collisions in dicts are resolved via a new approach, which can help
    dramatically in bad cases.  For example, looking up every key in a dict
!   d with d.keys() = [i << 16 for i in range(20000)] is approximately 500x
    faster now.  Thanks to Christian Tismer for pointing out the cause and
    the nature of an effective cure (last December! better late than never).
--- 123,127 ----
  - Collisions in dicts are resolved via a new approach, which can help
    dramatically in bad cases.  For example, looking up every key in a dict
!   d with d.keys() == [i << 16 for i in range(20000)] is approximately 500x
    faster now.  Thanks to Christian Tismer for pointing out the cause and
    the nature of an effective cure (last December! better late than never).
***************
*** 146,151 ****
    these types (when HAVE_LONG_LONG is #define'd by the Python config
    process), and then they inherit the sizes and alignments of the C types.
!   XXX TODO In standard mode, 'q' and 'Q' are supported on all platforms, and
!   XXX TODO are 8-byte integral types.
  
  Tests
--- 149,154 ----
    these types (when HAVE_LONG_LONG is #define'd by the Python config
    process), and then they inherit the sizes and alignments of the C types.
!   In standard mode, 'q' and 'Q' are supported on all platforms, and are
!   8-byte integral types.
  
  Tests