Good point, and I guess there is no real reason for doing that... it
wasn't really an attempt to achieve optimization, it just turned out
like that as I honestly totally missed the case of already unique
lists :-) Adjustments scheduled for the next push of my commits.

On Sun, Apr 19, 2009 at 01:10, Shri Borde <shri.bo...@microsoft.com> wrote:
> Looks good!
>
> In IListOps.UniqueSelf, any reason you do "bool frozen = 
> context.IsObjectFrozen(self);" upfront instead doing IsObjectFrozen when you 
> actually need it? If uniq! Is called on a System.Collections.Generic.List<T>, 
> IsObjectFrozen will be expensive since we have to keep the "frozen" bit on 
> the side. (For RubyArray, we will keep the bit as an instance field which 
> will be cheap to access). So for List<T> objects which are already unique, it 
> will be faster if you can avoid doing IsObjectFrozen.
>
> Note that simplicity trumps optimization unless you have hard data that the 
> optimization is required. I am only suggesting this optimization as its 
> trivial, and the code is as simple in either case...
>
> -----Original Message-----
> From: ironruby-core-boun...@rubyforge.org 
> [mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Daniele Alessandri
> Sent: Saturday, April 18, 2009 3:39 PM
> To: ironruby-core@rubyforge.org
> Subject: Re: [Ironruby-core] More fixes for core/array specs
>
> Hi,
>
> just a self-reply to point out that the changes in ArrayOps.ToArray
> introduced a regression for Array#to_ary (reported by
> core/array/to_ary) due to the different behaviour of Array#to_a and
> Array#to_ary on subclasses of Array. I have already fixed this on my
> local repository, I'm just waiting to have a few more commits to
> rebase and push the next set of changes on github.
>
>
> On Sat, Apr 18, 2009 at 13:31, Daniele Alessandri <suppaki...@gmail.com> 
> wrote:
>> Hi,
>>
>> http://github.com/nrk/ironruby/commit/4afc7f1bc44b007a9dca30e6330eca35d487f165
>>
>> This commit resolves the following failing specs:
>>
>> Array#<=> properly handles recursive arrays (critical)
>> Array#initialize with (size, object=nil) uses the block value instead
>> of using the default value
>> Array#to_a does not return subclass instance on Array subclasses
>> Array#uniq! raises a TypeError on a frozen array if modification would
>> take place
>> Array#values_at returns an array of elements in the ranges when passes ranges
>>
>> From the commit message:
>>
>> * Removed unused allocateStorage argument from IListOps.First and
>> IListOps.Last; Removed the manual protocol conversion bits in
>> IListOps.Fetch
>> * Fix IoOps.ToPrintedString to output a double converted to string
>> using an invariant culture (Issue #597 NumericLiterals1 test fails
>> under french culture)
>> * IListOps.ValuesAt adds a null value to the result if the begin value
>> of the specified range instance(s) is <= the length of the array and
>> the end value is >= the length of the array.
>> * Array#uniq! raises a TypeError on a frozen array if modification
>> would take place.
>> * Fixed ArrayOps.ToArray to return a new RubyArray instance with the
>> elements of self if self is a RubyArray.Subclass.
>> * Array#initialize with (size, object=nil) uses the block value
>> instead of using the default value
>> * Fixed IListOps.Compare to work with recursive arrays.
>>
>> A diff is attached to this mail.
>>
>> PS: This completes my previous commit by removing unused
>> allocateStorage arguments from IListOps.First and IListOps.Last.
>>
>> Thanks,
>> Daniele
>>
>> --
>> Daniele Alessandri
>> http://www.clorophilla.net/blog/
>> http://twitter.com/JoL1hAHN
>>
>
>
>
> --
> Daniele Alessandri
> http://www.clorophilla.net/blog/
> http://twitter.com/JoL1hAHN
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core@rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core@rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>



-- 
Daniele Alessandri
http://www.clorophilla.net/blog/
http://twitter.com/JoL1hAHN
_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to