Hi Folks,
I thought I'd try the fink list.... this is a follow-up to a question I
posted yesterday. I've been digging a little deeper. What sorts of
things cause "resource temporarily unavailable"?
thanks,
-steve
Begin forwarded message:
> From: Steve Spicklemire <[EMAIL PROTECTED]>
> Date: Sun Feb 24, 2002 12:41:42 PM America/Indianapolis
> To: Steve Spicklemire <[EMAIL PROTECTED]>
> Cc: [EMAIL PROTECTED], [EMAIL PROTECTED]
> Subject: Re: [Pythonmac-SIG] CXX/Numeric problem on MacOSX (was
> building vpython on MacOSX)
>
> Hi (again),
>
> OK.. I found out that the error I'm getting is (reproducibly) actually
> "error 35" described in /usr/include/sys/errno.h as:
>
> #define EAGAIN 35 /* Resource temporarily
> unavailable */
> #ifndef _POSIX_SOURCE
> #define EWOULDBLOCK EAGAIN /* Operation would block */
>
> so.. it's saying that this operation would block or is temporarily
> unavailable. Why? Any idea?
>
> thanks,
> -steve
>
> On Sunday, February 24, 2002, at 09:35 AM, Steve Spicklemire wrote:
>
>> Diggin around I find that this error is generated in the "ufuncmodule"
>> of Numeric. If I try to debug this I get to.
>>
>> The message comes from the math_error() function if ufuncobject, where
>> I set a breakpoint.
>>
>> Breakpoint 2, math_error () at Src/ufuncobject.c:407
>> (gdb) print errno
>> $1 = <unknown type>
>>
>> most unhelpful!
>>
>>
On Sunday, February 24, 2002, at 09:35 AM, Steve Spicklemire wrote:
>
> Hi MacPython Folks (and Paul Dubois),
>
> Sorry for bothering you all again, but I'm getting closer to
> sorting this out, but I think I need another hint. I've got vpython to
> build on MacOSX, and it runs.. mostly. VPython makes heavy use of the
> Numeric module, and also uses Paul Dubois' CXX extension class system
> for creating python objects with c++. I'm an expert on neither, though
> I have used the Numeric a fair amount.
>
> Below is a simple program that shows the problem. "visual" is the
> module that contains all the vpython stuff, and it does "from Numeric
> import *" so that all the Numeric code is also in the visual module. It
> also imports the cvisualmodule, built on Paul's CXX extension system.
> There is magic in visual.py that calls the correct constructor from
> cvisualmodule when certain functions in the visual namespace are called
> (e.g., curve()). If I run this program with no command line arguments,
> "band" is a simple instance of the dummy class "foo". If I run with a
> command line argument, "band" is an instance of a "curve" object from
> the cvisualmodule extension. The program dies no matter what binary
> operation I perform on two arrays, subtraction, addition, etc.
> Multiplication by a constant doesn't show this problem however, so it's
> something in the use of two arrays.
>
> If band is a simple instance.... this program runs forever (well.. for
> a really long time).
>
> If band is an instance of a curve object, this program fails after an
> indeterminate number of iterations (from tens to thousands, with no
> clear cause). I get e.g.,
>
> [vh10-15:~/Development/vpython/cvisual] steve% python test_wave2.py 1
> Visual-2001-12-30
> 2
> band is a curve
> iter 1 iter 2 iter 3 iter 4 iter 5 iter 6 iter 7 iter 8 iter 9 iter 10
> iter 11 iter 12 iter 13 iter 14 iter 15 iter 16 iter 17 iter 18 iter 19
> iter 20 iter 21 iter 22 iter 23 iter 24 iter 25 iter 26 iter 27 iter 28
> iter 29 iter 30 iter 31 iter 32 iter 33 iter 34 iter 35 iter 36 iter 37
> iter 38 iter 39 iter 40 iter 41 iter 42 iter 43 iter 44 iter 45 iter 46
> iter 47 iter 48 iter 49 iter 50 iter 51 iter 52 iter 53 iter 54 iter 55
> iter 56 iter 57 iter 58 iter 59 iter 60 iter 61 iter 62 iter 63 iter 64
> iter 65 iter 66 iter 67 iter 68 iter 69 iter 70 iter 71 iter 72 iter 73
> iter 74 iter 75 iter 76 iter 77 iter 78 iter 79 iter 80 iter 81 iter 82
> iter 83 iter 84 iter 85 iter 86 iter 87 iter 88 iter 89 iter 90 iter 91
> iter 92 iter 93 iter 94 iter 95 iter 96 iter 97 iter 98 iter 99 iter
> 100 iter 101 iter 102 iter 103 iter 104 iter 105 iter 106 iter 107 iter
> 108 iter 109 iter 110 iter 111 iter 112 iter 113 iter 114 iter 115 iter
> 116 iter 117 iter 118 iter 119 iter 120 iter 121 iter 122 iter 123 iter
> 124 iter 125 iter 126 iter 127 iter 128 iter 129 iter 130 iter 131 iter
> 132 iter 133 iter 134 iter 135 iter 136 iter 137 iter 138 iter 139 iter
> 140 iter 141 iter 142 iter 143 iter 144 iter 145 iter 146 iter 147 iter
> 148 iter 149 iter 150 iter 151 iter 152 iter 153 iter 154 iter 155 iter
> 156 iter 157 iter 158 iter 159 iter 160 iter 161 iter 162 iter 163 iter
> 164 iter 165 iter 166 iter 167 iter 168 iter 169
> Traceback (most recent call last):
> File "test_wave2.py", line 26, in ?
> bleah = band.foo2 - band.foo1
> ValueError: unexpected math error
>
>
> Diggin around I find that this error is generated in the "ufuncmodule"
> of Numeric. If I try to debug this I get to.
>
> The message comes from the math_error() function if ufuncobject, where
> I set a breakpoint.
>
> Breakpoint 2, math_error () at Src/ufuncobject.c:407
> (gdb) print errno
> $1 = <unknown type>
>
> most unhelpful!
>
> static void math_error() {
> => if (errno == EDOM)
> PyErr_SetString(PyExc_ValueError, "math domain error");
> else if (errno == ERANGE)
> PyErr_SetString(PyExc_OverflowError, "math range error");
> else
> PyErr_SetString(PyExc_ValueError, "unexpected math error");
> }
>
> I'm sure this is some strangeness in the way the CXX stuff builds on
> MacOSX (this code works on Win/Linux/MacOS9). Does anybody have any
> suggestions? (BTW I changed my makefile to use "c++" rather than "cc
> with -lstdc++" and while it "works", the same problem persists.
>
> Anyway.. thanks for any thoughts. ;-)
>
> -steve
>
> import visual
>
> import sys
>
> print len(sys.argv)
>
> class foo:
> pass
>
> if len(sys.argv)<2:
> band = foo()
> print "band is a simple class"
> else:
> print "band is a curve"
> band = visual.curve()
>
>
> band.foo1 = visual.array(10*[1],visual.Float)
> band.foo2 = visual.array(10*[2],visual.Float)
>
> i=0
>
> while 1:
> i += 1
> print "iter",i,
> bleah = band.foo2 - band.foo1
> if visual.sum(bleah*bleah) != 10.0:
> print "Hmm. the math is wrong"
> sys.stdout.flush()
>
>
_______________________________________________
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel