|
|
Subject: Re: API broken after 1.1.1 (previously "crashes after switching to 1.3.x") - msg#00010
List: python.numeric.general
That worked, thanks! BTW, Are you planning to release soon?
aludos,
<ADRIAN>
Todd Miller wrote:
On Thu, 2005-06-02 at 19:11, Adrian E. Feiguin wrote:
Hi Todd,
I compiled the cvs version and it seems that you have fixed the problem,
excellent! However, your "fix" for older versions doesn't work, any
suggestions?
Try this instead (or get and use the "real" argc, argv):
PySys_SetArgv(0, &"");
Todd
Thanks!
<ADRIAN>
Todd Miller wrote:
I looked over your diffs but I don't think they're related to the
problem you're seeing.
From your previous posts and those of Sebastian, I had the impression
that you're using numarray in an embedded context... so I found
embedded "from numarray import *".
I learned that numarray embedding "broke" for numarray-1.2.3 by adding
the unnecessary requirement that sys.argv exist. I fixed this in
numarray CVS. A possible alternative to my fix which should work for
older versions of numarray is to call PySys_SetArgv(0,NULL) after
Py_Initialize() to ensure that sys.argv exists.
Regards,
Todd
On Wed, 2005-06-01 at 18:37, Adrian E. Feiguin wrote:
Hi,
As I've been discussing withTodd, scigraphica crashes after switching to
a newer version of numarray. I checked that it does not crash with
Numeric, or numarray-1.1.1, so I figured that at some point something
was broken. It seems that at some point between numarray-1.1.1 and 1.2.3
some change broke the API. What I mean is that my libraries simply fail
to load numarray. I did diff between headers, and the only relevant
change that I noticed between 1.1.1 and 1.2.3 that I guess could be
related to this problem is in libnumeric.h:
132c132
< static int PyArray_Converter (PyObject *, PyObject **);
---
static int XXX_PyArray_Converter (PyObject *, PyObject **);
140c140
< static int PyArray_ValidType (int type);
---
static int XXX_PyArray_ValidType (int type);
208c208
< #define PyArray_Converter (libnumeric_API ? (*(int (*) (PyObject *,
PyObject **) ) libnumeric_API[ 25 ]) : (*(int (*) (PyObject *, PyObject
**) ) libnumeric_FatalApiError))
---
#define XXX_PyArray_Converter (libnumeric_API ? (*(int (*)
(PyObject *, PyObject **) ) libnumeric_API[ 25 ]) : (*(int (*)
(PyObject *, PyObject **) ) libnumeric_FatalApiError))
216c216
< #define PyArray_ValidType (libnumeric_API ? (*(int (*) (int type) )
libnumeric_API[ 29 ]) : (*(int (*) (int type) ) libnumeric_FatalApiError))
---
#define XXX_PyArray_ValidType (libnumeric_API ? (*(int (*) (int
type) ) libnumeric_API[ 29 ]) : (*(int (*) (int type) )
libnumeric_FatalApiError))
I hope this helps. I'll work with 1.1.1 from now on, unless you think
the problem is in my code.
Any ideas?
Thanks
<ADRIAN>
Todd Miller wrote:
Hi Adrian,
I don't think you should be doing both "import_array()" and
"import_libnumeric()". Those should be roughly equivalent. If you're
using only the Numeric compatible API (no NA_ functions) then do:
#include "numarray/arrayobject.h"
... and later in your init function:
import_array();
just like Numeric. If you also need some of the NA_ functions, then
look at Src/_dotblas.c or Src/_numarraymodule.c for how to interface
with both native and numeric compatible interfaces at the same time. If
you only need NA_ functions, look at Src/_ndarraymodule.c.
Regards,
Todd
On Fri, 2005-05-27 at 18:37 -0700, Adrian E. Feiguin wrote:
Hi Todd,
Thank you for your reply. I have a completely new installation, there
are no conflicts with previous installations.
I found that the problem is in import_libnumeric in libnumeric.h. It
seems that the libnumeric_API is not initialized because it doesn't pass
the line:
PyObject *module =
PyImport_ImportModule("numarray.libnumeric"); \
if (module != NULL)
{ \
Any ideas?
Thank you again,
<ADRIAN>
Todd Miller wrote:
Hi Adrian,
On Thu, 2005-05-26 at 18:00 -0700, Adrian E. Feiguin wrote:
Hi! I'm the lead developer of scigraphica (SG)
http://scigraphica.sourceforge.net and I'm using python and numarray to
parse math. SG is built on top of libscigraphica, and libscigraphica has
all the python code. I've been using an old version 0.6.1, and
everything worked fine. After switching to 1.6.2the program crashes.
I'll give you some info to see if you can tell me what's wrong:
I'm using:
#define PY_ARRAY_UNIQUE_SYMBOL PyArrayXXX
#include <arrayobject.h>
and in the code:
import_libnumeric();
import_array();
object=PyRun_String ("from numarray import *", Py_single_input,
main_dict, sg_dict);
(I noticed that you have to add import_libnumeric now)
In general, this is not true.
Paradoxically, if you're using the numeric compatible API,
import_array() is all you need to do. If you're using both the numarray
native and numeric compatible APIs, then you need to
import_libnumarray() and import_libnumeric().
The gdb output is:
Importing python module: sys
Importing python module: pickle
Importing python module: os
Importing python module: numarrayProgram received signal SIGSEGV,
Segmentation fault.
[Switching to Thread 1083181376 (LWP 11648)]
0x400ab0b5 in PyObject_GetAttrString ()
from
/home/afeiguin/cvs/test/libscigraphica-2/scigraphica/.libs/libscigraphica-2.0-2.0.so.0
#0 0x400ab0b5 in PyObject_GetAttrString ()
from
/home/afeiguin/cvs/test/libscigraphica-2/scigraphica/.libs/libscigraphica-2.0-2.0.so.0
#1 0x40b1ff66 in deferred_libnumarray_init () at
Src/libnumarraymodule.c:152
#2 0x40b21f8c in NA_NumArrayCheck (op=0x0) at Src/libnumarraymodule.c:1357
#3 0x40b43c1c in PyArray_Check (op=0x0) at Src/libnumericmodule.c:216
#4 0x4004d903 in python_insert_object (worksheet=0x81ba4e0, row=0, col=0,
object=0x80bda3c, orient=GTK_ORIENTATION_VERTICAL, link=0, as_is=0)
at sg_python_worksheet.c:802
#5 0x4004da12 in python_sheet (worksheet=0x81ba4e0, row=0, col=0,
command=0x8366d68 ".1", orient=GTK_ORIENTATION_VERTICAL)
at sg_python_worksheet.c:843
#6 0x40061f7c in sg_worksheet_cell_set (worksheet=0x81ba4e0, row=0, col=0,
text=0x8365520 ".1", formula=1, eval=1) at sg_worksheet.c:508
#7 0x40061d59 in set_cell (sheet=0x81ba4e0, row=0, col=0, data=0x81ba4e0)
at sg_worksheet.c:439
Look that in #4 object=0x80bda3c, and in #3 op=0x0.
Any hints?
numarray-0.6.1 is very old so in order to transition to numarray-1.3.2
you should:
a. completely delete your numarray installation
b. reinstall numarray
c. rebuild and reinstall any extensions based on numarray.
My guess is that either you have overlapping/conflicting numarray
installations or you have extensions from numarray-0.6.1 trying to run
against numarray-1.3.2.
Regards,
Todd
.
-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/numpy-discussion
-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/numpy-discussion
.
-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/numpy-discussion
-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.
Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
Was this page helpful?
Thread at a glance:
Previous Message by Date:
click to view message preview
Re: API broken after 1.1.1 (previously "crashes after switching to 1.3.x")
On Thu, 2005-06-02 at 19:11, Adrian E. Feiguin wrote:
> Hi Todd,
>
> I compiled the cvs version and it seems that you have fixed the problem,
> excellent! However, your "fix" for older versions doesn't work, any
> suggestions?
Try this instead (or get and use the "real" argc, argv):
PySys_SetArgv(0, &"");
Todd
> Thanks!
> <ADRIAN>
>
> Todd Miller wrote:
>
> >I looked over your diffs but I don't think they're related to the
> >problem you're seeing.
> >
> >>From your previous posts and those of Sebastian, I had the impression
> >that you're using numarray in an embedded context... so I found
> >embedded "from numarray import *".
> >
> >I learned that numarray embedding "broke" for numarray-1.2.3 by adding
> >the unnecessary requirement that sys.argv exist. I fixed this in
> >numarray CVS. A possible alternative to my fix which should work for
> >older versions of numarray is to call PySys_SetArgv(0,NULL) after
> >Py_Initialize() to ensure that sys.argv exists.
> >
> >Regards,
> >Todd
> >
> >On Wed, 2005-06-01 at 18:37, Adrian E. Feiguin wrote:
> >
> >
> >>Hi,
> >>
> >>As I've been discussing withTodd, scigraphica crashes after switching to
> >>a newer version of numarray. I checked that it does not crash with
> >>Numeric, or numarray-1.1.1, so I figured that at some point something
> >>was broken. It seems that at some point between numarray-1.1.1 and 1.2.3
> >>some change broke the API. What I mean is that my libraries simply fail
> >>to load numarray. I did diff between headers, and the only relevant
> >>change that I noticed between 1.1.1 and 1.2.3 that I guess could be
> >>related to this problem is in libnumeric.h:
> >>
> >>132c132
> >>< static int PyArray_Converter (PyObject *, PyObject **);
> >>---
> >> > static int XXX_PyArray_Converter (PyObject *, PyObject **);
> >>140c140
> >>< static int PyArray_ValidType (int type);
> >>---
> >> > static int XXX_PyArray_ValidType (int type);
> >>208c208
> >>< #define PyArray_Converter (libnumeric_API ? (*(int (*) (PyObject *,
> >>PyObject **) ) libnumeric_API[ 25 ]) : (*(int (*) (PyObject *, PyObject
> >>**) ) libnumeric_FatalApiError))
> >>---
> >> > #define XXX_PyArray_Converter (libnumeric_API ? (*(int (*)
> >>(PyObject *, PyObject **) ) libnumeric_API[ 25 ]) : (*(int (*)
> >>(PyObject *, PyObject **) ) libnumeric_FatalApiError))
> >>216c216
> >>< #define PyArray_ValidType (libnumeric_API ? (*(int (*) (int type) )
> >>libnumeric_API[ 29 ]) : (*(int (*) (int type) ) libnumeric_FatalApiError))
> >>---
> >> > #define XXX_PyArray_ValidType (libnumeric_API ? (*(int (*) (int
> >>type) ) libnumeric_API[ 29 ]) : (*(int (*) (int type) )
> >>libnumeric_FatalApiError))
> >>
> >>I hope this helps. I'll work with 1.1.1 from now on, unless you think
> >>the problem is in my code.
> >>Any ideas?
> >>Thanks
> >><ADRIAN>
> >>
> >>Todd Miller wrote:
> >>
> >>
> >>
> >>>Hi Adrian,
> >>>
> >>>I don't think you should be doing both "import_array()" and
> >>>"import_libnumeric()". Those should be roughly equivalent. If you're
> >>>using only the Numeric compatible API (no NA_ functions) then do:
> >>>
> >>>#include "numarray/arrayobject.h"
> >>>
> >>>... and later in your init function:
> >>>
> >>>import_array();
> >>>
> >>>just like Numeric. If you also need some of the NA_ functions, then
> >>>look at Src/_dotblas.c or Src/_numarraymodule.c for how to interface
> >>>with both native and numeric compatible interfaces at the same time. If
> >>>you only need NA_ functions, look at Src/_ndarraymodule.c.
> >>>
> >>>Regards,
> >>>Todd
> >>>
> >>>On Fri, 2005-05-27 at 18:37 -0700, Adrian E. Feiguin wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>Hi Todd,
> >>>>
> >>>>Thank you for your reply. I have a completely new installation, there
> >>>>are no conflicts with previous installations.
> >>>>I found that the problem is in import_libnumeric in libnumeric.h. It
> >>>>seems that the libnumeric_API is not initialized because it doesn't pass
> >>>>the line:
> >>>>
> >>>> PyObject *module =
> >>>>PyImport_ImportModule("numarray.libnumeric"); \
> >>>> if (module != NULL)
> >>>>{ \
> >>>>
> >>>>Any ideas?
> >>>>Thank you again,
> >>>><ADRIAN>
> >>>>
> >>>>
> >>>>Todd Miller wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>Hi Adrian,
> >>>>>
> >>>>>On Thu, 2005-05-26 at 18:00 -0700, Adrian E. Feiguin wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>Hi! I'm the lead developer of scigraphica (SG)
> >>>>>>http://scigraphica.sourceforge.net and I'm using python and numarray to
> >>>>>>parse math. SG is built on top of libscigraphica, and libscigraphica
> >>>>>>has
> >>>>>>all the python code. I've been using an old version 0.6.1, and
> >>>>>>everything worked fine. After switching to 1.6.2the program crashes.
> >>>>>>I'll give you some info to see if you can tell me what's wrong:
> >>>>>>
> >>>>>>I'm using:
> >>>>>>#define PY_ARRAY_UNIQUE_SYMBOL PyArrayXXX
> >>>>>>#include <arrayobject.h>
> >>>>>>
> >>>>>>and in the code:
> >>>>>> import_libnumeric();
> >>>>>> import_array();
> >>>>>>
> >>>>>> object=PyRun_String ("from numarray import *", Py_single_input,
> >>>>>>main_dict, sg_dict);
> >>>>>>
> >>>>>>(I noticed that you have to add import_libnumeric now)
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>In general, this is not true.
> >>>>>
> >>>>>Paradoxically, if you're using the numeric compatible API,
> >>>>>import_array() is all you need to do. If you're using both the numarray
> >>>>>native and numeric compatible APIs, then you need to
> >>>>>import_libnumarray() and import_libnumeric().
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>The gdb output is:
> >>>>>>
> >>>>>>Importing python module: sys
> >>>>>>Importing python module: pickle
> >>>>>>Importing python module: os
> >>>>>>Importing python module: numarrayProgram received signal SIGSEGV,
> >>>>>>Segmentation fault.
> >>>>>>[Switching to Thread 1083181376 (LWP 11648)]
> >>>>>>0x400ab0b5 in PyObject_GetAttrString ()
> >>>>>> from
> >>>>>>/home/afeiguin/cvs/test/libscigraphica-2/scigraphica/.libs/libscigraphica-2.0-2.0.so.0
> >>>>>>#0 0x400ab0b5 in PyObject_GetAttrString ()
> >>>>>> from
> >>>>>>/home/afeiguin/cvs/test/libscigraphica-2/scigraphica/.libs/libscigraphica-2.0-2.0.so.0
> >>>>>>#1 0x40b1ff66 in deferred_libnumarray_init () at
> >>>>>>Src/libnumarraymodule.c:152
> >>>>>>#2 0x40b21f8c in NA_NumArrayCheck (op=0x0) at
> >>>>>>Src/libnumarraymodule.c:1357
> >>>>>>#3 0x40b43c1c in PyArray_Check (op=0x0) at Src/libnumericmodule.c:216
> >>>>>>#4 0x4004d903 in python_insert_object (worksheet=0x81ba4e0, row=0,
> >>>>>>col=0,
> >>>>>> object=0x80bda3c, orient=GTK_ORIENTATION_VERTICAL, link=0, as_is=0)
> >>>>>> at sg_python_worksheet.c:802
> >>>>>>#5 0x4004da12 in python_sheet (worksheet=0x81ba4e0, row=0, col=0,
> >>>>>> command=0x8366d68 ".1", orient=GTK_ORIENTATION_VERTICAL)
> >>>>>> at sg_python_worksheet.c:843
> >>>>>>#6 0x40061f7c in sg_worksheet_cell_set (worksheet=0x81ba4e0, row=0,
> >>>>>>col=0,
> >>>>>> text=0x8365520 ".1", formula=1, eval=1) at sg_worksheet.c:508
> >>>>>>#7 0x40061d59 in set_cell (sheet=0x81ba4e0, row=0, col=0,
> >>>>>>data=0x81ba4e0)
> >>>>>> at sg_worksheet.c:439
> >>>>>>
> >>>>>>Look that in #4 object=0x80bda3c, and in #3 op=0x0.
> >>>>>>Any hints?
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>numarray-0.6.1 is very old so in order to transition to numarray-1.3.2
> >>>>>you should:
> >>>>>
> >>>>>a. completely delete your numarray installation
> >>>>>
> >>>>>b. reinstall numarray
> >>>>>
> >>>>>c. rebuild and reinstall any extensions based on numarray.
> >>>>>
> >>>>>My guess is that either you have overlapping/conflicting numarray
> >>>>>installations or you have extensions from numarray-0.6.1 trying to run
> >>>>>against numarray-1.3.2.
> >>>>>
> >>>>>Regards,
> >>>>>Todd
> >>>>>
> >>>>>
> >>>>>.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>-------------------------------------------------------
> >>>>This SF.Net email is sponsored by Yahoo.
> >>>>Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
> >>>>Search APIs Find out how you can build Yahoo! directly into your own
> >>>>Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
> >>>>_______________________________________________
> >>>>Numpy-discussion mailing list
> >>>>Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
> >>>>https://lists.sourceforge.net/lists/listinfo/numpy-discussion
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>-------------------------------------------------------
> >>>This SF.Net email is sponsored by Yahoo.
> >>>Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
> >>>Search APIs Find out how you can build Yahoo! directly into your own
> >>>Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
> >>>_______________________________________________
> >>>Numpy-discussion mailing list
> >>>Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
> >>>https://lists.sourceforge.net/lists/listinfo/numpy-discussion
> >>>
> >>>.
> >>>
> >>>
> >>>
> >>>
> >>>
> >>
> >>-------------------------------------------------------
> >>This SF.Net email is sponsored by Yahoo.
> >>Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
> >>Search APIs Find out how you can build Yahoo! directly into your own
> >>Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
> >>_______________________________________________
> >>Numpy-discussion mailing list
> >>Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
> >>https://lists.sourceforge.net/lists/listinfo/numpy-discussion
> >>
> >>
--
-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
Next Message by Date:
click to view message preview
Re: API broken after 1.1.1 (previously "crashes after switching to 1.3.x")
On Fri, 2005-06-03 at 13:56, Adrian E. Feiguin wrote:
> That worked, thanks! BTW, Are you planning to release soon?
Not immediately. I'll crank out 1.3.3 in a couple weeks or so.
Regards,
Todd
> aludos,
> <ADRIAN>
>
> Todd Miller wrote:
>
> >On Thu, 2005-06-02 at 19:11, Adrian E. Feiguin wrote:
> >
> >
> >>Hi Todd,
> >>
> >>I compiled the cvs version and it seems that you have fixed the problem,
> >>excellent! However, your "fix" for older versions doesn't work, any
> >>suggestions?
> >>
> >>
> >
> >Try this instead (or get and use the "real" argc, argv):
> >
> >PySys_SetArgv(0, &"");
> >
> >
> >Todd
> >
> >
> >
> >>Thanks!
> >><ADRIAN>
> >>
> >>Todd Miller wrote:
> >>
> >>
> >>
> >>>I looked over your diffs but I don't think they're related to the
> >>>problem you're seeing.
> >>>
> >>>>From your previous posts and those of Sebastian, I had the impression
> >>>that you're using numarray in an embedded context... so I found
> >>>embedded "from numarray import *".
> >>>
> >>>I learned that numarray embedding "broke" for numarray-1.2.3 by adding
> >>>the unnecessary requirement that sys.argv exist. I fixed this in
> >>>numarray CVS. A possible alternative to my fix which should work for
> >>>older versions of numarray is to call PySys_SetArgv(0,NULL) after
> >>>Py_Initialize() to ensure that sys.argv exists.
> >>>
> >>>Regards,
> >>>Todd
> >>>
> >>>On Wed, 2005-06-01 at 18:37, Adrian E. Feiguin wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>Hi,
> >>>>
> >>>>As I've been discussing withTodd, scigraphica crashes after switching to
> >>>>a newer version of numarray. I checked that it does not crash with
> >>>>Numeric, or numarray-1.1.1, so I figured that at some point something
> >>>>was broken. It seems that at some point between numarray-1.1.1 and 1.2.3
> >>>>some change broke the API. What I mean is that my libraries simply fail
> >>>>to load numarray. I did diff between headers, and the only relevant
> >>>>change that I noticed between 1.1.1 and 1.2.3 that I guess could be
> >>>>related to this problem is in libnumeric.h:
> >>>>
> >>>>132c132
> >>>>< static int PyArray_Converter (PyObject *, PyObject **);
> >>>>---
> >>>>
> >>>>
> >>>>>static int XXX_PyArray_Converter (PyObject *, PyObject **);
> >>>>>
> >>>>>
> >>>>140c140
> >>>>< static int PyArray_ValidType (int type);
> >>>>---
> >>>>
> >>>>
> >>>>>static int XXX_PyArray_ValidType (int type);
> >>>>>
> >>>>>
> >>>>208c208
> >>>>< #define PyArray_Converter (libnumeric_API ? (*(int (*) (PyObject *,
> >>>>PyObject **) ) libnumeric_API[ 25 ]) : (*(int (*) (PyObject *, PyObject
> >>>>**) ) libnumeric_FatalApiError))
> >>>>---
> >>>>
> >>>>
> >>>>>#define XXX_PyArray_Converter (libnumeric_API ? (*(int (*)
> >>>>>
> >>>>>
> >>>>(PyObject *, PyObject **) ) libnumeric_API[ 25 ]) : (*(int (*)
> >>>>(PyObject *, PyObject **) ) libnumeric_FatalApiError))
> >>>>216c216
> >>>>< #define PyArray_ValidType (libnumeric_API ? (*(int (*) (int type) )
> >>>>libnumeric_API[ 29 ]) : (*(int (*) (int type) )
> >>>>libnumeric_FatalApiError))
> >>>>---
> >>>>
> >>>>
> >>>>>#define XXX_PyArray_ValidType (libnumeric_API ? (*(int (*) (int
> >>>>>
> >>>>>
> >>>>type) ) libnumeric_API[ 29 ]) : (*(int (*) (int type) )
> >>>>libnumeric_FatalApiError))
> >>>>
> >>>>I hope this helps. I'll work with 1.1.1 from now on, unless you think
> >>>>the problem is in my code.
> >>>>Any ideas?
> >>>>Thanks
> >>>><ADRIAN>
> >>>>
> >>>>Todd Miller wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>Hi Adrian,
> >>>>>
> >>>>>I don't think you should be doing both "import_array()" and
> >>>>>"import_libnumeric()". Those should be roughly equivalent. If you're
> >>>>>using only the Numeric compatible API (no NA_ functions) then do:
> >>>>>
> >>>>>#include "numarray/arrayobject.h"
> >>>>>
> >>>>>... and later in your init function:
> >>>>>
> >>>>>import_array();
> >>>>>
> >>>>>just like Numeric. If you also need some of the NA_ functions, then
> >>>>>look at Src/_dotblas.c or Src/_numarraymodule.c for how to interface
> >>>>>with both native and numeric compatible interfaces at the same time. If
> >>>>>you only need NA_ functions, look at Src/_ndarraymodule.c.
> >>>>>
> >>>>>Regards,
> >>>>>Todd
> >>>>>
> >>>>>On Fri, 2005-05-27 at 18:37 -0700, Adrian E. Feiguin wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>Hi Todd,
> >>>>>>
> >>>>>>Thank you for your reply. I have a completely new installation, there
> >>>>>>are no conflicts with previous installations.
> >>>>>>I found that the problem is in import_libnumeric in libnumeric.h. It
> >>>>>>seems that the libnumeric_API is not initialized because it doesn't
> >>>>>>pass
> >>>>>>the line:
> >>>>>>
> >>>>>> PyObject *module =
> >>>>>>PyImport_ImportModule("numarray.libnumeric"); \
> >>>>>> if (module != NULL)
> >>>>>>{ \
> >>>>>>
> >>>>>>Any ideas?
> >>>>>>Thank you again,
> >>>>>><ADRIAN>
> >>>>>>
> >>>>>>
> >>>>>>Todd Miller wrote:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>>Hi Adrian,
> >>>>>>>
> >>>>>>>On Thu, 2005-05-26 at 18:00 -0700, Adrian E. Feiguin wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>>Hi! I'm the lead developer of scigraphica (SG)
> >>>>>>>>http://scigraphica.sourceforge.net and I'm using python and numarray
> >>>>>>>>to
> >>>>>>>>parse math. SG is built on top of libscigraphica, and libscigraphica
> >>>>>>>>has
> >>>>>>>>all the python code. I've been using an old version 0.6.1, and
> >>>>>>>>everything worked fine. After switching to 1.6.2the program crashes.
> >>>>>>>>I'll give you some info to see if you can tell me what's wrong:
> >>>>>>>>
> >>>>>>>>I'm using:
> >>>>>>>>#define PY_ARRAY_UNIQUE_SYMBOL PyArrayXXX
> >>>>>>>>#include <arrayobject.h>
> >>>>>>>>
> >>>>>>>>and in the code:
> >>>>>>>> import_libnumeric();
> >>>>>>>> import_array();
> >>>>>>>>
> >>>>>>>> object=PyRun_String ("from numarray import *", Py_single_input,
> >>>>>>>>main_dict, sg_dict);
> >>>>>>>>
> >>>>>>>>(I noticed that you have to add import_libnumeric now)
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>In general, this is not true.
> >>>>>>>
> >>>>>>>Paradoxically, if you're using the numeric compatible API,
> >>>>>>>import_array() is all you need to do. If you're using both the
> >>>>>>>numarray
> >>>>>>>native and numeric compatible APIs, then you need to
> >>>>>>>import_libnumarray() and import_libnumeric().
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>>The gdb output is:
> >>>>>>>>
> >>>>>>>>Importing python module: sys
> >>>>>>>>Importing python module: pickle
> >>>>>>>>Importing python module: os
> >>>>>>>>Importing python module: numarrayProgram received signal SIGSEGV,
> >>>>>>>>Segmentation fault.
> >>>>>>>>[Switching to Thread 1083181376 (LWP 11648)]
> >>>>>>>>0x400ab0b5 in PyObject_GetAttrString ()
> >>>>>>>>from
> >>>>>>>>/home/afeiguin/cvs/test/libscigraphica-2/scigraphica/.libs/libscigraphica-2.0-2.0.so.0
> >>>>>>>>#0 0x400ab0b5 in PyObject_GetAttrString ()
> >>>>>>>>from
> >>>>>>>>/home/afeiguin/cvs/test/libscigraphica-2/scigraphica/.libs/libscigraphica-2.0-2.0.so.0
> >>>>>>>>#1 0x40b1ff66 in deferred_libnumarray_init () at
> >>>>>>>>Src/libnumarraymodule.c:152
> >>>>>>>>#2 0x40b21f8c in NA_NumArrayCheck (op=0x0) at
> >>>>>>>>Src/libnumarraymodule.c:1357
> >>>>>>>>#3 0x40b43c1c in PyArray_Check (op=0x0) at Src/libnumericmodule.c:216
> >>>>>>>>#4 0x4004d903 in python_insert_object (worksheet=0x81ba4e0, row=0,
> >>>>>>>>col=0,
> >>>>>>>> object=0x80bda3c, orient=GTK_ORIENTATION_VERTICAL, link=0, as_is=0)
> >>>>>>>> at sg_python_worksheet.c:802
> >>>>>>>>#5 0x4004da12 in python_sheet (worksheet=0x81ba4e0, row=0, col=0,
> >>>>>>>> command=0x8366d68 ".1", orient=GTK_ORIENTATION_VERTICAL)
> >>>>>>>> at sg_python_worksheet.c:843
> >>>>>>>>#6 0x40061f7c in sg_worksheet_cell_set (worksheet=0x81ba4e0, row=0,
> >>>>>>>>col=0,
> >>>>>>>> text=0x8365520 ".1", formula=1, eval=1) at sg_worksheet.c:508
> >>>>>>>>#7 0x40061d59 in set_cell (sheet=0x81ba4e0, row=0, col=0,
> >>>>>>>>data=0x81ba4e0)
> >>>>>>>> at sg_worksheet.c:439
> >>>>>>>>
> >>>>>>>>Look that in #4 object=0x80bda3c, and in #3 op=0x0.
> >>>>>>>>Any hints?
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>numarray-0.6.1 is very old so in order to transition to numarray-1.3.2
> >>>>>>>you should:
> >>>>>>>
> >>>>>>>a. completely delete your numarray installation
> >>>>>>>
> >>>>>>>b. reinstall numarray
> >>>>>>>
> >>>>>>>c. rebuild and reinstall any extensions based on numarray.
> >>>>>>>
> >>>>>>>My guess is that either you have overlapping/conflicting numarray
> >>>>>>>installations or you have extensions from numarray-0.6.1 trying to run
> >>>>>>>against numarray-1.3.2.
> >>>>>>>
> >>>>>>>Regards,
> >>>>>>>Todd
> >>>>>>>
> >>>>>>>
> >>>>>>>.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>-------------------------------------------------------
> >>>>>>This SF.Net email is sponsored by Yahoo.
> >>>>>>Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
> >>>>>>Search APIs Find out how you can build Yahoo! directly into your own
> >>>>>>Applications - visit
> >>>>>>http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
> >>>>>>_______________________________________________
> >>>>>>Numpy-discussion mailing list
> >>>>>>Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
> >>>>>>https://lists.sourceforge.net/lists/listinfo/numpy-discussion
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>-------------------------------------------------------
> >>>>>This SF.Net email is sponsored by Yahoo.
> >>>>>Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
> >>>>>Search APIs Find out how you can build Yahoo! directly into your own
> >>>>>Applications - visit
> >>>>>http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
> >>>>>_______________________________________________
> >>>>>Numpy-discussion mailing list
> >>>>>Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
> >>>>>https://lists.sourceforge.net/lists/listinfo/numpy-discussion
> >>>>>
> >>>>>.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>-------------------------------------------------------
> >>>>This SF.Net email is sponsored by Yahoo.
> >>>>Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
> >>>>Search APIs Find out how you can build Yahoo! directly into your own
> >>>>Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
> >>>>_______________________________________________
> >>>>Numpy-discussion mailing list
> >>>>Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
> >>>>https://lists.sourceforge.net/lists/listinfo/numpy-discussion
> >>>>
> >>>>
> >>>>
> >>>>
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput
> a projector? How fast can you ride your desk chair down the office luge track?
> If you want to score the big prize, get to know the little guy.
> Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
> https://lists.sourceforge.net/lists/listinfo/numpy-discussion
--
-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.
Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
Previous Message by Thread:
click to view message preview
Re: API broken after 1.1.1 (previously "crashes after switching to 1.3.x")
On Thu, 2005-06-02 at 19:11, Adrian E. Feiguin wrote:
> Hi Todd,
>
> I compiled the cvs version and it seems that you have fixed the problem,
> excellent! However, your "fix" for older versions doesn't work, any
> suggestions?
Try this instead (or get and use the "real" argc, argv):
PySys_SetArgv(0, &"");
Todd
> Thanks!
> <ADRIAN>
>
> Todd Miller wrote:
>
> >I looked over your diffs but I don't think they're related to the
> >problem you're seeing.
> >
> >>From your previous posts and those of Sebastian, I had the impression
> >that you're using numarray in an embedded context... so I found
> >embedded "from numarray import *".
> >
> >I learned that numarray embedding "broke" for numarray-1.2.3 by adding
> >the unnecessary requirement that sys.argv exist. I fixed this in
> >numarray CVS. A possible alternative to my fix which should work for
> >older versions of numarray is to call PySys_SetArgv(0,NULL) after
> >Py_Initialize() to ensure that sys.argv exists.
> >
> >Regards,
> >Todd
> >
> >On Wed, 2005-06-01 at 18:37, Adrian E. Feiguin wrote:
> >
> >
> >>Hi,
> >>
> >>As I've been discussing withTodd, scigraphica crashes after switching to
> >>a newer version of numarray. I checked that it does not crash with
> >>Numeric, or numarray-1.1.1, so I figured that at some point something
> >>was broken. It seems that at some point between numarray-1.1.1 and 1.2.3
> >>some change broke the API. What I mean is that my libraries simply fail
> >>to load numarray. I did diff between headers, and the only relevant
> >>change that I noticed between 1.1.1 and 1.2.3 that I guess could be
> >>related to this problem is in libnumeric.h:
> >>
> >>132c132
> >>< static int PyArray_Converter (PyObject *, PyObject **);
> >>---
> >> > static int XXX_PyArray_Converter (PyObject *, PyObject **);
> >>140c140
> >>< static int PyArray_ValidType (int type);
> >>---
> >> > static int XXX_PyArray_ValidType (int type);
> >>208c208
> >>< #define PyArray_Converter (libnumeric_API ? (*(int (*) (PyObject *,
> >>PyObject **) ) libnumeric_API[ 25 ]) : (*(int (*) (PyObject *, PyObject
> >>**) ) libnumeric_FatalApiError))
> >>---
> >> > #define XXX_PyArray_Converter (libnumeric_API ? (*(int (*)
> >>(PyObject *, PyObject **) ) libnumeric_API[ 25 ]) : (*(int (*)
> >>(PyObject *, PyObject **) ) libnumeric_FatalApiError))
> >>216c216
> >>< #define PyArray_ValidType (libnumeric_API ? (*(int (*) (int type) )
> >>libnumeric_API[ 29 ]) : (*(int (*) (int type) ) libnumeric_FatalApiError))
> >>---
> >> > #define XXX_PyArray_ValidType (libnumeric_API ? (*(int (*) (int
> >>type) ) libnumeric_API[ 29 ]) : (*(int (*) (int type) )
> >>libnumeric_FatalApiError))
> >>
> >>I hope this helps. I'll work with 1.1.1 from now on, unless you think
> >>the problem is in my code.
> >>Any ideas?
> >>Thanks
> >><ADRIAN>
> >>
> >>Todd Miller wrote:
> >>
> >>
> >>
> >>>Hi Adrian,
> >>>
> >>>I don't think you should be doing both "import_array()" and
> >>>"import_libnumeric()". Those should be roughly equivalent. If you're
> >>>using only the Numeric compatible API (no NA_ functions) then do:
> >>>
> >>>#include "numarray/arrayobject.h"
> >>>
> >>>... and later in your init function:
> >>>
> >>>import_array();
> >>>
> >>>just like Numeric. If you also need some of the NA_ functions, then
> >>>look at Src/_dotblas.c or Src/_numarraymodule.c for how to interface
> >>>with both native and numeric compatible interfaces at the same time. If
> >>>you only need NA_ functions, look at Src/_ndarraymodule.c.
> >>>
> >>>Regards,
> >>>Todd
> >>>
> >>>On Fri, 2005-05-27 at 18:37 -0700, Adrian E. Feiguin wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>Hi Todd,
> >>>>
> >>>>Thank you for your reply. I have a completely new installation, there
> >>>>are no conflicts with previous installations.
> >>>>I found that the problem is in import_libnumeric in libnumeric.h. It
> >>>>seems that the libnumeric_API is not initialized because it doesn't pass
> >>>>the line:
> >>>>
> >>>> PyObject *module =
> >>>>PyImport_ImportModule("numarray.libnumeric"); \
> >>>> if (module != NULL)
> >>>>{ \
> >>>>
> >>>>Any ideas?
> >>>>Thank you again,
> >>>><ADRIAN>
> >>>>
> >>>>
> >>>>Todd Miller wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>Hi Adrian,
> >>>>>
> >>>>>On Thu, 2005-05-26 at 18:00 -0700, Adrian E. Feiguin wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>Hi! I'm the lead developer of scigraphica (SG)
> >>>>>>http://scigraphica.sourceforge.net and I'm using python and numarray to
> >>>>>>parse math. SG is built on top of libscigraphica, and libscigraphica
> >>>>>>has
> >>>>>>all the python code. I've been using an old version 0.6.1, and
> >>>>>>everything worked fine. After switching to 1.6.2the program crashes.
> >>>>>>I'll give you some info to see if you can tell me what's wrong:
> >>>>>>
> >>>>>>I'm using:
> >>>>>>#define PY_ARRAY_UNIQUE_SYMBOL PyArrayXXX
> >>>>>>#include <arrayobject.h>
> >>>>>>
> >>>>>>and in the code:
> >>>>>> import_libnumeric();
> >>>>>> import_array();
> >>>>>>
> >>>>>> object=PyRun_String ("from numarray import *", Py_single_input,
> >>>>>>main_dict, sg_dict);
> >>>>>>
> >>>>>>(I noticed that you have to add import_libnumeric now)
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>In general, this is not true.
> >>>>>
> >>>>>Paradoxically, if you're using the numeric compatible API,
> >>>>>import_array() is all you need to do. If you're using both the numarray
> >>>>>native and numeric compatible APIs, then you need to
> >>>>>import_libnumarray() and import_libnumeric().
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>The gdb output is:
> >>>>>>
> >>>>>>Importing python module: sys
> >>>>>>Importing python module: pickle
> >>>>>>Importing python module: os
> >>>>>>Importing python module: numarrayProgram received signal SIGSEGV,
> >>>>>>Segmentation fault.
> >>>>>>[Switching to Thread 1083181376 (LWP 11648)]
> >>>>>>0x400ab0b5 in PyObject_GetAttrString ()
> >>>>>> from
> >>>>>>/home/afeiguin/cvs/test/libscigraphica-2/scigraphica/.libs/libscigraphica-2.0-2.0.so.0
> >>>>>>#0 0x400ab0b5 in PyObject_GetAttrString ()
> >>>>>> from
> >>>>>>/home/afeiguin/cvs/test/libscigraphica-2/scigraphica/.libs/libscigraphica-2.0-2.0.so.0
> >>>>>>#1 0x40b1ff66 in deferred_libnumarray_init () at
> >>>>>>Src/libnumarraymodule.c:152
> >>>>>>#2 0x40b21f8c in NA_NumArrayCheck (op=0x0) at
> >>>>>>Src/libnumarraymodule.c:1357
> >>>>>>#3 0x40b43c1c in PyArray_Check (op=0x0) at Src/libnumericmodule.c:216
> >>>>>>#4 0x4004d903 in python_insert_object (worksheet=0x81ba4e0, row=0,
> >>>>>>col=0,
> >>>>>> object=0x80bda3c, orient=GTK_ORIENTATION_VERTICAL, link=0, as_is=0)
> >>>>>> at sg_python_worksheet.c:802
> >>>>>>#5 0x4004da12 in python_sheet (worksheet=0x81ba4e0, row=0, col=0,
> >>>>>> command=0x8366d68 ".1", orient=GTK_ORIENTATION_VERTICAL)
> >>>>>> at sg_python_worksheet.c:843
> >>>>>>#6 0x40061f7c in sg_worksheet_cell_set (worksheet=0x81ba4e0, row=0,
> >>>>>>col=0,
> >>>>>> text=0x8365520 ".1", formula=1, eval=1) at sg_worksheet.c:508
> >>>>>>#7 0x40061d59 in set_cell (sheet=0x81ba4e0, row=0, col=0,
> >>>>>>data=0x81ba4e0)
> >>>>>> at sg_worksheet.c:439
> >>>>>>
> >>>>>>Look that in #4 object=0x80bda3c, and in #3 op=0x0.
> >>>>>>Any hints?
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>numarray-0.6.1 is very old so in order to transition to numarray-1.3.2
> >>>>>you should:
> >>>>>
> >>>>>a. completely delete your numarray installation
> >>>>>
> >>>>>b. reinstall numarray
> >>>>>
> >>>>>c. rebuild and reinstall any extensions based on numarray.
> >>>>>
> >>>>>My guess is that either you have overlapping/conflicting numarray
> >>>>>installations or you have extensions from numarray-0.6.1 trying to run
> >>>>>against numarray-1.3.2.
> >>>>>
> >>>>>Regards,
> >>>>>Todd
> >>>>>
> >>>>>
> >>>>>.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>-------------------------------------------------------
> >>>>This SF.Net email is sponsored by Yahoo.
> >>>>Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
> >>>>Search APIs Find out how you can build Yahoo! directly into your own
> >>>>Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
> >>>>_______________________________________________
> >>>>Numpy-discussion mailing list
> >>>>Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
> >>>>https://lists.sourceforge.net/lists/listinfo/numpy-discussion
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>-------------------------------------------------------
> >>>This SF.Net email is sponsored by Yahoo.
> >>>Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
> >>>Search APIs Find out how you can build Yahoo! directly into your own
> >>>Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
> >>>_______________________________________________
> >>>Numpy-discussion mailing list
> >>>Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
> >>>https://lists.sourceforge.net/lists/listinfo/numpy-discussion
> >>>
> >>>.
> >>>
> >>>
> >>>
> >>>
> >>>
> >>
> >>-------------------------------------------------------
> >>This SF.Net email is sponsored by Yahoo.
> >>Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
> >>Search APIs Find out how you can build Yahoo! directly into your own
> >>Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
> >>_______________________________________________
> >>Numpy-discussion mailing list
> >>Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
> >>https://lists.sourceforge.net/lists/listinfo/numpy-discussion
> >>
> >>
--
-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
Next Message by Thread:
click to view message preview
Re: API broken after 1.1.1 (previously "crashes after switching to 1.3.x")
On Fri, 2005-06-03 at 13:56, Adrian E. Feiguin wrote:
> That worked, thanks! BTW, Are you planning to release soon?
Not immediately. I'll crank out 1.3.3 in a couple weeks or so.
Regards,
Todd
> aludos,
> <ADRIAN>
>
> Todd Miller wrote:
>
> >On Thu, 2005-06-02 at 19:11, Adrian E. Feiguin wrote:
> >
> >
> >>Hi Todd,
> >>
> >>I compiled the cvs version and it seems that you have fixed the problem,
> >>excellent! However, your "fix" for older versions doesn't work, any
> >>suggestions?
> >>
> >>
> >
> >Try this instead (or get and use the "real" argc, argv):
> >
> >PySys_SetArgv(0, &"");
> >
> >
> >Todd
> >
> >
> >
> >>Thanks!
> >><ADRIAN>
> >>
> >>Todd Miller wrote:
> >>
> >>
> >>
> >>>I looked over your diffs but I don't think they're related to the
> >>>problem you're seeing.
> >>>
> >>>>From your previous posts and those of Sebastian, I had the impression
> >>>that you're using numarray in an embedded context... so I found
> >>>embedded "from numarray import *".
> >>>
> >>>I learned that numarray embedding "broke" for numarray-1.2.3 by adding
> >>>the unnecessary requirement that sys.argv exist. I fixed this in
> >>>numarray CVS. A possible alternative to my fix which should work for
> >>>older versions of numarray is to call PySys_SetArgv(0,NULL) after
> >>>Py_Initialize() to ensure that sys.argv exists.
> >>>
> >>>Regards,
> >>>Todd
> >>>
> >>>On Wed, 2005-06-01 at 18:37, Adrian E. Feiguin wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>Hi,
> >>>>
> >>>>As I've been discussing withTodd, scigraphica crashes after switching to
> >>>>a newer version of numarray. I checked that it does not crash with
> >>>>Numeric, or numarray-1.1.1, so I figured that at some point something
> >>>>was broken. It seems that at some point between numarray-1.1.1 and 1.2.3
> >>>>some change broke the API. What I mean is that my libraries simply fail
> >>>>to load numarray. I did diff between headers, and the only relevant
> >>>>change that I noticed between 1.1.1 and 1.2.3 that I guess could be
> >>>>related to this problem is in libnumeric.h:
> >>>>
> >>>>132c132
> >>>>< static int PyArray_Converter (PyObject *, PyObject **);
> >>>>---
> >>>>
> >>>>
> >>>>>static int XXX_PyArray_Converter (PyObject *, PyObject **);
> >>>>>
> >>>>>
> >>>>140c140
> >>>>< static int PyArray_ValidType (int type);
> >>>>---
> >>>>
> >>>>
> >>>>>static int XXX_PyArray_ValidType (int type);
> >>>>>
> >>>>>
> >>>>208c208
> >>>>< #define PyArray_Converter (libnumeric_API ? (*(int (*) (PyObject *,
> >>>>PyObject **) ) libnumeric_API[ 25 ]) : (*(int (*) (PyObject *, PyObject
> >>>>**) ) libnumeric_FatalApiError))
> >>>>---
> >>>>
> >>>>
> >>>>>#define XXX_PyArray_Converter (libnumeric_API ? (*(int (*)
> >>>>>
> >>>>>
> >>>>(PyObject *, PyObject **) ) libnumeric_API[ 25 ]) : (*(int (*)
> >>>>(PyObject *, PyObject **) ) libnumeric_FatalApiError))
> >>>>216c216
> >>>>< #define PyArray_ValidType (libnumeric_API ? (*(int (*) (int type) )
> >>>>libnumeric_API[ 29 ]) : (*(int (*) (int type) )
> >>>>libnumeric_FatalApiError))
> >>>>---
> >>>>
> >>>>
> >>>>>#define XXX_PyArray_ValidType (libnumeric_API ? (*(int (*) (int
> >>>>>
> >>>>>
> >>>>type) ) libnumeric_API[ 29 ]) : (*(int (*) (int type) )
> >>>>libnumeric_FatalApiError))
> >>>>
> >>>>I hope this helps. I'll work with 1.1.1 from now on, unless you think
> >>>>the problem is in my code.
> >>>>Any ideas?
> >>>>Thanks
> >>>><ADRIAN>
> >>>>
> >>>>Todd Miller wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>Hi Adrian,
> >>>>>
> >>>>>I don't think you should be doing both "import_array()" and
> >>>>>"import_libnumeric()". Those should be roughly equivalent. If you're
> >>>>>using only the Numeric compatible API (no NA_ functions) then do:
> >>>>>
> >>>>>#include "numarray/arrayobject.h"
> >>>>>
> >>>>>... and later in your init function:
> >>>>>
> >>>>>import_array();
> >>>>>
> >>>>>just like Numeric. If you also need some of the NA_ functions, then
> >>>>>look at Src/_dotblas.c or Src/_numarraymodule.c for how to interface
> >>>>>with both native and numeric compatible interfaces at the same time. If
> >>>>>you only need NA_ functions, look at Src/_ndarraymodule.c.
> >>>>>
> >>>>>Regards,
> >>>>>Todd
> >>>>>
> >>>>>On Fri, 2005-05-27 at 18:37 -0700, Adrian E. Feiguin wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>Hi Todd,
> >>>>>>
> >>>>>>Thank you for your reply. I have a completely new installation, there
> >>>>>>are no conflicts with previous installations.
> >>>>>>I found that the problem is in import_libnumeric in libnumeric.h. It
> >>>>>>seems that the libnumeric_API is not initialized because it doesn't
> >>>>>>pass
> >>>>>>the line:
> >>>>>>
> >>>>>> PyObject *module =
> >>>>>>PyImport_ImportModule("numarray.libnumeric"); \
> >>>>>> if (module != NULL)
> >>>>>>{ \
> >>>>>>
> >>>>>>Any ideas?
> >>>>>>Thank you again,
> >>>>>><ADRIAN>
> >>>>>>
> >>>>>>
> >>>>>>Todd Miller wrote:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>>Hi Adrian,
> >>>>>>>
> >>>>>>>On Thu, 2005-05-26 at 18:00 -0700, Adrian E. Feiguin wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>>Hi! I'm the lead developer of scigraphica (SG)
> >>>>>>>>http://scigraphica.sourceforge.net and I'm using python and numarray
> >>>>>>>>to
> >>>>>>>>parse math. SG is built on top of libscigraphica, and libscigraphica
> >>>>>>>>has
> >>>>>>>>all the python code. I've been using an old version 0.6.1, and
> >>>>>>>>everything worked fine. After switching to 1.6.2the program crashes.
> >>>>>>>>I'll give you some info to see if you can tell me what's wrong:
> >>>>>>>>
> >>>>>>>>I'm using:
> >>>>>>>>#define PY_ARRAY_UNIQUE_SYMBOL PyArrayXXX
> >>>>>>>>#include <arrayobject.h>
> >>>>>>>>
> >>>>>>>>and in the code:
> >>>>>>>> import_libnumeric();
> >>>>>>>> import_array();
> >>>>>>>>
> >>>>>>>> object=PyRun_String ("from numarray import *", Py_single_input,
> >>>>>>>>main_dict, sg_dict);
> >>>>>>>>
> >>>>>>>>(I noticed that you have to add import_libnumeric now)
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>In general, this is not true.
> >>>>>>>
> >>>>>>>Paradoxically, if you're using the numeric compatible API,
> >>>>>>>import_array() is all you need to do. If you're using both the
> >>>>>>>numarray
> >>>>>>>native and numeric compatible APIs, then you need to
> >>>>>>>import_libnumarray() and import_libnumeric().
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>>The gdb output is:
> >>>>>>>>
> >>>>>>>>Importing python module: sys
> >>>>>>>>Importing python module: pickle
> >>>>>>>>Importing python module: os
> >>>>>>>>Importing python module: numarrayProgram received signal SIGSEGV,
> >>>>>>>>Segmentation fault.
> >>>>>>>>[Switching to Thread 1083181376 (LWP 11648)]
> >>>>>>>>0x400ab0b5 in PyObject_GetAttrString ()
> >>>>>>>>from
> >>>>>>>>/home/afeiguin/cvs/test/libscigraphica-2/scigraphica/.libs/libscigraphica-2.0-2.0.so.0
> >>>>>>>>#0 0x400ab0b5 in PyObject_GetAttrString ()
> >>>>>>>>from
> >>>>>>>>/home/afeiguin/cvs/test/libscigraphica-2/scigraphica/.libs/libscigraphica-2.0-2.0.so.0
> >>>>>>>>#1 0x40b1ff66 in deferred_libnumarray_init () at
> >>>>>>>>Src/libnumarraymodule.c:152
> >>>>>>>>#2 0x40b21f8c in NA_NumArrayCheck (op=0x0) at
> >>>>>>>>Src/libnumarraymodule.c:1357
> >>>>>>>>#3 0x40b43c1c in PyArray_Check (op=0x0) at Src/libnumericmodule.c:216
> >>>>>>>>#4 0x4004d903 in python_insert_object (worksheet=0x81ba4e0, row=0,
> >>>>>>>>col=0,
> >>>>>>>> object=0x80bda3c, orient=GTK_ORIENTATION_VERTICAL, link=0, as_is=0)
> >>>>>>>> at sg_python_worksheet.c:802
> >>>>>>>>#5 0x4004da12 in python_sheet (worksheet=0x81ba4e0, row=0, col=0,
> >>>>>>>> command=0x8366d68 ".1", orient=GTK_ORIENTATION_VERTICAL)
> >>>>>>>> at sg_python_worksheet.c:843
> >>>>>>>>#6 0x40061f7c in sg_worksheet_cell_set (worksheet=0x81ba4e0, row=0,
> >>>>>>>>col=0,
> >>>>>>>> text=0x8365520 ".1", formula=1, eval=1) at sg_worksheet.c:508
> >>>>>>>>#7 0x40061d59 in set_cell (sheet=0x81ba4e0, row=0, col=0,
> >>>>>>>>data=0x81ba4e0)
> >>>>>>>> at sg_worksheet.c:439
> >>>>>>>>
> >>>>>>>>Look that in #4 object=0x80bda3c, and in #3 op=0x0.
> >>>>>>>>Any hints?
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>numarray-0.6.1 is very old so in order to transition to numarray-1.3.2
> >>>>>>>you should:
> >>>>>>>
> >>>>>>>a. completely delete your numarray installation
> >>>>>>>
> >>>>>>>b. reinstall numarray
> >>>>>>>
> >>>>>>>c. rebuild and reinstall any extensions based on numarray.
> >>>>>>>
> >>>>>>>My guess is that either you have overlapping/conflicting numarray
> >>>>>>>installations or you have extensions from numarray-0.6.1 trying to run
> >>>>>>>against numarray-1.3.2.
> >>>>>>>
> >>>>>>>Regards,
> >>>>>>>Todd
> >>>>>>>
> >>>>>>>
> >>>>>>>.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>-------------------------------------------------------
> >>>>>>This SF.Net email is sponsored by Yahoo.
> >>>>>>Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
> >>>>>>Search APIs Find out how you can build Yahoo! directly into your own
> >>>>>>Applications - visit
> >>>>>>http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
> >>>>>>_______________________________________________
> >>>>>>Numpy-discussion mailing list
> >>>>>>Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
> >>>>>>https://lists.sourceforge.net/lists/listinfo/numpy-discussion
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>-------------------------------------------------------
> >>>>>This SF.Net email is sponsored by Yahoo.
> >>>>>Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
> >>>>>Search APIs Find out how you can build Yahoo! directly into your own
> >>>>>Applications - visit
> >>>>>http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
> >>>>>_______________________________________________
> >>>>>Numpy-discussion mailing list
> >>>>>Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
> >>>>>https://lists.sourceforge.net/lists/listinfo/numpy-discussion
> >>>>>
> >>>>>.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>-------------------------------------------------------
> >>>>This SF.Net email is sponsored by Yahoo.
> >>>>Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
> >>>>Search APIs Find out how you can build Yahoo! directly into your own
> >>>>Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
> >>>>_______________________________________________
> >>>>Numpy-discussion mailing list
> >>>>Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
> >>>>https://lists.sourceforge.net/lists/listinfo/numpy-discussion
> >>>>
> >>>>
> >>>>
> >>>>
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput
> a projector? How fast can you ride your desk chair down the office luge track?
> If you want to score the big prize, get to know the little guy.
> Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion@xxxxxxxxxxxxxxxxxxxxx
> https://lists.sourceforge.net/lists/listinfo/numpy-discussion
--
-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.
Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
|
|