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

2013-05-26 Thread Vitja Makarov
2013/5/25 Robert Bradshaw 

>
> On May 25, 2013 10:37 AM, "Vitja Makarov"  wrote:
> >
> >
> >
> >
> > 2013/5/25 Stefan Behnel 
> >>
> >> 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.
>
>
>
Ok, I've pushed a fix
https://github.com/cython/cython/commit/adbe80eaa2e5f84060201562118026c7b69a440e



-- 
vitja.
___
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel


[Cython] Exception check optimization

2013-05-26 Thread Nikita Nemkin

Hi,

I wonder why is __pyx_filename (in exception check blocks)
tracked dynamically? AFAIK it's impossible to split function
body between multiple files (include only works at the top level),
which makes filename a compile time constant for any given function.

If the above is correct, __pyx_filename variable can be eliminated,
saving at least 5 bytes per exception check (more on x64).


On a related note, why is c_lineno enabled by default? So far I
have only found one pretty rare case when it is useful - debugging
autogenerated code in module init.
I suspect that most people don't bother turning it off and get
suboptimal code.


Best regards,
Nikita Nemkin
___
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel


[Cython] Old style dependency tracking

2013-05-26 Thread Nikita Nemkin

Hi,

I wonder if it's time to to remove old dependency tracking code?
I mean this: http://trac.cython.org/cython_trac/ticket/379,
CompilationOptions.recursive, .dep file generation etc.

Since it is broken for a long time already, there is no
problem with backwards (in)compatibility.
And cythonize already provides equivalent functionality.


Best regards,
Nikita Nemkin
___
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel