The Trunk: Monticello-nice.667.mcz

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

The Trunk: Monticello-nice.667.mcz

commits-2
Nicolas Cellier uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-nice.667.mcz

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

Name: Monticello-nice.667
Author: nice
Time: 8 April 2017, 4:53:33.332413 pm
UUID: 2ce0d205-81ea-4f9d-ada9-2208e93d3b2e
Ancestors: Monticello-eem.666

Perform a forgetSuperfluousMethodRemovals, which is assuming that it's un-necessary to remove methods individually if we remove the whole class.

This change is necessary to restore the updateStream after MethodContext -> Context rename.

Indeed, the MCDiffyVersion for Kernel-eem.1078 is going to detect that there is no more MethodContext in the package and ask to remove each and every MethodContext method.

=============== Diff against Monticello-eem.666 ===============

Item was changed:
  ----- Method: MCPackageLoader>>analyze (in category 'private') -----
  analyze
  | sorter |
  sorter := self sorterForItems: additions.
  additions := sorter orderedItems.
  requirements := sorter externalRequirements.
  unloadableDefinitions := sorter itemsWithMissingRequirements sorted.
 
+ self forgetSuperfluousMethodRemovals.
  sorter := self sorterForItems: removals.
  removals := sorter orderedItems reversed.!

Item was added:
+ ----- Method: MCPackageLoader>>forgetSuperfluousMethodRemovals (in category 'private') -----
+ forgetSuperfluousMethodRemovals
+ |  removedClasses |
+ removedClasses := (removals select: #isClassDefinition) collect: #actualClass.
+ removedClasses addAll: (removedClasses collect: #class).
+ removals := removals reject: [:e | e isMethodDefinition and: [removedClasses includes: e actualClass]]!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Monticello-nice.667.mcz

Nicolas Cellier
Currently, I made update-eem.406.mcm point to it.
But I'm absolutely not sure that this stage is necessary, since I moved #MethodContext binding to Undeclared.
If MC experts think that it might have bad side effects, we can revert.

2017-04-08 17:01 GMT+02:00 <[hidden email]>:
Nicolas Cellier uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-nice.667.mcz

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

Name: Monticello-nice.667
Author: nice
Time: 8 April 2017, 4:53:33.332413 pm
UUID: 2ce0d205-81ea-4f9d-ada9-2208e93d3b2e
Ancestors: Monticello-eem.666

Perform a forgetSuperfluousMethodRemovals, which is assuming that it's un-necessary to remove methods individually if we remove the whole class.

This change is necessary to restore the updateStream after MethodContext -> Context rename.

Indeed, the MCDiffyVersion for Kernel-eem.1078 is going to detect that there is no more MethodContext in the package and ask to remove each and every MethodContext method.

=============== Diff against Monticello-eem.666 ===============

Item was changed:
  ----- Method: MCPackageLoader>>analyze (in category 'private') -----
  analyze
        | sorter |
        sorter := self sorterForItems: additions.
        additions := sorter orderedItems.
        requirements := sorter externalRequirements.
        unloadableDefinitions := sorter itemsWithMissingRequirements sorted.

+       self forgetSuperfluousMethodRemovals.
        sorter := self sorterForItems: removals.
        removals := sorter orderedItems reversed.!

Item was added:
+ ----- Method: MCPackageLoader>>forgetSuperfluousMethodRemovals (in category 'private') -----
+ forgetSuperfluousMethodRemovals
+       |  removedClasses |
+       removedClasses := (removals select: #isClassDefinition) collect: #actualClass.
+       removedClasses addAll: (removedClasses collect: #class).
+       removals := removals reject: [:e | e isMethodDefinition and: [removedClasses includes: e actualClass]]!





Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Monticello-nice.667.mcz

Eliot Miranda-2
Nicolas,

    thank you /so/ much for figuring this out, and thank you even more for fixing this.

_,,,^..^,,,_ (phone)

On Apr 8, 2017, at 9:00 AM, Nicolas Cellier <[hidden email]> wrote:

Currently, I made update-eem.406.mcm point to it.
But I'm absolutely not sure that this stage is necessary, since I moved #MethodContext binding to Undeclared.
If MC experts think that it might have bad side effects, we can revert.

2017-04-08 17:01 GMT+02:00 <[hidden email]>:
Nicolas Cellier uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-nice.667.mcz

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

Name: Monticello-nice.667
Author: nice
Time: 8 April 2017, 4:53:33.332413 pm
UUID: 2ce0d205-81ea-4f9d-ada9-2208e93d3b2e
Ancestors: Monticello-eem.666

Perform a forgetSuperfluousMethodRemovals, which is assuming that it's un-necessary to remove methods individually if we remove the whole class.

This change is necessary to restore the updateStream after MethodContext -> Context rename.

Indeed, the MCDiffyVersion for Kernel-eem.1078 is going to detect that there is no more MethodContext in the package and ask to remove each and every MethodContext method.

=============== Diff against Monticello-eem.666 ===============

Item was changed:
  ----- Method: MCPackageLoader>>analyze (in category 'private') -----
  analyze
        | sorter |
        sorter := self sorterForItems: additions.
        additions := sorter orderedItems.
        requirements := sorter externalRequirements.
        unloadableDefinitions := sorter itemsWithMissingRequirements sorted.

+       self forgetSuperfluousMethodRemovals.
        sorter := self sorterForItems: removals.
        removals := sorter orderedItems reversed.!

Item was added:
+ ----- Method: MCPackageLoader>>forgetSuperfluousMethodRemovals (in category 'private') -----
+ forgetSuperfluousMethodRemovals
+       |  removedClasses |
+       removedClasses := (removals select: #isClassDefinition) collect: #actualClass.
+       removedClasses addAll: (removedClasses collect: #class).
+       removals := removals reject: [:e | e isMethodDefinition and: [removedClasses includes: e actualClass]]!






Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Monticello-nice.667.mcz

Hannes Hirzel
Nice!
And thank you.
(Screen shot shows sucessful update test from 17085 to 17157)

--Hannes

On 4/8/17, Eliot Miranda <[hidden email]> wrote:

> Nicolas,
>
>     thank you /so/ much for figuring this out, and thank you even more for
> fixing this.
>
> _,,,^..^,,,_ (phone)
>
>> On Apr 8, 2017, at 9:00 AM, Nicolas Cellier
>> <[hidden email]> wrote:
>>
>> Currently, I made update-eem.406.mcm point to it.
>> But I'm absolutely not sure that this stage is necessary, since I moved
>> #MethodContext binding to Undeclared.
>> If MC experts think that it might have bad side effects, we can revert.
>>
>> 2017-04-08 17:01 GMT+02:00 <[hidden email]>:
>>> Nicolas Cellier uploaded a new version of Monticello to project The
>>> Trunk:
>>> http://source.squeak.org/trunk/Monticello-nice.667.mcz
>>>
>>> ==================== Summary ====================
>>>
>>> Name: Monticello-nice.667
>>> Author: nice
>>> Time: 8 April 2017, 4:53:33.332413 pm
>>> UUID: 2ce0d205-81ea-4f9d-ada9-2208e93d3b2e
>>> Ancestors: Monticello-eem.666
>>>
>>> Perform a forgetSuperfluousMethodRemovals, which is assuming that it's
>>> un-necessary to remove methods individually if we remove the whole
>>> class.
>>>
>>> This change is necessary to restore the updateStream after MethodContext
>>> -> Context rename.
>>>
>>> Indeed, the MCDiffyVersion for Kernel-eem.1078 is going to detect that
>>> there is no more MethodContext in the package and ask to remove each and
>>> every MethodContext method.
>>>
>>> =============== Diff against Monticello-eem.666 ===============
>>>
>>> Item was changed:
>>>   ----- Method: MCPackageLoader>>analyze (in category 'private') -----
>>>   analyze
>>>         | sorter |
>>>         sorter := self sorterForItems: additions.
>>>         additions := sorter orderedItems.
>>>         requirements := sorter externalRequirements.
>>>         unloadableDefinitions := sorter itemsWithMissingRequirements
>>> sorted.
>>>
>>> +       self forgetSuperfluousMethodRemovals.
>>>         sorter := self sorterForItems: removals.
>>>         removals := sorter orderedItems reversed.!
>>>
>>> Item was added:
>>> + ----- Method: MCPackageLoader>>forgetSuperfluousMethodRemovals (in
>>> category 'private') -----
>>> + forgetSuperfluousMethodRemovals
>>> +       |  removedClasses |
>>> +       removedClasses := (removals select: #isClassDefinition) collect:
>>> #actualClass.
>>> +       removedClasses addAll: (removedClasses collect: #class).
>>> +       removals := removals reject: [:e | e isMethodDefinition and:
>>> [removedClasses includes: e actualClass]]!
>>>
>>>
>>
>>
>



Squeak_6.0a-17085_update_test_2017-04-08_OK.png (61K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Monticello-nice.667.mcz

Bert Freudenberg
In reply to this post by Nicolas Cellier
On Sat, Apr 8, 2017 at 6:00 PM, Nicolas Cellier <[hidden email]> wrote:
Currently, I made update-eem.406.mcm point to it.
But I'm absolutely not sure that this stage is necessary, since I moved #MethodContext binding to Undeclared.
If MC experts think that it might have bad side effects, we can revert.

No, this is awesome. I would even advocate for putting it in the patch building so when I look at changes for a package, it wouldn't list all the method removals if the whole class is being removed.

Btw I remember we had a problem where a class's #unload method was removed before the class was removed from the system so the unload code wouldn't get executed. Not sure how we fixed that before. Or did we?

- Bert -
 

2017-04-08 17:01 GMT+02:00 <[hidden email]>:
Nicolas Cellier uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-nice.667.mcz

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

Name: Monticello-nice.667
Author: nice
Time: 8 April 2017, 4:53:33.332413 pm
UUID: 2ce0d205-81ea-4f9d-ada9-2208e93d3b2e
Ancestors: Monticello-eem.666

Perform a forgetSuperfluousMethodRemovals, which is assuming that it's un-necessary to remove methods individually if we remove the whole class.

This change is necessary to restore the updateStream after MethodContext -> Context rename.

Indeed, the MCDiffyVersion for Kernel-eem.1078 is going to detect that there is no more MethodContext in the package and ask to remove each and every MethodContext method.

=============== Diff against Monticello-eem.666 ===============

Item was changed:
  ----- Method: MCPackageLoader>>analyze (in category 'private') -----
  analyze
        | sorter |
        sorter := self sorterForItems: additions.
        additions := sorter orderedItems.
        requirements := sorter externalRequirements.
        unloadableDefinitions := sorter itemsWithMissingRequirements sorted.

+       self forgetSuperfluousMethodRemovals.
        sorter := self sorterForItems: removals.
        removals := sorter orderedItems reversed.!

Item was added:
+ ----- Method: MCPackageLoader>>forgetSuperfluousMethodRemovals (in category 'private') -----
+ forgetSuperfluousMethodRemovals
+       |  removedClasses |
+       removedClasses := (removals select: #isClassDefinition) collect: #actualClass.
+       removedClasses addAll: (removedClasses collect: #class).
+       removals := removals reject: [:e | e isMethodDefinition and: [removedClasses includes: e actualClass]]!