[squeak-dev] The Trunk: Monticello-nice.667.mcz

Bert Freudenberg bert at freudenbergs.de
Tue Apr 11 14:47:31 UTC 2017


On Sat, Apr 8, 2017 at 6:00 PM, Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com> 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 <commits at source.squeak.org>:
>
>> 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]]!
>>
>>
>>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20170411/40b4e399/attachment.html>


More information about the Squeak-dev mailing list