summaryrefslogtreecommitdiffstats
path: root/Misc
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2001-06-10 23:40:19 (GMT)
committerTim Peters <tim.peters@gmail.com>2001-06-10 23:40:19 (GMT)
commit7b9542a3f747787aedf056ddaef99e4469777aa9 (patch)
treebcbb8eb84c0606c27c8890f528f4378eaed25996 /Misc
parentfcc54cab100108f97c5b5641e3df11b7614993c2 (diff)
downloadcpython-7b9542a3f747787aedf056ddaef99e4469777aa9.zip
cpython-7b9542a3f747787aedf056ddaef99e4469777aa9.tar.gz
cpython-7b9542a3f747787aedf056ddaef99e4469777aa9.tar.bz2
Initial support for 'q' and 'Q' struct format codes: for now, only in
native mode, and only when config #defines HAVE_LONG_LONG. Standard mode will eventually treat them as 8-byte ints across all platforms, but that likely requires a new set of routines in longobject.c first (while sizeof(long) >= 4 is guaranteed by C, there's nothing in C we can rely on x-platform to hold 8 bytes of int, so we'll have to roll our own; I'm thinking of a simple pair of conversion functions, Python long to/from sized vector of unsigned bytes; that may be useful for GMP conversions too; std q/Q would call them with size fixed at 8). test_struct.py: In addition to adding some native-mode 'q' and 'Q' tests, got rid of unused code, and repaired a non-portable assumption about native sizeof(short) (it isn't 2 on some Cray boxes). libstruct.tex: In addition to adding a bit of 'q'/'Q' docs (more needed later), removed an erroneous footnote about 'I' behavior.
Diffstat (limited to 'Misc')
-rw-r--r--Misc/NEWS8
1 files changed, 8 insertions, 0 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 62df987..18a87e9 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -140,6 +140,14 @@ Library
- pprint functions now much faster for large containers (tuple, list, dict).
+- New 'q' and 'Q' format codes in the struct module, corresponding to C
+ types "long long" and "unsigned long long" (on Windows, __int64). In
+ native mode, these can be used only when the platform C compiler supports
+ 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
- New test_mutants.py runs dict comparisons where the key and value