Introducing the Senders of Deprecated Browser
I created it to help developers track down, evaluate and hopefully eliminate any places in their code that include call methods that have been marked as deprecated by the Engineering Team at Cincom or by anyone else.
After loading the package, the browser can be opened by picking the “Browse -> Senders of Deprecated” menu item from the VisualWorks launcher window or by executing the following code:
Smalltalk.DeprecatedSendersBrowser openDeprecatedSenders.
As the browser opens, it searches the image to collect all of the methods that send >>deprecated:. It then attempts to find the methods that call any of those deprecated methods. The list of deprecated methods is displayed in the upper list pane, and when one of those methods is selected, the second list pane below it is filled with the methods that are believed to be senders of the deprecated method in the upper list. If a method in the second list pane is selected, then below it is a standard code pane where the source of that sending method is shown and can be edited.
Because of the inherent performance compromises in MethodCollector and MethodFilterReference, there will be some false positives in the list of methods collected. Methods in the lower list pane can be removed from that list by using the standard “Method -> Remove From List” menu item. Deprecated methods in the upper list pane can be removed from that upper list by using the new “Deprecated -> Remove From List” menu item. (If there are any senders still left in the lower list pane for the selected deprecated method, then those will be removed from the lower list pane at the same time.)
The new Deprecated menu is much like the existing Method menu, but the items have been pared down to items that make sense for a method list that does not have a corresponding code pane where source can be viewed and edited.
If you wish to explore how the browser works, additional technical details can be found in the comments for the package, the classes and in all of the methods. I’ve done my best to explain my design decisions as well as noting any compromises that I felt as though I had to make along the way. Hopefully, you can jump into any place that interests you, and the comments should help you understand how it is connected to other parts of the browser and to the rest of the system.
The current version of the BrowseDeprecated package can be downloaded from the Contributed Components section of our website at: Cincom Smalltalk Contributed Components
On a historical note, I started work on this browser when one of our customers wrote about how difficult and time-consuming it was for them to verify that none of their code calls any of our deprecated methods. I targeted this browser to make it easier to focus on and complete that process for any ObjectStudio or VisualWorks project.
There are numerous improvements that can be made to the browser, but I would like to get some feedback from real users before deciding what to work on first. After working with the new browser, please tell me what features are useful to you and what your team needs to make it even more valuable during your projects.