MetaclassTalk 0.3 alpha 2 for Squeak 3.0
Besides including many bug fixes, this new version of MetaclassTalk also provides mixin based inheritance. A mixin is a very special class generator. When a class C inherits 'through' a mixin, it means that the mixin generates a new class (let name it N) and makes the C be its subclass (C becomes a subclass of N). The new class N includes instance variable definitions and methods hold by the mixin. When the definition hold by a mixin changes, definition of all generated classes are updated accordingly.
More info about MetaclassTalk is available in the README.txt file (included in the downloadable archives).
Download and install notes
- Unfold the archive into the image directory,
- Then, fileIn the file named: InstallMetaclassTalk.st
A ready to use image
For Linux: a comprehensive archive (includes all required files)
Known bugs & bug fixs
Squeak asks for initials when installing MetaclassTalk on fileIn of the MetaclassTalkMixinsExamples.st file
Method new in StandardClass sends message initialize to new instances. But, this message is not handled at the meta-level
Yes, it is because the initialize method is inherited form a Smalltalk class and thus there is no hook for jumping to the meta-level. The same problem occurs for all methods inherited from Smalltalk classes. Besides, when applying these methods, messages sends and accesses to instance variables are not captured either (no jumping to the meta-level). A possible solution is to change the Smalltalk classes into MetaclassTalk one by using the Class>>changeMetaclass: method. But, this solution is only partial because it does not apply to some crucial classes sucha as Object and ProtoObject (you can break your image if you do the change!).