BTW, would it be hard for you to disable the generation of refnanny stuff for functions that do not involve any Python object, just C types (like those that can be called with the GIL released) ??
On Mon, Feb 2, 2009 at 6:10 PM, Lisandro Dalcin <[email protected]> wrote: > OK, let me write an test a patch. I'm starting right now... > > > On Mon, Feb 2, 2009 at 6:11 PM, Dag Sverre Seljebotn > <[email protected]> wrote: >> Lisandro Dalcin wrote: >>> Dag, I know that the original idea of the dlopen() with RTLD_GLOBAL >>> was mine, but you know... I'm so idiot sometimes... This is going to >>> be a REAL pain to make it work, specially if you want to make this >>> easily portable to the many platforms out there.... For example, Do >>> the current implementation work on Windows? >> >> I have no idea. I know next to nothing about Windows development (which >> goes beyond pre-2000-era Delphi GUI programming). And it would be a real >> pain for me to find or set up a Windows workstation with enough tools to >> find out. >> >>> Would you agree to completelly change the way the refnany helper >>> routines are imported?. I'm thinking on a ad-hoc way of doing that, >>> similar but simpler to the way Cython extension modules can export API >>> functions. >>> >>> The only requisite would be that the 'refnanny.so' extension module >>> can be imported. Then, when you build Cython extensions with >>> CYTHON_REFNANNY defined, some special code in the module init function >>> imports the 'refnanny' module and get the pointer to a struct having >>> pointers to the various routines... No more need to dlopen() or even >>> import refnanny in order to enable it.... >> >> This sounds like the way Cython implements "api", one could build on >> that. (But writing something dedicated in C might be just as well, >> because all the other things can potentially be subject to refnannying). >> >> The reasons I've done what I've done is mostly to get something as quick >> as possible. If what I've done can't work in Windows, I'd be happy to >> accept a patch along the lines you suggest, but it is pretty far down on >> my own list. (It would mean an extra pointer lookup per refcount call I >> think, but speed is not an issue here...) >> >> An alternative is to write runtests.py to disable the refnanny on >> Windows. As long as it is run on Unix prior to a Cython release it >> should work. >> >> >> -- >> Dag Sverre >> _______________________________________________ >> Cython-dev mailing list >> [email protected] >> http://codespeak.net/mailman/listinfo/cython-dev >> > > > > -- > Lisandro Dalcín > --------------- > Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC) > Instituto de Desarrollo Tecnológico para la Industria Química (INTEC) > Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET) > PTLC - Güemes 3450, (3000) Santa Fe, Argentina > Tel/Fax: +54-(0)342-451.1594 > -- Lisandro Dalcín --------------- Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC) Instituto de Desarrollo Tecnológico para la Industria Química (INTEC) Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET) PTLC - Güemes 3450, (3000) Santa Fe, Argentina Tel/Fax: +54-(0)342-451.1594 _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
