On Sun, Sep 30, 2012 at 10:35 PM, Travis Oliphant <tra...@continuum.io> wrote:
> We are not talking about changing it "back".  The change in 1.6 caused 
> problems that need to be addressed.
>
> Can you clarify your concerns?  The proposal is not a major change to the 
> behavior on master, but it does fix a real issue.
>
> --
> Travis Oliphant
> (on a mobile)
> 512-826-7480
>
>
> On Sep 30, 2012, at 3:30 PM, Han Genuit <hangen...@gmail.com> wrote:
>
>> On Sun, Sep 30, 2012 at 9:59 PM, Travis Oliphant <tra...@continuum.io> 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?
>>>
>>> -Travis
>>>
>>>
>>> _______________________________________________
>>> NumPy-Discussion mailing list
>>> NumPy-Discussion@scipy.org
>>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>> I think the current behaviour of the .base attribute is much more
>> stable and predictable than past behaviour. For views for instance,
>> this makes sure you don't hold references of 'intermediate' views, but
>> always point to the original *base* object. Also, I think a lot of
>> internal logic depends on this behaviour, so I am not in favour of
>> changing this back (yet) again.
>>
>> Also, considering that this behaviour already exists in past versions
>> of NumPy, namely 1.6, and is very fundamental to how arrays work, I
>> find it strange that it is now up for change in 1.7 at the last
>> minute.
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion@scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion


Well, the current behaviour makes sure you can have an endless chain
of views derived from each other without keeping a copy of each view
alive. If I understand correctly, you propose to change this behaviour
to where it would keep a copy of each view alive.. My concern is that
the problems that occurred from the 1.6 change are now seen as
paramount above a correct implementation. There are problems with
backward compatibility, but most of these are due to lack of
documentation and testing. And now there will be a lot of people
depending on the new behaviour, which is also something to take into
account.
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to