Hi Gordon,
Yes.. the same code on Linux, and Win32 works OK. I've actually
tracked it down to a problem with threads and Numeric (another fink
module). Here's a message I just sent to the MacPython folks. I'm just
not sure how I can find out what "resource" is "unavailable". Any hints
would be appreciated!
thanks,
-steve
From: Steve Spicklemire <[EMAIL PROTECTED]>
Date: Mon Feb 25, 2002 03:47:54 PM America/Indianapolis
To: Jack Jansen <[EMAIL PROTECTED]>
Cc: Steve Spicklemire <[EMAIL PROTECTED]>, [EMAIL PROTECTED]
Subject: Re: [Pythonmac-SIG] CXX/Numeric problem on MacOSX (was building
vpython on MacOSX)
OK.. it's almost certainly a problem with Numeric and threads. I
modified NumPy's ufuncobject.c like this:
[spicklemire:~/Packages] steve% diff -c
Numeric-20.3-orig/Src/ufuncobject.c Numeric-20.3/Src/ufuncobject.c
*** Numeric-20.3-orig/Src/ufuncobject.c Tue Aug 14 11:18:24 2001
--- Numeric-20.3/Src/ufuncobject.c Mon Feb 25 15:42:08 2002
***************
*** 470,477 ****
if (self->check_return) check_array(mps[i]);
}
! if (self->check_return && errno != 0) {math_error(); return -1;}
!
return 0;
}
--- 470,488 ----
if (self->check_return) check_array(mps[i]);
}
! if (self->check_return && (errno != 0))
! {
! if ((errno == EDOM) || (errno == ERANGE))
! {
! math_error(); return -1;
! }
! else
! {
! fprintf(stderr, "Hmm.. error encountered -> %i\n", errno);
! perror("error in ufunc generic function:");
! }
! }
!
return 0;
}
Now when I try to run the NumTut demo I see:
[spicklemire:~/Packages/Numeric-20.3/Demo] steve% python -c "import
NumTut;NumTut.test()"
>>> view(greece)
>>> view(1.0-greece)
Hmm.. error encountered -> 35
error in ufunc generic function:: Resource temporarily unavailable
>>> view(greeceBW)
>>> view(greece*xgrade)
>>> view(greece*ygrade)
>>> negative = 1.0 - greece
>>> view(greece*xgrade + negative*ygrade)
>>> view(red)
>>> view(green)
>>> view(blue)
>>> sine = sin(xgrade*6*pi)
>>> view(green*sine + red*(1.0-sine))
>>> view(green + red[::-1])
>>> view(transpose(greece, (1,0,2)))
[spicklemire:~/Packages/Numeric-20.3/Demo] steve% python -c "import
NumTut;NumTut.test()"
>>> view(greece)
>>> view(1.0-greece)
>>> view(greeceBW)
>>> view(greece*xgrade)
>>> view(greece*ygrade)
>>> negative = 1.0 - greece
>>> view(greece*xgrade + negative*ygrade)
>>> view(red)
>>> view(green)
>>> view(blue)
>>> sine = sin(xgrade*6*pi)
>>> view(green*sine + red*(1.0-sine))
>>> view(green + red[::-1])
>>> view(transpose(greece, (1,0,2)))
[spicklemire:~/Packages/Numeric-20.3/Demo] steve% python -c "import
NumTut;NumTut.test()"
>>> view(greece)
>>> view(1.0-greece)
Hmm.. error encountered -> 35
error in ufunc generic function:: Resource temporarily unavailable
>>> view(greeceBW)
>>> view(greece*xgrade)
>>> view(greece*ygrade)
>>> negative = 1.0 - greece
>>> view(greece*xgrade + negative*ygrade)
>>> view(red)
>>> view(green)
>>> view(blue)
>>> sine = sin(xgrade*6*pi)
>>> view(green*sine + red*(1.0-sine))
>>> view(green + red[::-1])
>>> view(transpose(greece, (1,0,2)))
So... ufuncs just multiply, divide and suchlike! What "resources" are
not available? It's fairly clear that it's thread related, since all the
Numeric tests pass every time in a non-threaded example, as well as my
own non-threaded testing to attempt to reproduce what I thought
originally was a linking problem.
So... how can I track down where errno is actually getting set? Does the
fact that it happens "randomly" mean that it's not due to some numerical
computation, but more likely about timing between threads?
thanks,
-steve
On Monday, February 25, 2002, at 05:43 PM, Gordon Messmer wrote:
> Your code doesn't look like it's using threads... I missed the early
> part of this thread. Did you say that this problem is OS X specific,
> for sure?
>
> On Sun, 2002-02-24 at 22:12, Steve Spicklemire wrote:
>> Nope.. no help. It's looking like the problem might be that errno is
>> being set in one thread, and detected in another. Does that sound
>> possible?
>>
>
_______________________________________________
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel