Traits
Release name: <Not entered>
Release summary: Release beta1
Automatic version: 1
Manual version: beta1
Published by: Adrian Lienhard (al)
Created: 25 April 2004 6:08:22 pm
Last updated: 10 March 2005 11:44:33 am
Categories:- Not backwards compatible - Code has changed and breaks compatibility for sure.
- Beta - Useable but still not stable, probably has bugs.
- SqueakL - The original license of Squeak from Apple. Obsolete since Squeak 4.0 (which only accepts MIT contributions). SqueakL is not recommended to be used for new projects.
- Squeak3.7 - Released 15 Sept 2004.
Release note:
* Prerequisite package: Monticello *
Traits Release beta1
====================
Over the last months we have been working on a new stable implementation of Traits in Squeak. This is the first public beta release. Please note that this version features a new language kernel that supports all the necessary features for creating and composing traits, but that there are still many features missing that are absolutely crucial for getting the real "traits experience". (See the limitations section below).
Please find more information and papers about Traits at:
http://www.iam.unibe.ch/~scg/Research/Traits
Our implementation consists of the following parts:
- The Kernel: In contrast to the traits prototype, the new traits implementation features a clean, efficient and stable kernel, which is an extension of the traditional Smalltalk-80 kernel of Squeak. The kernel is feature complete as far as creation and composition of traits is concerned, but it may still have bugs. Note that in the current version, the kernel contains some duplicated code between the class and the traits hierarchy. However, this is not an accident but a conscious design decision as we will get rid of this duplicated code by bootsrapping/refactoring the kernel using traits itself.
- The User Interface: We've started implementing a new traits browser with OmniBrowser. It supports composing and browsing classes and traits and let you "dive" into the composition structure of traits. In addition, the old browser has been modified to show a flat view for programmers who like to view and work with Squeak as it was before.
- Monticello: We've made Monticello traits aware, letting you save and load traits (even to SqueakSource). Note, that code which is saved with this modified version of Monticello can not be loaded with a normal Monticello (even if it does not include traits). This implementation should be considered as a prototype and should be refactored.
As an alternative you can also use the normal fileOut mechanism which supports traits as well.
Installation
The implementation is available as a SAR file on SqueakMap. It is tested in a new fresh 3.7b image. Prerequisite packages are Monticello and the newest version of PackageInfo.
Beside loading the kernel and the modified Monticello and OmniBrowser there will also be KCP-0220-ClassOrganizerFixAndCleanup.14.cs loaded because this change is not in the update stream yet.
Please note, that the installation takes about 30 Minutes (depending on the speed of your machine) because it needs to recompile all the classes in the image. (This is a consequence of the fact that we had to change the format of the kernel classes.)
Getting Started
Open the Traits OmniBrowser: World Menu - open - Traits Browser
Create a new trait: Open the context menu in the class/trait pane and select "create trait..."
Limitations
- There are still many features missing that are absolutely essential for getting the real "traits experience", but these are mainly related to the UI and IDE. For example:
- There are no virtual categories that present the conflicts and glue methods of a composite class/trait.
- There is no automatic computation of requirements
- There is no information that shows which traits/classes provide or require the currently selected methods
- There is no support for turning classes into trait
- etc.
- The current UI is just a "minimal placeholder" that allows one to start using/playing with traits. However, many improvements are still missing.
- There are known bugs in OmniBrowser (which still is in alpha).
- The OmniBrowser updates very slowly.
- No documentation apart from the papers yet.
Release homepage:
Download: http://map.squeak.org/accountbyid/02d934ed-b271-470b-90b8-2773cbaebaf4/files/Traits-beta1.sar
SHA checksum: 555927528717089336934033040829196544696279254937
Back