[Cython] How should be C-clobal deletion handled?

Robert Bradshaw robertwb at gmail.com
Sat May 25 19:50:27 CEST 2013


On May 25, 2013 10:37 AM, "Vitja Makarov" <vitja.makarov at gmail.com> wrote:
>
>
>
>
> 2013/5/25 Stefan Behnel <stefan_ml at behnel.de>
>>
>> Am 25.05.2013 08:34, schrieb Robert Bradshaw:
>> > On Thu, May 23, 2013 at 10:02 PM, Vitja Makarov wrote:
>> >> Recently I've found that the following code causes segmentation fault:
>> >>
>> >> cdef object f
>> >> del f
>> >> print f
>> >>
>> >> So the question is: how should that work?
>> >>
>> >> global objects are implicitly initialized to None and no CF and no cf
>> >> analysis is performed for it.
>> >>
>> >> So I see three options here:
>> >>
>> >> 1. prohibit cglobal deletion
>> >> 2. set it back to None
>> >> 3. check for a null value at every reference and assignment
>> >
>> > I'd go for 1, with 2 as a backup option.
>>
>> +1 for 1.
>>
>> Stefan
>>
>>
>
> I tried to disable it and found that it's already used for global C++
objects deletion. It would be strange to have global deletion for C++
objects and not for ordinary python objects.
>

Not that odd; C++ users are used to the concept of null pointers, Python
users not so much. We can check this easily.

>
> --
> vitja.
>
> _______________________________________________
> cython-devel mailing list
> cython-devel at python.org
> http://mail.python.org/mailman/listinfo/cython-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/cython-devel/attachments/20130525/efa5598a/attachment.html>


More information about the cython-devel mailing list