Edgewall Software
Modify

Opened 3 years ago

Last modified 23 months ago

#555 new defect

genshi._speedups extension module incompatible with CPython >=3.3

Reported by: Arfrever.FTA@… Owned by: hodgestar
Priority: major Milestone: 0.8
Component: General Version: devel
Keywords: Cc: Arfrever.FTA@…

Description

genshi._speedups extension module is incompatible with CPython >=3.3 due to changes in unicode implementation in CPython 3.3. Genshi should use appropriate functions or macros (e.g. PyUnicode_GetLength()) instead of no longer available private members of PyUnicodeObject? structures.

$ python3.3 setup.py build
...
running build_ext
building 'genshi._speedups' extension
creating build/temp.linux-x86_64-3.3
creating build/temp.linux-x86_64-3.3/genshi
x86_64-pc-linux-gnu-gcc -pthread -fPIC -I/usr/include/python3.3 -c genshi/_speedups.c -o build/temp.linux-x86_64-3.3/genshi/_speedups.o
genshi/_speedups.c: In function ‘escape’:
genshi/_speedups.c:89:13: error: ‘PyUnicodeObject’ has no member named ‘str’
genshi/_speedups.c:90:24: error: ‘PyUnicodeObject’ has no member named ‘length’
genshi/_speedups.c:90:43: error: ‘PyUnicodeObject’ has no member named ‘str’
genshi/_speedups.c:120:13: error: ‘PyUnicodeObject’ has no member named ‘str’
genshi/_speedups.c:121:15: error: ‘PyUnicodeObject’ has no member named ‘str’
genshi/_speedups.c:122:24: error: ‘PyUnicodeObject’ has no member named ‘length’
genshi/_speedups.c:122:43: error: ‘PyUnicodeObject’ has no member named ‘str’
genshi/_speedups.c:125:13: error: ‘PyUnicodeObject’ has no member named ‘length’
genshi/_speedups.c:125:13: error: ‘PyUnicodeObject’ has no member named ‘str’
genshi/_speedups.c:130:17: error: ‘PyUnicodeObject’ has no member named ‘str’
genshi/_speedups.c:136:21: error: ‘PyUnicodeObject’ has no member named ‘str’
genshi/_speedups.c:144:17: error: ‘PyUnicodeObject’ has no member named ‘str’
genshi/_speedups.c:149:17: error: ‘PyUnicodeObject’ has no member named ‘str’
**********************************************************************
WARNING:
An optional C extension could not be compiled, speedups will not be
available.
**********************************************************************
command 'x86_64-pc-linux-gnu-gcc' failed with exit status 1

Attachments (0)

Change History (2)

comment:1 Changed 3 years ago by hodgestar

  • Owner changed from cmlenz to hodgestar

This is going to require a complete re-write of the escape function in _speedups.c so it's going to take awhile to get to.

comment:2 Changed 23 months ago by hodgestar

For the moment I've disabled the C extension by default in setup.py when the CPython version is >= 3.3.

Add Comment

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The owner will remain hodgestar.
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from hodgestar to the specified user. Next status will be 'new'.
The owner will be changed from hodgestar to anonymous. Next status will be 'assigned'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.