Download it!

The Camp Smalltalk Refactoring Browser Squeak Port project

Until we get some licensing issues ironed out, and until I can get the SourceForge project approved, this is where you can download the Refactoring Browser Squeak port.
This site is temporary. As soon as we get SourceForge going, it will disappear.

UPDATE - 9/17/2001
I have just updated the download directory, probably for the last time. Several Squeakers have taken the opportunity of CS3 to further the browser integration work, and they have volunteered to take over future integration work. You can find the fruits of their labors Here. This is a good thing, since my schedule is still really full. I will continue to contribute to the project as I can, especially at various Camp Smalltalks, including the one at OOPSLA 2001.

The new version in the download directory of this site has some major new improvements to the model. The SUnit suite now greenlights under Squeak 3.1 alpha. I tested with builds 3892 and 4332. Note that this version does NOT have the latest integration work done by the CS3 folks. Once they get this stuff integrated with their version, I will probably remove this site, or at least the download directory. SCAN is great, but I still think the idea of a SourceForge project is a good one (originally proposed by Ralph Johnson) from a Smalltalk public relations perspective, and would encourage Daniel and the others to pursue nailing down a license and creating the SourceForge project.

The entire object model, not including UI, has been ported. The only things that don't seem to work, according to the SUnit test suite, are the "utility methods" and "variable not defined" lint rules.
The next obvious step is to develop the UI. I'm in the process of working with Mark Schwenk on this now. I see the UI as an area where outside contributions can be quite helpful. The version of the RB on which the port is based has very good model/view separation, so I think integration with multiple browsers makes a lot of sense. I'd like to see people contribute RB integrations with the standard Squeak system browsers, with their own browser add-ons, etc. If you've developed a custom browser, by all means, integrate the RB model with it. As far as the stand-alone browser goes, I'll let natural selection be the deciding factor. If you can come up with a more complete, more robust, easier to use interface than what we come up with, let us know and we'll steal, er, integrate it. :)

Since I wrote this, Mark Schwenk and I have made a first crack at a partial UI. File in the RBUI.*.cs file and evaluate RB openBrowser. RB is a subclass of the standard Browser, and adds some context menus to the panes. BEWARE! So far, this is very rudimentary, several things are stubbed out, and some things haven't been tested at all. But some of you may find it to be better than nothing, so have fun. I was hoping to get the UI done by the second Camp Smalltalk, but lately my day gigs have turned into day, night, and weekend gigs, so it will have to wait.

Of course, John Brant and Don Roberts deserve most of the credit, for creating the Refactoring Browser in the first place and for answering all of my lame questions. Lex Spoon contributed extensions to the parser and scanner to handle Squeak's weird {} construct. Sames Shuster did the Squeak SUnit port. Ralph Johnson conceived of and organized Camp Smalltalk, where I (Bob Hartwig) did the brunt of the porting and testing of the object model. Mark Schwenk, Michael Hewner, and Doug Way, helped with the UI.

Now, without further Adieu, here are the change sets. The RBModel.x.cs file is the main change set. RBModelTests.x.cs contains the SUnit suite. Do not attempt to file in the SUnit suite until you first download the .ST files, which belong in your startup directory, and file in the Camp Smalltalk SUnit port from the download area of the Camp Smalltalk wiki. Look for the SUnit*sq*.st files. These change sets are quickly evolving, and I will replace them without warning. If you'd like to receive a quick email informing you when I've changed something, drop me a note at Of course, when we're hooked up with SourceForge, this process will be greatly improved.

If you have something to contribute to the project, I'd like to hear from you. As I mentioned earlier, integration with existing system browsers and third-party browsers are especially welcome. Bug reports and fixes are also urgently seeked. I only ask that if you make an extension, please keep changes to the Squeak model code to a minimum, and whatever you do, don't make any SUnit suites break. Also, please do not mirror these change set files on other servers, link to this page instead, as I linked to Sames' SUnit port above.

Some external links