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
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