Am 05.02.2015 um 12:30 schrieb Greg Ewing:
Stefan Behnel wrote:
Python extension types are just structs at the C level, and struct member names cannot be mangled.
Well, in principle it *could* mangle the names in structs that aren't declared "cdef extern". I didn't do that in Pyrex because it didn't seem necessary; I hadn't anticipated problems like collision with macros.
It's probably too late to change it now, since it would break existing code that interoperates with foreign code.
To me, that sounds like a too complicated solution for a marginal problem. It's a bit odd that you can't use special names like INFINITY for cdef class members, but on the other hand, I think that's a reasonable restriction since you are generating C code, and in C you can't name a struct member INFINITY either (at least with gcc).