[Python-Dev] Word size inconsistencies in C extension modules (original) (raw)
"Martin v. Löwis" martin at v.loewis.de
Mon Sep 10 09:54:08 CEST 2007
- Previous message: [Python-Dev] Word size inconsistencies in C extension modules
- Next message: [Python-Dev] tests expanded for SSL module -- other suggestions?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Luke Mewburn schrieb:
On Mon, Sep 10, 2007 at 07:37:02AM +0200, "Martin v. L?wis" wrote: | In principle, it is possible to deal with these in ParseTuple. | To do so: | a) in configure.in, make a configure-time check to compute the | size of the type, and possibly its signedness. | b) in cursesmodule.c, make a conditional define of ATTRTFMT, | which would be either "i" or "l" (or #error if it's neither | the size of int nor the size of long). Then rely on string | concatenation in using that define.
Are there some good examples in the Python source where this technique has been used already?
Not directly. A check for the size of a library type can be found for fpos_t, but there, no ParseTuple depends on it. An example for using variable formatters (though again not for ParseTuple) is PY_FORMAT_SIZE_T.
Or were you proposing a cleaner solution that could be experimented with?
More that, yes.
| I have a GCC patch which checks for correctness of ParseTuple | calls (in terms of data size) if you are interested.
Sounds like a useful variation of the standard -Wformat stuff.
Indeed, it's an extension to it. Unfortunately, introducing new kinds of formats is only possible by editing GCC (and then, the existing framework is focussed on %-style patterns, so I had to bypass that framework as well - but there were hooks for doing so).
Regards, Martin
- Previous message: [Python-Dev] Word size inconsistencies in C extension modules
- Next message: [Python-Dev] tests expanded for SSL module -- other suggestions?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]