Nicolas Cellier uploaded a new version of Tests to project The Trunk:
http://source.squeak.org/trunk/Tests-nice.458.mcz ==================== Summary ==================== Name: Tests-nice.458 Author: nice Time: 28 April 2021, 6:11:51.033213 pm UUID: 13fec56a-805e-754e-bd02-8cbaa015e102 Ancestors: Tests-jr.457 Document the fact that becomeForward: does NOT forward identityHash of receiver anymore (since Collections-eem.885 April 2020) See #elementsForwardIdentityTo: vs #elementsForwardIdentityAndHashTo: See also http://forum.world.st/How-to-become-immediate-objects-td5114931.html =============== Diff against Tests-jr.457 =============== Item was changed: ----- Method: BecomeTest>>testBecomeForward (in category 'tests') ----- testBecomeForward "Test the forward become." | a b c d | a := 'ab' copy. b := 'cd' copy. + c := Array with: a. - c := a. d := b. a becomeForward: b. self assert: a = 'cd'; assert: b = 'cd'; + assert: a == b; + assert: c first == b; + assert: d == b. - assert: c = 'cd'; - assert: d = 'cd'. - ! Item was added: + ----- Method: BecomeTest>>testBecomeForwardCopyIdentityHash (in category 'tests') ----- + testBecomeForwardCopyIdentityHash + "Check that + 1. the argument to becomeForward: is modified to have the receiver's identity hash. + 2. the receiver's identity hash is unchanged." + + | a b ha | + + a := 'ab' copy. + b := 'cd' copy. + ha := a identityHash. + + a becomeForward: b copyHash: true. + + self + assert: a identityHash = ha; + assert: b identityHash = ha. + + ! Item was changed: ----- Method: BecomeTest>>testBecomeForwardDontCopyIdentityHash (in category 'tests') ----- testBecomeForwardDontCopyIdentityHash "Check that 1. the argument to becomeForward: is NOT modified to have the receiver's identity hash. + 2. the receiver's identity hash is changed." - 2. the receiver's identity hash is unchanged." | a b hb | a := 'ab' copy. b := 'cd' copy. hb := b identityHash. a becomeForward: b copyHash: false. self assert: a identityHash = hb; assert: b identityHash = hb. ! Item was changed: ----- Method: BecomeTest>>testBecomeForwardIdentityHash (in category 'tests') ----- testBecomeForwardIdentityHash + "Document that the receiver hash is changed, but the argument hash is unchanged. + (a becomeForward: b) has thus same effect as (a becomeForward: b copyHash: false)" - "Check that - 1. the argument to becomeForward: is modified to have the receiver's identity hash. - 2. the receiver's identity hash is unchanged." + | a b hb | - | a b ha | a := 'ab' copy. b := 'cd' copy. + hb := b identityHash. - ha := a identityHash. a becomeForward: b. self + assert: a identityHash = hb; + assert: b identityHash = hb. - assert: a identityHash = ha; - assert: b identityHash = ha. ! |
Hi Nicolas,
I appreciate all your work, but it would be great if you could also check the inbox before. I already had implemented equivalent tests in Tests-ct.447 three months ago. Now I feel a tiny little bit nihilistic. :-)
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von [hidden email] <[hidden email]>
Gesendet: Mittwoch, 28. April 2021 18:12:10 An: [hidden email]; [hidden email] Betreff: [squeak-dev] The Trunk: Tests-nice.458.mcz Nicolas Cellier uploaded a new version of Tests to project The Trunk:
http://source.squeak.org/trunk/Tests-nice.458.mcz ==================== Summary ==================== Name: Tests-nice.458 Author: nice Time: 28 April 2021, 6:11:51.033213 pm UUID: 13fec56a-805e-754e-bd02-8cbaa015e102 Ancestors: Tests-jr.457 Document the fact that becomeForward: does NOT forward identityHash of receiver anymore (since Collections-eem.885 April 2020) See #elementsForwardIdentityTo: vs #elementsForwardIdentityAndHashTo: See also http://forum.world.st/How-to-become-immediate-objects-td5114931.html =============== Diff against Tests-jr.457 =============== Item was changed: ----- Method: BecomeTest>>testBecomeForward (in category 'tests') ----- testBecomeForward "Test the forward become." | a b c d | a := 'ab' copy. b := 'cd' copy. + c := Array with: a. - c := a. d := b. a becomeForward: b. self assert: a = 'cd'; assert: b = 'cd'; + assert: a == b; + assert: c first == b; + assert: d == b. - assert: c = 'cd'; - assert: d = 'cd'. - ! Item was added: + ----- Method: BecomeTest>>testBecomeForwardCopyIdentityHash (in category 'tests') ----- + testBecomeForwardCopyIdentityHash + "Check that + 1. the argument to becomeForward: is modified to have the receiver's identity hash. + 2. the receiver's identity hash is unchanged." + + | a b ha | + + a := 'ab' copy. + b := 'cd' copy. + ha := a identityHash. + + a becomeForward: b copyHash: true. + + self + assert: a identityHash = ha; + assert: b identityHash = ha. + + ! Item was changed: ----- Method: BecomeTest>>testBecomeForwardDontCopyIdentityHash (in category 'tests') ----- testBecomeForwardDontCopyIdentityHash "Check that 1. the argument to becomeForward: is NOT modified to have the receiver's identity hash. + 2. the receiver's identity hash is changed." - 2. the receiver's identity hash is unchanged." | a b hb | a := 'ab' copy. b := 'cd' copy. hb := b identityHash. a becomeForward: b copyHash: false. self assert: a identityHash = hb; assert: b identityHash = hb. ! Item was changed: ----- Method: BecomeTest>>testBecomeForwardIdentityHash (in category 'tests') ----- testBecomeForwardIdentityHash + "Document that the receiver hash is changed, but the argument hash is unchanged. + (a becomeForward: b) has thus same effect as (a becomeForward: b copyHash: false)" - "Check that - 1. the argument to becomeForward: is modified to have the receiver's identity hash. - 2. the receiver's identity hash is unchanged." + | a b hb | - | a b ha | a := 'ab' copy. b := 'cd' copy. + hb := b identityHash. - ha := a identityHash. a becomeForward: b. self + assert: a identityHash = hb; + assert: b identityHash = hb. - assert: a identityHash = ha; - assert: b identityHash = ha. !
Carpe Squeak!
|
But let's take this as something positive and inspirative instead. :-) Do we maybe need a new tool for this? When editing a class/method, automatically display a small "under construction" icon/hint if there is already a pending patch for it in the inbox? This might also help us to avoid future merge conflicts in a workflow that is not aligned at fast integration cycles. Just brainstorming ... :-)
Best, Christoph Von: Thiede, Christoph
Gesendet: Freitag, 30. April 2021 19:01 Uhr An: [hidden email]; [hidden email] Betreff: AW: [squeak-dev] The Trunk: Tests-nice.458.mcz Hi Nicolas,
I appreciate all your work, but it would be great if you could also check the inbox before. I already had implemented equivalent tests in Tests-ct.447 three months ago. Now I feel a tiny little bit nihilistic. :-)
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von [hidden email] <[hidden email]>
Gesendet: Mittwoch, 28. April 2021 18:12:10 An: [hidden email]; [hidden email] Betreff: [squeak-dev] The Trunk: Tests-nice.458.mcz Nicolas Cellier uploaded a new version of Tests to project The Trunk:
http://source.squeak.org/trunk/Tests-nice.458.mcz ==================== Summary ==================== Name: Tests-nice.458 Author: nice Time: 28 April 2021, 6:11:51.033213 pm UUID: 13fec56a-805e-754e-bd02-8cbaa015e102 Ancestors: Tests-jr.457 Document the fact that becomeForward: does NOT forward identityHash of receiver anymore (since Collections-eem.885 April 2020) See #elementsForwardIdentityTo: vs #elementsForwardIdentityAndHashTo: See also http://forum.world.st/How-to-become-immediate-objects-td5114931.html
=============== Diff against Tests-jr.457 =============== Item was changed: ----- Method: BecomeTest>>testBecomeForward (in category 'tests') ----- testBecomeForward "Test the forward become." | a b c d | a := 'ab' copy. b := 'cd' copy. + c := Array with: a. - c := a. d := b. a becomeForward: b. self assert: a = 'cd'; assert: b = 'cd'; + assert: a == b; + assert: c first == b; + assert: d == b. - assert: c = 'cd'; - assert: d = 'cd'. - ! Item was added: + ----- Method: BecomeTest>>testBecomeForwardCopyIdentityHash (in category 'tests') ----- + testBecomeForwardCopyIdentityHash + "Check that + 1. the argument to becomeForward: is modified to have the receiver's identity hash. + 2. the receiver's identity hash is unchanged." + + | a b ha | + + a := 'ab' copy. + b := 'cd' copy. + ha := a identityHash. + + a becomeForward: b copyHash: true. + + self + assert: a identityHash = ha; + assert: b identityHash = ha. + + ! Item was changed: ----- Method: BecomeTest>>testBecomeForwardDontCopyIdentityHash (in category 'tests') ----- testBecomeForwardDontCopyIdentityHash "Check that 1. the argument to becomeForward: is NOT modified to have the receiver's identity hash. + 2. the receiver's identity hash is changed." - 2. the receiver's identity hash is unchanged." | a b hb | a := 'ab' copy. b := 'cd' copy. hb := b identityHash. a becomeForward: b copyHash: false. self assert: a identityHash = hb; assert: b identityHash = hb. ! Item was changed: ----- Method: BecomeTest>>testBecomeForwardIdentityHash (in category 'tests') ----- testBecomeForwardIdentityHash + "Document that the receiver hash is changed, but the argument hash is unchanged. + (a becomeForward: b) has thus same effect as (a becomeForward: b copyHash: false)" - "Check that - 1. the argument to becomeForward: is modified to have the receiver's identity hash. - 2. the receiver's identity hash is unchanged." + | a b hb | - | a b ha | a := 'ab' copy. b := 'cd' copy. + hb := b identityHash. - ha := a identityHash. a becomeForward: b. self + assert: a identityHash = hb; + assert: b identityHash = hb. - assert: a identityHash = ha; - assert: b identityHash = ha. !
Carpe Squeak!
|
> On 2021-04-30, at 10:09 AM, Thiede, Christoph <[hidden email]> wrote: > > But let's take this as something positive and inspirative instead. :-) Do we maybe need a new tool for this? Tools to help workflow are always welcome; lack of them almost always results in potentially good ideas getting lost in the mire. (Think traits, for example) tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim Strange OpCodes: DPN: Double Precision No-op |
> Tools to help workflow are always welcome; lack of them almost always results in potentially good ideas getting lost in the mire. (Think traits, for example) And how can we fight this development? Better visibility/PR? :-)
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von tim Rowledge <[hidden email]>
Gesendet: Freitag, 30. April 2021 19:15:56 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Trunk: Tests-nice.458.mcz > On 2021-04-30, at 10:09 AM, Thiede, Christoph <[hidden email]> wrote: > > But let's take this as something positive and inspirative instead. :-) Do we maybe need a new tool for this? Tools to help workflow are always welcome; lack of them almost always results in potentially good ideas getting lost in the mire. (Think traits, for example) tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim Strange OpCodes: DPN: Double Precision No-op
Carpe Squeak!
|
Hi Christoph,
sorry, i forgot to check the inbox. The change itself was easy. I spent time searching the origin of the change, if it was a VM change or an image change (or both), and the reason for it. Le ven. 30 avr. 2021 à 20:06, Thiede, Christoph <[hidden email]> a écrit : > > > Tools to help workflow are always welcome; lack of them almost always results in potentially good ideas getting lost in the mire. (Think traits, for example) > > > And how can we fight this development? Better visibility/PR? :-) > > > Best, > > Christoph > > ________________________________ > Von: Squeak-dev <[hidden email]> im Auftrag von tim Rowledge <[hidden email]> > Gesendet: Freitag, 30. April 2021 19:15:56 > An: The general-purpose Squeak developers list > Betreff: Re: [squeak-dev] The Trunk: Tests-nice.458.mcz > > > > > On 2021-04-30, at 10:09 AM, Thiede, Christoph <[hidden email]> wrote: > > > > But let's take this as something positive and inspirative instead. :-) Do we maybe need a new tool for this? > > Tools to help workflow are always welcome; lack of them almost always results in potentially good ideas getting lost in the mire. (Think traits, for example) > > tim > -- > tim Rowledge; [hidden email]; http://www.rowledge.org/tim > Strange OpCodes: DPN: Double Precision No-op > > > > |
In reply to this post by Christoph Thiede
> On 2021-04-30, at 11:06 AM, Thiede, Christoph <[hidden email]> wrote: > > > Tools to help workflow are always welcome; lack of them almost always results in potentially good ideas getting lost in the mire. (Think traits, for example) > > And how can we fight this development? Better visibility/PR? :-) The ideal - you know, that situation that we all pretend to aim for but never get close to achieving - would be that if one creates a new facility (traits, environments, private methods, any sort of abstracting trick) you also create tools and additions to existing tools that make it easy to use the new idea. And until you do, it does not get added to Trunk. Obviously I'm not demanding that the individual must necessarily do this; solving these kinds of problem is what a community ought to be good for. But not putting some new thing into Trunk until the cycle is complete seems like a helpful idea. tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim Useful random insult:- Cackles a lot, but I ain't seen no eggs yet. |
> But not putting some new thing into Trunk until the cycle is complete seems like a helpful idea. Why do you think this? :-) Quite the contrary, I would rather have said that as soon as a new tool is in the Trunk, the chances become higher that someone actually uses it ...
Best,
Christoph
Von: Squeak-dev <[hidden email]> im Auftrag von tim Rowledge <[hidden email]>
Gesendet: Samstag, 1. Mai 2021 01:40:11 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Trunk: Tests-nice.458.mcz > On 2021-04-30, at 11:06 AM, Thiede, Christoph <[hidden email]> wrote: > > > Tools to help workflow are always welcome; lack of them almost always results in potentially good ideas getting lost in the mire. (Think traits, for example) > > And how can we fight this development? Better visibility/PR? :-) The ideal - you know, that situation that we all pretend to aim for but never get close to achieving - would be that if one creates a new facility (traits, environments, private methods, any sort of abstracting trick) you also create tools and additions to existing tools that make it easy to use the new idea. And until you do, it does not get added to Trunk. Obviously I'm not demanding that the individual must necessarily do this; solving these kinds of problem is what a community ought to be good for. But not putting some new thing into Trunk until the cycle is complete seems like a helpful idea. tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim Useful random insult:- Cackles a lot, but I ain't seen no eggs yet.
Carpe Squeak!
|
In reply to this post by timrowledge
Maybe tool building is still considered to be too much trouble. No RAD
tools etc. Marcel, did you get some insights on this one? Am Sa., 1. Mai 2021 um 01:40 Uhr schrieb tim Rowledge <[hidden email]>: > > > > > On 2021-04-30, at 11:06 AM, Thiede, Christoph <[hidden email]> wrote: > > > > > Tools to help workflow are always welcome; lack of them almost always results in potentially good ideas getting lost in the mire. (Think traits, for example) > > > > And how can we fight this development? Better visibility/PR? :-) > > The ideal - you know, that situation that we all pretend to aim for but never get close to achieving - would be that if one creates a new facility (traits, environments, private methods, any sort of abstracting trick) you also create tools and additions to existing tools that make it easy to use the new idea. And until you do, it does not get added to Trunk. > > Obviously I'm not demanding that the individual must necessarily do this; solving these kinds of problem is what a community ought to be good for. But not putting some new thing into Trunk until the cycle is complete seems like a helpful idea. > > > tim > -- > tim Rowledge; [hidden email]; http://www.rowledge.org/tim > Useful random insult:- Cackles a lot, but I ain't seen no eggs yet. > > > |
Free forum by Nabble | Edit this page |