On Wed, Jul 20, 2011 at 9:40 PM, Vitja Makarov <vitja.maka...@gmail.com> wrote:
> 2011/7/21 Robert Bradshaw <rober...@math.washington.edu>:
>> On Wed, Jul 20, 2011 at 9:27 PM, Vitja Makarov <vitja.maka...@gmail.com> 
>> wrote:
>>> 2011/7/16 Lars Buitinck <l.j.buiti...@uva.nl>:
>>>> 2011/7/15 Vitja Makarov <vitja.maka...@gmail.com>:
>>>>> 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.)

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

Reply via email to