Dag Sverre Seljebotn, 02.03.2011 11:20:
c) Somehow provide more than one module in the same compilation unit.
Again, this requires the build to work correctly, but seems less dangerous,
and also has the advantage of *allowing* static linking of the Fortran
library, if one wants to.

But is something like this possible? Could one implement

cython -o assembly.c file1.pyx file2.pyx file3.pyx

...where assembly.so would contain three Python modules? (initfile1,
initfile2, and so on...)

Can't currently work because the three modules would define the same static C names. This could be fixed as part of the PEP 3121 implementation:

http://trac.cython.org/cython_trac/ticket/173

Or it could be worked around by overriding the prefixes in Naming.py (which sounds ugly).

Generally speaking, I'm -1 on this idea. I don't see a real use case, and you're saying yourself that this isn't required to make your Fortran use case work either.


- If you build the Fortran code as a static library (rather common...),
then each pyx file will have their own copy. This will link successfully
but likely have a rather poor effect.

So? lxml has two main modules, and if you build it statically against libxml2/libxslt, you end up with two static versions of that library in the two modules. Takes up some additional space, but otherwise works beautifully.

Stefan
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel

Reply via email to