On Montag 29 Dezember 2008, Robert Kern wrote:
> On Sun, Dec 28, 2008 at 19:23, Andreas Klöckner <li...@informa.tiker.net> 
wrote:
> > Hi all,
> >
> > I don't think PyObject pointers should be accessible via the buffer
> > interface. I'd throw an error, but maybe a (silenceable) warning would
> > do. Would have saved me some bug-hunting.
>
> Can you describe in more detail what problem it caused?

Well, I'm a little bit embarrassed. :) But here goes.

I have one-line MPI wrappers that build on Boost.MPI and Boost.Python. They 
take a numpy array, obtain its buffer, and shove that into Boost.MPI's 
isend(). My code does some sort of term evaluation, and instead of shoving the 
evaluated floating point vector into MPI, it instead used the (un-evaluated) 
symbolic vector, which is represented as an object array. My MPI wrapper 
happily handed that object array's buffer to MPI. Oddly, instead of the 
deserved segfault, I just got garbage data on the other end. (Well, some other 
machine's PyObject pointers, really.)

I guess I'm wishing I would've been prevented from falling into that trap, and 
I ended up wondering if there actually is a legitimate use of the buffer 
interface for object arrays.

Andreas

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to