[Python-Dev] 2.5.2 is coming

Thomas Heller theller at ctypes.org
Fri Oct 12 08:36:36 CEST 2007


Neal Norwitz schrieb:
> We are planning the release of 2.5.2 for next week.  Unless there are
> serious bugs, please hold off making big changes to the 2.5 branch
> until after 2.5.2 final is released.  Anthony gets cranky when things
> break and he scares me...a lot. :-)  Doc/test fixes as always are
> still fine.
> 
> The plan is cut the release candidate around Tuesday/Wednesday next
> week (Oct 16/17).  If all goes well, 2.5.2 final will follow a week
> later.
> 
> Please test the 2.5 branch now and let us know if there are any
> serious problems.  If there are serious bugs that you think should be
> addressed, let us know.  Bugs are here:  http://bugs.python.org/
> 

Neal, I have one patch for ctypes still sitting in some of my sandboxes.
ctypes doesn't work when configured with --with-system-ffi on machines
where 'sizeof(long long) != sizeof(long)', in other words on 32-bit boxes.
This is because I misinterpreted the meaning of the FFI_ type codes.

See also this bug: https://bugs.launchpad.net/bugs/72505

Here is the fairly simple patch, even a little bit simpler than the patch
posted on the page above, which I want to apply to thrunk AND
release25-maint branch:

theller at tubu610:~/devel/release25-maint$ svn diff
Index: Modules/_ctypes/cfield.c
===================================================================
--- Modules/_ctypes/cfield.c    (revision 52840)
+++ Modules/_ctypes/cfield.c    (working copy)
@@ -1541,18 +1541,22 @@
 /* XXX Hm, sizeof(int) == sizeof(long) doesn't hold on every platform */
 /* As soon as we can get rid of the type codes, this is no longer a problem */
 #if SIZEOF_LONG == 4
-       { 'l', l_set, l_get, &ffi_type_sint, l_set_sw, l_get_sw},
-       { 'L', L_set, L_get, &ffi_type_uint, L_set_sw, L_get_sw},
+       { 'l', l_set, l_get, &ffi_type_sint32, l_set_sw, l_get_sw},
+       { 'L', L_set, L_get, &ffi_type_uint32, L_set_sw, L_get_sw},
 #elif SIZEOF_LONG == 8
-       { 'l', l_set, l_get, &ffi_type_slong, l_set_sw, l_get_sw},
-       { 'L', L_set, L_get, &ffi_type_ulong, L_set_sw, L_get_sw},
+       { 'l', l_set, l_get, &ffi_type_sint64, l_set_sw, l_get_sw},
+       { 'L', L_set, L_get, &ffi_type_uint64, L_set_sw, L_get_sw},
 #else
 # error
 #endif
 #ifdef HAVE_LONG_LONG
-       { 'q', q_set, q_get, &ffi_type_slong, q_set_sw, q_get_sw},
-       { 'Q', Q_set, Q_get, &ffi_type_ulong, Q_set_sw, Q_get_sw},
+#if SIZEOF_LONG_LONG == 8
+       { 'q', q_set, q_get, &ffi_type_sint64, q_set_sw, q_get_sw},
+       { 'Q', Q_set, Q_get, &ffi_type_uint64, Q_set_sw, Q_get_sw},
+#else
+# error
 #endif
+#endif
        { 'P', P_set, P_get, &ffi_type_pointer},
        { 'z', z_set, z_get, &ffi_type_pointer},
 #ifdef CTYPES_UNICODE
theller at tubu610:~/devel/release25-maint$


Is is ok to apply this patch?

Thomas



More information about the Python-Dev mailing list