Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0007463 [Squeak] Tools major N/A 02-02-10 03:14 03-29-10 21:17
Reporter wiz View Status public  
Assigned To
Priority high Resolution open  
Status pending   Product Version trunk
Summary 0007463: In sq 8955 ChangeSorter has a multiple number of ailments
Description In sq 8955 code has been added to change sorter which makes worse bugs introduced into change sorter in 3.10.2.

see Additional information for details.

Additional Information In 3.9 the switch to MC for image updates made the organization of classes and methods critical. At that point assigning a method to a particular category would determine in which package it would be stored or if it would be stored in any package at all.

ChangeSets had a very crude way of dealing with category changes. At the time the changeset was saved, if a category had be added or removed from a class or if a method had its category changed the entire organization of the class would be saved. When the changeset was loaded back in the entire organization would overide the existing organization. If a large amount of time passed between save and load then entire histories of category changes could be wiped away by the override.

ChangeSorter browsers would only tersely report categories had been reorganized.
The coder had no easy way to tell how many different MC packages would be affected by the coders changeset. Further bug fixing would tend to cut across package lines, again w/o warning.

I attempted to patch change sorters s.t. at least the package category was reported along with the class name or the method name. This meant changing the classlist and methodlist behavior in change sorters. The previous assumptions were that classlist would contain a parsable class name and method list would contain a parsable selector name.

I was not fully aware of the ramification of those changes. As a consequence reading back the message list no longer returned the expected selector name unless the package note was first removed from the message list item. I caught many of them but not all. Andreas found one I had missed right away. He found it because my patch had gotten into 3.10.x .

Much later I complained of a bug and traced it back to two more missed and unfiltered references.

I posted them to a mantis report. So far I don't thing they have been harvested.
At that point I realized there was a pattern (wrapper) that would have helped.

So my conclusion was things needed to be redone.

I am finally putting time in to work on that.

Unfortunately, in the meantime change sorter has been modified to work with tool builder and the number of unfiltered retrievals from method list and class list have increased.

So we now have a very broken, untested, unreliable change sorter in the image. It sort of works but any stress test of all its features will show the weak spots.


Previous related reports:

0007412: Changeset sorter displays a class category against each method instead of method's category
0007342 Change Sorters in 3.10.2 no longer report about class definitions or class comments.
0005831 [RFE] Changesorters need to report packages of methods and Classes



Attached Files  CSorter-fix-m7463-wiz.1.cs [^] (4,134 bytes) 02-04-10 04:52

- Relationships

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

related to 0007412closed  Changeset sorter displays a class category against each method instead of method's category 
related to 0007342pending  Change Sorters in 3.10.2 no longer report about class definitions or class comments. 
related to 0005831closed  [RFE] Changesorters need to report packages of methods and Classes 
child of 0007480feedback  Issues that should be fixed in 4.1 

- Notes
(0013506 - 821 - 887 - 887 - 1023 - 1023 - 1023)
wiz
02-04-10 03:06

Ok. I have had time to look at what is in the image, and compare it to some older versions.

1) The two Change sorter patches suggested in 0007342 need to be applied to the trunk.

2) A more descriptive class comment for ChangeSorter needs to happen. Particularly to note the change in ivar currentClassName.

The name no longer describes the data. The ivar stores the string that appears on the list item line. I.E. current class name plus package category. The latter part needs to be filtered out before a parsable class name appears.

The method list is the same way direct access gets the selector name plus package category. So it cannot be used directly.

which brings me to
3) the new drag and drop feature has to properly filter the list item to remove the package cat note to get the proper selector.
 
(0013507 - 529 - 589 - 589 - 725 - 725 - 725)
wiz
02-04-10 05:01

CSorter-fix-m7463-wiz.1.cs uploaded.

This contains the two patches from 0007342 addressing the problems mentioned in that report. I visually reviewed them to insure they work in the context of sq #8972 w/o conflict.

Also contains an updated class comment for ChangeSorter. I needed to get the ivars described so the limitations of the current patches can be noted by future maintainers.

So this addresses items 1) and 2) of my previous note.

Preamble has more details.

Yours in curiosity and service, --Jerome Peace
 
(0013596 - 168 - 180 - 328 - 328 - 328 - 328)
nicolas cellier
03-29-10 21:17

Fix attempted at http://source.squeak.org/trunk/Tools-nice.219.mcz [^]
I did not use CSorter-fix-m7463-wiz.1.cs directly because already obsolete.
Jerome, can you check ?
 

- Issue History
Date Modified Username Field Change
02-02-10 03:14 wiz New Issue
02-02-10 03:15 wiz Relationship added related to 0007412
02-02-10 03:15 wiz Relationship added related to 0007342
02-02-10 03:15 wiz Relationship added related to 0005831
02-02-10 03:27 lewis Issue Monitored: lewis
02-04-10 03:06 wiz Note Added: 0013506
02-04-10 04:52 wiz File Added: CSorter-fix-m7463-wiz.1.cs
02-04-10 05:01 wiz Note Added: 0013507
03-18-10 23:57 wiz Relationship added child of 0007480
03-29-10 21:17 nicolas cellier Note Added: 0013596
03-29-10 21:17 nicolas cellier Status new => pending


Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
65 total queries executed.
43 unique queries executed.
Powered by Mantis Bugtracker