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