Ok, so I just spent ~an hour hunting this down...and it is *really weird*.
I've pared down the code as much as possible while preserving the anomaly.
cdef one():
print two() # should be "33"...but its actually "stdout"
cdef char* two():
cdef char* three = four()
print three ## will be "33"
return three
cdef char* four():
cdef char* a = '33'
cdef char* b = '33'
c = ''
python_vbl = b # looks like a no-op, but if you take it out, the
anomaly disappears
c = a # is not "33"
return c # returing "33"
one()
and...the output is
>>> import strange
33
stdout
VERSION: HEAD
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev