2011/5/28 Stefan Behnel <stefan...@behnel.de>: > Vitja Makarov, 28.05.2011 14:12: >> >> 2011/5/28 Stefan Behnel: >>> >>> Ok, I think we're done then, right? Anything else to do before merging it >>> back? >> >> I hope so ;) > > I gave your branch a test with lxml and it spit out a couple of missing > initialisation warnings. Most of them were due to the usage of C out > arguments, e.g. > > cdef Py_ssize_t step > ... > _PyEval_SliceIndex(sliceobject.step, &step) > > Here, it doesn't matter that "step" isn't initialised. I guess it's still ok > to get a warning, since it's not obvious that "step" will always be set by > the function call. > > Similarly: > > cdef void _receiveXSLTError(void* c_log_handler, char* msg, ...) nogil: > cdef cstd.va_list args > ... > cstd.va_start(args, msg) > > Cython now tells me that "args" isn't initialised. That's true again, > although this is an even more special case here. I guess I'll have to live > with that as well for now, maybe until there's dedicated va_list support in > Cython. > > Next, I got a crash in a part of code where I was manually releasing the > GIL, but only conditionally, and Cython figured out that a variable wasn't > initialised in one case and injected an exception. I would have liked to get > a compile time warning here, but didn't. I assume that's because it was only > a "may be used uninitialised", not a "is used uninitialised"? > > I'm currently looking through the other issues. A major problem is that I > often relied on Cython setting uninitialised variables to None, especially > in performance critical code where I wanted to avoid double initialisations. > Cython is smarter now, so this needs fixing in the code. I'm sure I'm not > the only one who'll run into that, so more warnings would be very helpful. >
Do you run cython as "cython -Wextra"? -Wextra enables "maybe uninitialized" warning and unused entry. By default error is generated for uninitialized pyobject variables and warning for ctypes. -- vitja. _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel