Robert Bradshaw wrote: > On Apr 14, 2009, at 9:17 AM, Dag Sverre Seljebotn wrote: > >> I was just thinking about this: >> >> cdef int a = 10, b = 0 >> print a // b >> >> which currently gives a C exception terminating the Python >> interpreter. >> >> On one hand: We have already changed division to Python behaviour >> (with >> a speed penalty); so using the same arguments (which I won't >> reiterate) >> it would make sense to raise a Python exception instead here. > > Since we changed it, we should chang it all the way. It will be > somewhat uglier as this means when writing a / (c-c) one needs to > store the denominator in a temp and check it rather than simply > letting the expression through to C (I already did this for warnings).
We're already in beta, but still: Can we get a warning cycle for this as well into 0.11.1 so that people only have to deal with C int semantic changes once? I can probably make it tomorrow but I'll have a higher learning curve as you did the previous change. >> One solution would be to work on accepting exceptions under nogil, >> another one would be to require use of cdivision directive/cdiv to do >> division in nogil sections. > > I don't think exceptions are safe without the gil. With cdivision on > it won't raise anything. This is an exceptional case; I think it is OK to acquire the GIL temporarily to construct the exception if the exception hits, as long as non-exception paths doesn't require waiting for a GIL lock? See also the other thread on this. Dag Sverre _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
