Traits?

Adrian Lienhard adi at netstyle.ch
Wed Dec 14 23:37:51 UTC 2005


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








More information about the Squeak-dev mailing list