So, the Squeak RB port team reports: Our goal was to advance the RB port as done by Bob Hartwig and the people at the previous CS from alpha state to beta.
At a high level, this means that we expect just about anyone should be able to load the Refactoring Browser and do all their daily work on it. Since the port creates a subclass of the regular browser, this should be a definite improvement on what's available now, even if not everything is perfect.
Specifics - the Refactoring Browser as we release it, loads cleanly on an updated image (4164 and up), lots of refactorings work (almost everything done over methods and variables), and the critical UI support code is there.
So - we urge everyone to take a look, especially people familiar with the refactoring browser (to find problems) and also people that aren't (because everyone have the tools to make code better).
Ok, so where's the code? The code is on the squeak foundation ftp site, at - ftp://ftp.squeakfoundation.org/pub/packages/RefactoringBrowser/
What you need are 4 files, to be loaded in this order - ClassBuilder.1.cs - a tiny patch to the ClassBuilder to avoid a problem loading one of the next files. I'm not sure this is a good permanent solution, but it's very meek and harmless. RBModel_26.cs - slightly modified version of the refactoring engine as appears on BobH's site. Note this file is pretty big and takes a while to load. RBUI_18.cs - exact copy of BobH's file RBPortBeta.6.cs - Our modifications.
and then, RefactoringBrowser openBrowser
Other files - Bob Hartwig's site includes a UI for the Lint tool (find bugs, code smells, and oddities automatically) which is uses the RB model. We haven't tested or modified it. You might also be interested in downloading the latest SUnit framework and tests for the model classes (especially if you want to help improve the browser), this is also described on Bob Hartwig's site.
What isn't there (and why the code is beta, ie, not ready to go into the base image) - * Lots of obsolete support classes and changes that are deeper than needed to the base image are still there. * No rewrite rule editor UI yet. * Operations on classes not tested - some definitely don't work. * Extract Method To Component doesn't work yet (requires more UI work, soon) * The UI code is written mostly in the tradition Browser big ball of mud style. This should definitely be refactored over time... * Lots of features we consider secondary (or didn't remember that existed) - the class hierarchy view for example - are simply not there. You want 'em, say so.
we got all kinds of support, technical and moral, from other Campers: Joseph Pelrine Markus Denker Hans Martin Mosner Roger Whitney
The Squeak RB at CS3 team - Markus Gaelli Michael Pruemm Frank (I didn't get his last name) and Yours Squeakily, Daniel Vainsencher
PS - For those of you who have never been to CampSmalltalk (like until this time) - you should. It's great to meet the wider Smalltalk family, and generally work together.
Thanks a lot for the code!
A few links on the topic:
Refactoring Browser [now includes Daniel's mail] http://minnow.cc.gatech.edu/squeak/227
Porting the Refactoring Browser [Camp Smalltalk page] http://wiki.cs.uiuc.edu/CampSmalltalk/Porting+the+Refactoring+Browser
The Camp Smalltalk Refactoring Browser Squeak Port project [Bob Hartwig's page, not yet updated] http://www.bobjectsinc.com/squeakrbalpha/
Refactoring Browser [John Brant's & Don Roberts' Refactoring Browser page] http://st-www.cs.uiuc.edu/~brant/RefactoringBrowser/
Andreas
Bob Hartwig's site includes a UI for the Lint tool (find bugs, code smells, and oddities automatically) which is uses the RB model. We haven't tested or modified it.
That is http://www.bobjectsinc.com/squeakrbalpha/download/LintUI.9.cs.gz
Decompress and file it in after the RB-files and execute "LintDialog open". Then select items in the different panes and hit the "RUN" button. Only select a few classes until you have a feeling for the expected execution time or at least schedule a coffee-break ... Click on an item in the resulting report and a RB opens.
First impression: it seems to work fine. (The RBs for "Variables not referenced" do not show the names of the variables.)
Further information about Smalllint is avalable here: http://st-www.cs.uiuc.edu/users/brant/Refactory/Lint.html
and the rules are explained there: http://st-www.cs.uiuc.edu/users/brant/Refactory/LintChecks.html
Andreas
squeak-dev@lists.squeakfoundation.org