On 2 February 2012 12:19, Dag Sverre Seljebotn <d.s.seljeb...@astro.uio.no> wrote: > I just realized that > > cdef int[:] a = None > > raises an exception; even though I'd argue that 'a' is of the "reference" > kind of type where Cython usually allow None (i.e., "cdef MyClass b = None" > is allowed even if type(None) is NoneType). Is this a bug or not, and is it > possible to do something about it? > > Dag Sverre > _______________________________________________ > cython-devel mailing list > cython-devel@python.org > http://mail.python.org/mailman/listinfo/cython-devel
Yeah I disabled that quite early. It was supposed to be working but gave a lot of trouble in cases (segfaults, mainly). At the time I was trying to get rid of all the segfaults and get the basic functionality working, so I disabled it. Personally, I have never liked how things can be None unchecked. I personally prefer to write cdef foo(obj=None): cdef int[:] a if obj is None: obj = ... a = obj Often you forget to write 'not None' when declaring the parameter (and apparently that it only allowed for 'def' functions). As such, I never bothered to re-enable it. However, it does support control flow with uninitialized slices, and will raise an error if it is uninitialized. Do we want this behaviour (e.g. for consistency)? _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel