On 3 February 2012 21:42, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
lukas may be you should send that to the vm mailing-list. If you need we can ask igor :) (even if he is busy right now).
implementing it wont be a big deal. i just trying to understand, what is "destructive" vs "non-destructive" behavior in replaceFrom:to:with:startingAt: is it right in my understanding that you want to always meet a following criteria: receiver replaceFrom: a to: b with: replacement startingAt: c. a to: b do: [:i | self assert: (receiver at: i) == (replacement at: c + i - 1) ] ? (irrespectible, of course if receiver == replacement or not )
Stef
On Feb 3, 2012, at 5:35 PM, Nicolas Cellier wrote:
Just a note to the VM developers: The primitive Array>>#replaceFrom:to:with:startingAt: is absolutely central to the implementation of efficient collections. While it works well if you copy from one array to the other, it is broken if source and destination array are the same and the areas overlap. Would it be possible to fix this. Even "memmove(void*, void*, size_t)" in C can handle this situation correctly.
-- Best regards, Igor Stasenko.