On 09/30/2012 03:59 PM, Travis Oliphant wrote: > Hey all, > > In a github-discussion with Gael and Nathaniel, we came up with a proposal > for .base that we should put before this list. Traditionally, .base has > always pointed to None for arrays that owned their own memory and to the > "most immediate" array object parent for arrays that did not own their own > memory. There was a long-standing issue related to running out of stack > space that this behavior created. > > Recently this behavior was altered so that .base always points to "the > original" object holding the memory (something exposing the buffer > interface). This created some problems for users who relied on the fact > that most of the time .base pointed to an instance of an array object. > > The proposal here is to change the behavior of .base for arrays that don't > own their own memory so that the .base attribute of an array points to "the > most original object" that is still an instance of the type of the array. > This would go into the 1.7.0 release so as to correct the issues reported. > > What are reactions to this proposal? >
In the past, I've relied on putting arbitrary Python objects in .base in my C++ to NumPy conversion code to make sure reference counting for array memory works properly. In particular, I've used Python CObjects that hold boost::shared_ptrs, which don't even have a buffer interface. So it sounds like I may be a few steps behind on the rules of what actually should go in .base. I'm very concerned that if we do demand that .base always point to a NumPy array (rather than an arbitrary Python object or even just one with a buffer interface), there's no longer any way for a NumPy array to hold data allocated by something other than NumPy. If I want to put external memory in a NumPy array and indicate that it's owned by some non-NumPy Python object, what is the recommended way to do that? Thanks! Jim Bosch _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion