Nikita Nemkin, 05.05.2013 16:13: > cdef classes must be (topologically) ordered by inheritance to satisfy the > following dependencies: > 1) dealloc function definition: derived classes call base class dealloc; > 2) vtable pointer initialization in module init function. > Wrong order causes C/C++ compilation failure for 1) and segfault on import > for 2). > > Normally, source order is the correct order, but forward declarations can > change this. See included test case for example. > I hit this problem because I forward declare all my classes in alphabetic > order (and then include class definitions from .pxi files, one class per > file). > > The simple (although not obvious) workaround is to reorder forward > delarations, but I believe it's worth fixing permanently. > You can merge this Pull Request by running: > > git pull https://github.com/nnemkin/cython cdef_class_order > > Or you can view, comment on it, or merge it online at: > > https://github.com/cython/cython/pull/223
Luckily, this broke the Sage build, by running into an infinite loop while sorting. https://sage.math.washington.edu:8091/hudson/job/sage-build/1778/ We clearly need more tests for extension type hierarchies spread across multiple modules. Stefan _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel