2011/7/21 Robert Bradshaw <[email protected]>: > On Wed, Jul 20, 2011 at 10:30 PM, Robert Bradshaw > <[email protected]> wrote: >> On Wed, Jul 20, 2011 at 9:40 PM, Vitja Makarov <[email protected]> >> wrote: >>> 2011/7/21 Robert Bradshaw <[email protected]>: >>>> On Wed, Jul 20, 2011 at 9:27 PM, Vitja Makarov <[email protected]> >>>> wrote: >>>>> 2011/7/16 Lars Buitinck <[email protected]>: >>>>>> 2011/7/15 Vitja Makarov <[email protected]>: >>>>>>> I've found strange bug. In my example cimport misses "fcntl.h" include: >>>>>>> >>>>>>> ((c2f2e12...)) vitja@vitja-laptop:~/work/cython-vitek/zzz$ cat ./fff.pyx >>>>>>> cimport posix.unistd >>>>>>> cimport posix.fcntl >>>>>>> >>>>>>> print posix.fcntl.O_RDWR >>>>>> >>>>>> Fascinating; I can reproduce the error (on Scientific Linux 5.5), but >>>>>> it goes away when I reverse the order of the includes. >>>>>> >>>>> >>>>> What's about this issue? Is that easy to fix before release or it's >>>>> better to create a ticket? >>>> >>>> I'm not sure what we can do here--we make sure to emit the #include >>>> statements in the same order as they are encountered in the Cython >>>> sources because C is sensitive to this kind of thing, but we can't >>>> really "fix" C. I suppose we could cimport posix.fcntl from within >>>> posix.unistd to force an ordering. >>>> >>> >>> That's not C bug. That's cython bug. Actualy fcntl.h isn't included at all. >>> That seems to be a problem with cimport and packages. >>> >>> As I said "from posix cimport unistd, fcntl" works just fine. >> >> I thought you meant that >> >> cimport posix.fcntl >> cimport posix.unistd >> >> worked but >> >> cimport posix.unistd >> cimport posix.fcntl >> >> didn't. I'm seeing the bug now. (There are of course cases where one >> does care about import order.) > > https://github.com/cython/cython/commit/55d5e576935d83c6bdadc593e36793aecffe0bae
Cool, thanks! -- vitja. _______________________________________________ cython-devel mailing list [email protected] http://mail.python.org/mailman/listinfo/cython-devel
