Changesets that contain method/subclasses for obsolete classes such as BlockContext have to be adapted to the new VI4 classes before being filed into VI4. This should not be hard. I added a method called vi4Obsolete that states the associations between old classes and new classes. I also added a menu option to FileList called 'find VI4 obsolete class' that will find the next occurrence of an obsolete class so you can change it.
Most of the time you just have to change the name of the class. For example, from BlockContext to BlockClosure or from CompiledMethod to CompiledMethod2. But you also have to make sure your new method/subclass is compatible with the new class. Most of the new classes understand the same messages, but most of them have a new structure (new inst vars). Also, some old classes have been replaced by more than one new class, like Process has been replaced by Process2 and SuspendedProcess. Again, UndeclaredVariable>>vi4Obsolete will spell all these options out for you.
The attached changeset adds the vi4Obsolete method and removes obsolete classes. This way filing-in a changeset that contains a reference to an obsolete class will raise an error. The error refers the user to vi4Obsolete.
I did not rename the new classes to the old class names, so old changesets can be caught as explained above. It would be too risking to assume that methods written for the old classes will automatically work for the new classes. They need to be changed manually so they can be checked.
I have seen that the RefactoryBrowser and AspectS contains references to old classes such as BlockContext and CompiledMethod and that is why PhiHo was having problems with them before. Now an error will be raised on file-in, notifying the user that the changeset needs to edited.
The attached VI4 update, and all VI4 updates, can also be be found on the VI4 website at http://minnow.cc.gatech.edu/squeak/VI4.
Cheers, Anthony
squeak-dev@lists.squeakfoundation.org