Hi all,
We have been working on the integration of the traits implementation with current 3.9a. Now it's ready to be tested, played with, reviewed etc.
There's a ready image at http://www.adrian-lienhard.ch/files/ Squeak3.9a-traits.zip.
For those who like to create this image themselves, here the instructions (of course, this will later automatically work via the update stream): - get http://ftp.squeak.org/3.9alpha/Squeak3.9a-6705.zip (that's the latest published 3.9a image) - open Monticello, select the source.squeakfoundation.org/39a repository - load from there ScriptLoader-al.55 - evaluate "ScriptLoader new updateFrom6705" (which will initiate the traits bootstrap) - Click "proceed" when asked "You are about to load new versions...", same for "Behavior should not be redefined..." - After this, the re-compilation of the image is done, which takes quite some time... and that's it.
Note, there's no fancy traits browser as you might expect. What this release is all about is the new class kernel enhanced to support traits, and Monticello and tools have being adapted to properly work with traits. The code browser has a new menu items to display the definition template in order to create a new trait. In addition the kernel includes an algorithm to efficiently calculate the required methods of a class; this was implemented by Nathanael and integrated by Daniel.
Daniel has also been working on new tools based on OmniBrowser. This can be installed by loading the latest version of the package from http://kilana.unibe.ch:8888/TraitsOmniBrowser (a prerequisite is latest OmniBrowser from SM). Open the browsers by "OBTraitStructureBrowser new open" and "OBTraitStructureBrowser new open". However, I think, those tools need more work to be ready, and is not subject to inclusion for now.
Here an overview for the people interested in looking at the code: - There is a new Kernel package; almost all changes there are in the category Kernel-Classes (Behavior, ClassDescription, ...) - There is a new package named Traits. It includes all additional classes and traits for the kernel (see Traits-Kernel) and also for the requires algorithm mentioned above - This package has a couple of extensions (tip: to look at them, use MC's snapshot browser): most of those class extensions or overrides should eventually be moved to the appropriate packages. - There is a new version of the Tools package which contains the adapted code browser - Quite some changes have been made to Monticello to support saving and loading of traits - Tests can be found in category Traits-Tests
I encourage interested people to have a look soon and to bring up any questions or concerns, so that we can avoid stalling the 3.9a process.
At this place, I'd like to thank all the people that have been involved in this project in one or the other way. Special thanks to Andrew, Daniel, Marcus, Nathanael and Stef.
Cheers, Adrian
___________________ Adrian Lienhard www.adrian-lienhard.ch
On Dec 3, 2005, at 21:28 , Cees De Groot wrote:
Hi,
Any news on traits? Anything else that we should be attending w.r.t. v3.9?
Regards,
Cees