[Vm-dev] Re: [Pharo-project] About linkedlist
renggli at gmail.com
Fri Feb 3 18:25:02 UTC 2012
>> >>>> what is the diff between arrayList and vectorList ?
>> >>> ArrayList is double ended (very much like OrderedCollection),
>> >>> VectorList is single ended. I was just experimenting to see if it
>> >>> makes a difference.
>> > ok. I like to see such kind of experiment.
>> > Was the name based on something that people use?
>> No, it is a randomly chosen and meaningless name. I guess in the end
>> there will only be one named ArrayList, but I am not sure which
>> implementation is better.
>> 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.
> The problems are that the primitive is defined to be destructive, and code could be depending on the destructive update behaviour. Would it be feasible to use a new primitive that did the right thing in the case of overlap, or do you definitely want to change primitive 105?
A new primitive would be prefect. Like this we can even have a nice
fallback in case the VM doesn't have the primitive yet.
More information about the Vm-dev