The Trunk: Collections-fn.869.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Collections-fn.869.mcz

commits-2
Fabio Niephaus uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-fn.869.mcz

==================== Summary ====================

Name: Collections-fn.869
Author: fn
Time: 3 January 2020, 10:27:08.945712 am
UUID: c29ef38b-f152-468e-bac9-74515c099ac4
Ancestors: Collections-nice.868

Add quick-check for identity to String>>sameAs: (similar to Character>>sameAs:).

Example:
[MenuIcons smallInspectItIconContents sameAs: MenuIcons smallInspectItIconContents] bench

Before:
1,740,000 per second. 574 nanoseconds per run. 0 % GC time.

After:
94,800,000 per second. 10.5 nanoseconds per run. 0 % GC time.

=============== Diff against Collections-nice.868 ===============

Item was changed:
  ----- Method: String>>sameAs: (in category 'comparing') -----
  sameAs: aString
  "Answer whether the receiver sorts equal to aString. The
  collation sequence is ascii with case differences ignored."
+ self == aString ifTrue: [ ^true ].
  ^(self compare: aString caseSensitive: false) = 2!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Collections-fn.869.mcz

Levente Uzonyi
It's a nice improvement, but isn't it feature freeze with "only bugfixes,
but no new features"?

Levente

On Fri, 3 Jan 2020, [hidden email] wrote:

> Fabio Niephaus uploaded a new version of Collections to project The Trunk:
> http://source.squeak.org/trunk/Collections-fn.869.mcz
>
> ==================== Summary ====================
>
> Name: Collections-fn.869
> Author: fn
> Time: 3 January 2020, 10:27:08.945712 am
> UUID: c29ef38b-f152-468e-bac9-74515c099ac4
> Ancestors: Collections-nice.868
>
> Add quick-check for identity to String>>sameAs: (similar to Character>>sameAs:).
>
> Example:
> [MenuIcons smallInspectItIconContents sameAs: MenuIcons smallInspectItIconContents] bench
>
> Before:
> 1,740,000 per second. 574 nanoseconds per run. 0 % GC time.
>
> After:
> 94,800,000 per second. 10.5 nanoseconds per run. 0 % GC time.
>
> =============== Diff against Collections-nice.868 ===============
>
> Item was changed:
>  ----- Method: String>>sameAs: (in category 'comparing') -----
>  sameAs: aString
>   "Answer whether the receiver sorts equal to aString. The
>   collation sequence is ascii with case differences ignored."
> + self == aString ifTrue: [ ^true ].
>   ^(self compare: aString caseSensitive: false) = 2!

Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Collections-fn.869.mcz

fniephaus
Hi Levente,

On Fri, Jan 3, 2020 at 11:55 PM Levente Uzonyi <[hidden email]> wrote:
It's a nice improvement, but isn't it feature freeze with "only bugfixes,
but no new features"?

I was considering this one a performance bugfix, not a new feature. Not sure how we treated these simple cases in the past.

Fabio
 

Levente

On Fri, 3 Jan 2020, [hidden email] wrote:

> Fabio Niephaus uploaded a new version of Collections to project The Trunk:
> http://source.squeak.org/trunk/Collections-fn.869.mcz
>
> ==================== Summary ====================
>
> Name: Collections-fn.869
> Author: fn
> Time: 3 January 2020, 10:27:08.945712 am
> UUID: c29ef38b-f152-468e-bac9-74515c099ac4
> Ancestors: Collections-nice.868
>
> Add quick-check for identity to String>>sameAs: (similar to Character>>sameAs:).
>
> Example:
> [MenuIcons smallInspectItIconContents sameAs: MenuIcons smallInspectItIconContents] bench
>
> Before:
> 1,740,000 per second. 574 nanoseconds per run. 0 % GC time.
>
> After:
> 94,800,000 per second. 10.5 nanoseconds per run. 0 % GC time.
>
> =============== Diff against Collections-nice.868 ===============
>
> Item was changed:
>  ----- Method: String>>sameAs: (in category 'comparing') -----
>  sameAs: aString
>       "Answer whether the receiver sorts equal to aString. The
>       collation sequence is ascii with case differences ignored."
> +     self == aString ifTrue: [ ^true ].
>       ^(self compare: aString caseSensitive: false) = 2!



Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Collections-fn.869.mcz

Levente Uzonyi
Hi Fabio,

I don't remember having so many new entries in the Inbox during previous
releases. Also, I feel like this release is taking a bit too long to be
ready.
I asked you about your commit because there are a few other "performance
bugfixes" waiting in the Inbox, but I'm not sure if they should be pushed
now or not.
Also, that indentity check you just added to #sameAs: could be added to
other related comparison methods too (#compare:caseSensitive:,
#compare:with:collated:, even to the primitive #primitiveCompareString).


Levente

On Sat, 4 Jan 2020, Fabio Niephaus wrote:

> Hi Levente,
>
> On Fri, Jan 3, 2020 at 11:55 PM Levente Uzonyi <[hidden email]> wrote:
>       It's a nice improvement, but isn't it feature freeze with "only bugfixes,
>       but no new features"?
>
>
> I was considering this one a performance bugfix, not a new feature. Not sure how we treated these simple cases in the past.
>
> Fabio
>  
>
>       Levente
>
>       On Fri, 3 Jan 2020, [hidden email] wrote:
>
>       > Fabio Niephaus uploaded a new version of Collections to project The Trunk:
>       > http://source.squeak.org/trunk/Collections-fn.869.mcz
>       >
>       > ==================== Summary ====================
>       >
>       > Name: Collections-fn.869
>       > Author: fn
>       > Time: 3 January 2020, 10:27:08.945712 am
>       > UUID: c29ef38b-f152-468e-bac9-74515c099ac4
>       > Ancestors: Collections-nice.868
>       >
>       > Add quick-check for identity to String>>sameAs: (similar to Character>>sameAs:).
>       >
>       > Example:
>       > [MenuIcons smallInspectItIconContents sameAs: MenuIcons smallInspectItIconContents] bench
>       >
>       > Before:
>       > 1,740,000 per second. 574 nanoseconds per run. 0 % GC time.
>       >
>       > After:
>       > 94,800,000 per second. 10.5 nanoseconds per run. 0 % GC time.
>       >
>       > =============== Diff against Collections-nice.868 ===============
>       >
>       > Item was changed:
>       >  ----- Method: String>>sameAs: (in category 'comparing') -----
>       >  sameAs: aString
>       >       "Answer whether the receiver sorts equal to aString. The
>       >       collation sequence is ascii with case differences ignored."
>       > +     self == aString ifTrue: [ ^true ].
>       >       ^(self compare: aString caseSensitive: false) = 2!
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Collections-fn.869.mcz

Nicolas Cellier
Hi Fabio, Levente,
I'd like to proceed with restoring input interpreter health along with promotion of new VM.
IMO pure optimization can go in trunk if not too complex, nor raise too many questions.
RunArray optimization can wait for example.

I'd like to underline the tremendous work performed by Marcel so far.
It's possible that the release was a bit frozen because he took a few days off.
These were well-earned!





Le sam. 4 janv. 2020 à 04:32, Levente Uzonyi <[hidden email]> a écrit :
Hi Fabio,

I don't remember having so many new entries in the Inbox during previous
releases. Also, I feel like this release is taking a bit too long to be
ready.
I asked you about your commit because there are a few other "performance
bugfixes" waiting in the Inbox, but I'm not sure if they should be pushed
now or not.
Also, that indentity check you just added to #sameAs: could be added to
other related comparison methods too (#compare:caseSensitive:,
#compare:with:collated:, even to the primitive #primitiveCompareString).


Levente

On Sat, 4 Jan 2020, Fabio Niephaus wrote:

> Hi Levente,
>
> On Fri, Jan 3, 2020 at 11:55 PM Levente Uzonyi <[hidden email]> wrote:
>       It's a nice improvement, but isn't it feature freeze with "only bugfixes,
>       but no new features"?
>
>
> I was considering this one a performance bugfix, not a new feature. Not sure how we treated these simple cases in the past.
>
> Fabio
>  
>
>       Levente
>
>       On Fri, 3 Jan 2020, [hidden email] wrote:
>
>       > Fabio Niephaus uploaded a new version of Collections to project The Trunk:
>       > http://source.squeak.org/trunk/Collections-fn.869.mcz
>       >
>       > ==================== Summary ====================
>       >
>       > Name: Collections-fn.869
>       > Author: fn
>       > Time: 3 January 2020, 10:27:08.945712 am
>       > UUID: c29ef38b-f152-468e-bac9-74515c099ac4
>       > Ancestors: Collections-nice.868
>       >
>       > Add quick-check for identity to String>>sameAs: (similar to Character>>sameAs:).
>       >
>       > Example:
>       > [MenuIcons smallInspectItIconContents sameAs: MenuIcons smallInspectItIconContents] bench
>       >
>       > Before:
>       > 1,740,000 per second. 574 nanoseconds per run. 0 % GC time.
>       >
>       > After:
>       > 94,800,000 per second. 10.5 nanoseconds per run. 0 % GC time.
>       >
>       > =============== Diff against Collections-nice.868 ===============
>       >
>       > Item was changed:
>       >  ----- Method: String>>sameAs: (in category 'comparing') -----
>       >  sameAs: aString
>       >       "Answer whether the receiver sorts equal to aString. The
>       >       collation sequence is ascii with case differences ignored."
>       > +     self == aString ifTrue: [ ^true ].
>       >       ^(self compare: aString caseSensitive: false) = 2!
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Collections-fn.869.mcz

Tobias Pape

> On 04.01.2020, at 12:05, Nicolas Cellier <[hidden email]> wrote:
>
> Hi Fabio, Levente,
> I'd like to proceed with restoring input interpreter health along with promotion of new VM.
> IMO pure optimization can go in trunk if not too complex, nor raise too many questions.
> RunArray optimization can wait for example.
>
> I'd like to underline the tremendous work performed by Marcel so far.
> It's possible that the release was a bit frozen because he took a few days off.
> These were well-earned!
>

Hear, Hear!


>
>
>
>
> Le sam. 4 janv. 2020 à 04:32, Levente Uzonyi <[hidden email]> a écrit :
> Hi Fabio,
>
> I don't remember having so many new entries in the Inbox during previous
> releases. Also, I feel like this release is taking a bit too long to be
> ready.
> I asked you about your commit because there are a few other "performance
> bugfixes" waiting in the Inbox, but I'm not sure if they should be pushed
> now or not.
> Also, that indentity check you just added to #sameAs: could be added to
> other related comparison methods too (#compare:caseSensitive:,
> #compare:with:collated:, even to the primitive #primitiveCompareString).
>
>
> Levente
>
> On Sat, 4 Jan 2020, Fabio Niephaus wrote:
>
> > Hi Levente,
> >
> > On Fri, Jan 3, 2020 at 11:55 PM Levente Uzonyi <[hidden email]> wrote:
> >       It's a nice improvement, but isn't it feature freeze with "only bugfixes,
> >       but no new features"?
> >
> >
> > I was considering this one a performance bugfix, not a new feature. Not sure how we treated these simple cases in the past.
> >
> > Fabio
> >  
> >
> >       Levente
> >
> >       On Fri, 3 Jan 2020, [hidden email] wrote:
> >
> >       > Fabio Niephaus uploaded a new version of Collections to project The Trunk:
> >       > http://source.squeak.org/trunk/Collections-fn.869.mcz
> >       >
> >       > ==================== Summary ====================
> >       >
> >       > Name: Collections-fn.869
> >       > Author: fn
> >       > Time: 3 January 2020, 10:27:08.945712 am
> >       > UUID: c29ef38b-f152-468e-bac9-74515c099ac4
> >       > Ancestors: Collections-nice.868
> >       >
> >       > Add quick-check for identity to String>>sameAs: (similar to Character>>sameAs:).
> >       >
> >       > Example:
> >       > [MenuIcons smallInspectItIconContents sameAs: MenuIcons smallInspectItIconContents] bench
> >       >
> >       > Before:
> >       > 1,740,000 per second. 574 nanoseconds per run. 0 % GC time.
> >       >
> >       > After:
> >       > 94,800,000 per second. 10.5 nanoseconds per run. 0 % GC time.
> >       >
> >       > =============== Diff against Collections-nice.868 ===============
> >       >
> >       > Item was changed:
> >       >  ----- Method: String>>sameAs: (in category 'comparing') -----
> >       >  sameAs: aString
> >       >       "Answer whether the receiver sorts equal to aString. The
> >       >       collation sequence is ascii with case differences ignored."
> >       > +     self == aString ifTrue: [ ^true ].
> >       >       ^(self compare: aString caseSensitive: false) = 2!
> >
> >
> >
>



Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Collections-fn.869.mcz

Chris Muller-3
In reply to this post by fniephaus
+1   The purpose of feature freeze is to reduce risk, so if we feel comfortable enough about a change being functionally non-impactful, IMO, it seems fine to let it in the release.  This seems pretty cut 'n' dry safe to me, nice catch Fabio.

On Fri, Jan 3, 2020 at 5:43 PM Fabio Niephaus <[hidden email]> wrote:
Hi Levente,

On Fri, Jan 3, 2020 at 11:55 PM Levente Uzonyi <[hidden email]> wrote:
It's a nice improvement, but isn't it feature freeze with "only bugfixes,
but no new features"?

I was considering this one a performance bugfix, not a new feature. Not sure how we treated these simple cases in the past.

Fabio
 

Levente

On Fri, 3 Jan 2020, [hidden email] wrote:

> Fabio Niephaus uploaded a new version of Collections to project The Trunk:
> http://source.squeak.org/trunk/Collections-fn.869.mcz
>
> ==================== Summary ====================
>
> Name: Collections-fn.869
> Author: fn
> Time: 3 January 2020, 10:27:08.945712 am
> UUID: c29ef38b-f152-468e-bac9-74515c099ac4
> Ancestors: Collections-nice.868
>
> Add quick-check for identity to String>>sameAs: (similar to Character>>sameAs:).
>
> Example:
> [MenuIcons smallInspectItIconContents sameAs: MenuIcons smallInspectItIconContents] bench
>
> Before:
> 1,740,000 per second. 574 nanoseconds per run. 0 % GC time.
>
> After:
> 94,800,000 per second. 10.5 nanoseconds per run. 0 % GC time.
>
> =============== Diff against Collections-nice.868 ===============
>
> Item was changed:
>  ----- Method: String>>sameAs: (in category 'comparing') -----
>  sameAs: aString
>       "Answer whether the receiver sorts equal to aString. The
>       collation sequence is ascii with case differences ignored."
> +     self == aString ifTrue: [ ^true ].
>       ^(self compare: aString caseSensitive: false) = 2!




Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Collections-fn.869.mcz

marcel.taeumel
+1 for this feature-freeze compatible feature. ;-P

Best,
Marcel

Am 04.01.2020 22:50:11 schrieb Chris Muller <[hidden email]>:

+1   The purpose of feature freeze is to reduce risk, so if we feel comfortable enough about a change being functionally non-impactful, IMO, it seems fine to let it in the release.  This seems pretty cut 'n' dry safe to me, nice catch Fabio.

On Fri, Jan 3, 2020 at 5:43 PM Fabio Niephaus <[hidden email]> wrote:
Hi Levente,

On Fri, Jan 3, 2020 at 11:55 PM Levente Uzonyi <[hidden email]> wrote:
It's a nice improvement, but isn't it feature freeze with "only bugfixes,
but no new features"?

I was considering this one a performance bugfix, not a new feature. Not sure how we treated these simple cases in the past.

Fabio
 

Levente

On Fri, 3 Jan 2020, [hidden email] wrote:

> Fabio Niephaus uploaded a new version of Collections to project The Trunk:
> http://source.squeak.org/trunk/Collections-fn.869.mcz
>
> ==================== Summary ====================
>
> Name: Collections-fn.869
> Author: fn
> Time: 3 January 2020, 10:27:08.945712 am
> UUID: c29ef38b-f152-468e-bac9-74515c099ac4
> Ancestors: Collections-nice.868
>
> Add quick-check for identity to String>>sameAs: (similar to Character>>sameAs:).
>
> Example:
> [MenuIcons smallInspectItIconContents sameAs: MenuIcons smallInspectItIconContents] bench
>
> Before:
> 1,740,000 per second. 574 nanoseconds per run. 0 % GC time.
>
> After:
> 94,800,000 per second. 10.5 nanoseconds per run. 0 % GC time.
>
> =============== Diff against Collections-nice.868 ===============
>
> Item was changed:
>  ----- Method: String>>sameAs: (in category 'comparing') -----
>  sameAs: aString
>       "Answer whether the receiver sorts equal to aString. The
>       collation sequence is ascii with case differences ignored."
> +     self == aString ifTrue: [ ^true ].
>       ^(self compare: aString caseSensitive: false) = 2!




Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Collections-fn.869.mcz

fniephaus
Hi Levente,

A packed inbox is no ideal, but I don't mind that the release is a bit
delayed. It's not that we're having a strict deadline to meet. More
importantly, lots of good things have happened in the last few weeks
and I'd rather see us keeping the momentum going.

On a more technical note, I'd say everything very easy to review is
probably ok to go into trunk if it's not changing existing behavior (I
wouldn't mind if we merge Collections-ul.869 for example). I mean why
hold back something obviously good such as faster String comparisons
or Symbol lookups?

RE this change: I agree, an identity check could also be added to
other related methods or the primitive. Not sure what's the best
solution though. But it looks like there's some more cleaning up to
do. But we really should do that after the feature freeze (just look
at String>>#compare:with:collated: for example). :)

Fabio


On Mon, Jan 6, 2020 at 9:47 AM Marcel Taeumel <[hidden email]> wrote:

>
> +1 for this feature-freeze compatible feature. ;-P
>
> Best,
> Marcel
>
> Am 04.01.2020 22:50:11 schrieb Chris Muller <[hidden email]>:
>
> +1   The purpose of feature freeze is to reduce risk, so if we feel comfortable enough about a change being functionally non-impactful, IMO, it seems fine to let it in the release.  This seems pretty cut 'n' dry safe to me, nice catch Fabio.
>
> On Fri, Jan 3, 2020 at 5:43 PM Fabio Niephaus <[hidden email]> wrote:
>>
>> Hi Levente,
>>
>> On Fri, Jan 3, 2020 at 11:55 PM Levente Uzonyi <[hidden email]> wrote:
>>>
>>> It's a nice improvement, but isn't it feature freeze with "only bugfixes,
>>> but no new features"?
>>
>>
>> I was considering this one a performance bugfix, not a new feature. Not sure how we treated these simple cases in the past.
>>
>> Fabio
>>
>>>
>>>
>>> Levente
>>>
>>> On Fri, 3 Jan 2020, [hidden email] wrote:
>>>
>>> > Fabio Niephaus uploaded a new version of Collections to project The Trunk:
>>> > http://source.squeak.org/trunk/Collections-fn.869.mcz
>>> >
>>> > ==================== Summary ====================
>>> >
>>> > Name: Collections-fn.869
>>> > Author: fn
>>> > Time: 3 January 2020, 10:27:08.945712 am
>>> > UUID: c29ef38b-f152-468e-bac9-74515c099ac4
>>> > Ancestors: Collections-nice.868
>>> >
>>> > Add quick-check for identity to String>>sameAs: (similar to Character>>sameAs:).
>>> >
>>> > Example:
>>> > [MenuIcons smallInspectItIconContents sameAs: MenuIcons smallInspectItIconContents] bench
>>> >
>>> > Before:
>>> > 1,740,000 per second. 574 nanoseconds per run. 0 % GC time.
>>> >
>>> > After:
>>> > 94,800,000 per second. 10.5 nanoseconds per run. 0 % GC time.
>>> >
>>> > =============== Diff against Collections-nice.868 ===============
>>> >
>>> > Item was changed:
>>> >  ----- Method: String>>sameAs: (in category 'comparing') -----
>>> >  sameAs: aString
>>> >       "Answer whether the receiver sorts equal to aString. The
>>> >       collation sequence is ascii with case differences ignored."
>>> > +     self == aString ifTrue: [ ^true ].
>>> >       ^(self compare: aString caseSensitive: false) = 2!
>>>
>>
>