Issue 1649190: Adding support for _Bool to ctypes as c_bool (original) (raw)

Created on 2007-01-31 21:04 by chmod007, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
c_bool patch against r53606.diff chmod007,2007-01-31 21:04 Patch relative to revision 53606
c_bool patch against r53623.diff chmod007,2007-02-02 00:35 Patch relative to revision 53623 -- addressing thomas' review
Messages (6)
msg51825 - (view) Author: David Remahl (chmod007) Date: 2007-01-31 21:04
Adds support for the C99 _Bool type to ctypes. Requires struct patch that has already been accepted in the python 2.6 train. Updates ctypes C extension, ctypes __init__.py, ctypes documentation and ctypes tests.
msg51826 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2007-01-31 22:05
Thomas, can you take a look? I think this needs to take into account Python versions without bool support in the struct module, as the same ctypes code is used with older Python releases as well.
msg51827 - (view) Author: David Remahl (chmod007) Date: 2007-02-01 15:50
Should I prepare the patch relative to /ctypes/trunk/ctypes instead?
msg51828 - (view) Author: Thomas Heller (theller) * (Python committer) Date: 2007-02-01 20:22
David, I encountered these issues with the patch: 1. a typo in Lib/ctypes/test/test_numbers.py: 'bool_type' should be 'bool_types' It is trivial to fix this. 2. ctypes/__init__.py should be cean for 'from ctypes import *', but with your patch it exposes the 'struct_error' symbol. I would recommend to change Modules/_ctypes/cfield.c so that a c_bool type can be created even if HAVE_C99_BOOL is undefined (I think you took that approach in your _Bool struct patch). Then, ctypes/__init__.py would not have to depend on the struct 't' typecode at all. The '_check_size(c_bool, "t")' check can probably be removed. 3. ctypes/test/test_repr.py does not work. Easy to fix this: just add c_bool to the list of types starting at line 5. These changes would also ensure compatibility with previous Python versions, with one exception: A check for the _Bool type must be added to Modules/ctypes/libffi/configure.in. To answer your question: No, it is not needed to prepare a patch relative to ctypes/trunk/ctypes. This repository contains svn:external properties for the 'source' and 'ctypes' directories that point into the 'release25-maint/Modules/_ctypes' and 'release25-maint/Lib/ctypes' directories from Python.
msg51829 - (view) Author: David Remahl (chmod007) Date: 2007-02-02 00:35
Thanks for the review, Thomas! I've attached a new patch that addresses the points you bring up (I hope) in the suggested manner. I have not tested it on 2.5, but tests pass on 2.6. File Added: c_bool patch against r53623.diff
msg51830 - (view) Author: Thomas Heller (theller) * (Python committer) Date: 2007-03-13 20:45
Committed as revision 54357. Thanks for the patch.
History
Date User Action Args
2022-04-11 14:56:22 admin set github: 44534
2007-01-31 21:04:22 chmod007 create