[Python-porting] Py_TPFLAGS_HAVE_{WEAKREFS,ITER} in Python 3
Amaury Forgeot d'Arc
amauryfa at gmail.com
Fri Apr 27 17:48:49 CEST 2012
More information about the Python-porting mailing list
Fri Apr 27 17:48:49 CEST 2012
- Previous message: [Python-porting] Py_TPFLAGS_HAVE_{WEAKREFS,ITER} in Python 3
- Next message: [Python-porting] Py_TPFLAGS_HAVE_{WEAKREFS,ITER} in Python 3
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi, 2012/4/27 Barry Warsaw <barry at python.org> > Someone is trying to build gdb 7.4 with Python 3 and hit a problem with > Py_TPFLAGS_HAVE_ITER. PEP 234 describes this flag, which no longer exists > in > Python 3. python3porting.com has precious little to say about Py_TPFLAGS > changes in Python 3. > > When I did the dbus-python port, I found that Py_TPFLAGS_HAVE_WEAKREFS is > both > unnecessary and undefined in Python 3. Unfortunately, if you're going to > support both Python 2 and 3 with the same C code, you'll need to #ifdef > that > away (since it's still required in Python 2). > > My guess is that HAVE_ITER falls under the same recommendation, but I'm > looking for verification. For now, I've added this to > https://wiki.ubuntu.com/Python/3 This is correct. I checked that everywhere Py_TPFLAGS_HAVE_ITER is used in Python2.7, the corresponding code in Python 3 does as if this flag is always set. So you could either #ifdef its usage, or simply put in some compatibility header file: #if PY_MAJOR_VERSION >=3 # define Py_TPFLAGS_HAVE_ITER 0 #endif -- Amaury Forgeot d'Arc -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-porting/attachments/20120427/f1211d4a/attachment.html>
- Previous message: [Python-porting] Py_TPFLAGS_HAVE_{WEAKREFS,ITER} in Python 3
- Next message: [Python-porting] Py_TPFLAGS_HAVE_{WEAKREFS,ITER} in Python 3
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-porting mailing list