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
Quoting Adrian Lienhard adi@netstyle.ch:
There's a ready image at http://www.adrian-lienhard.ch/files/ Squeak3.9a-traits.zip.
Thank you for this announcement, I updated some swiki pages therefore http://minnow.cc.gatech.edu/squeak/3059
Hannes
Thanks, Hannes
I've put the examples under the name "Traits Examples" on SM.
Adrian
On Dec 15, 2005, at 09:32 , hjh-sqlist wrote:
Quoting Adrian Lienhard adi@netstyle.ch:
There's a ready image at http://www.adrian-lienhard.ch/files/ Squeak3.9a-traits.zip.
Thank you for this announcement, I updated some swiki pages therefore http://minnow.cc.gatech.edu/squeak/3059
Hannes
Well, I can confirm that the update works (my biggest concern at the moment ;-)).
Shall we just publish a 6706 based on this version, then? I think lots of people are holding back on other work (justified or not) waiting for this 'big bang' to be in...
Hi cees
Well, I can confirm that the update works (my biggest concern at the moment ;-)).
Adrian fixed some little bugs.
Shall we just publish a 6706 based on this version, then? I think lots of people are holding back on other work (justified or not) waiting for this 'big bang' to be in...
I was planning to do that this afternoon but the server was down. I wanted to sync with adrian tomorrow (to see also if we could take advantage of the bootstrap to replace _ by := ) and do it. But I think that we can do that later.
Stef
Adrian Lienhard wrote
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 There's a ready image at http://www.adrian-lienhard.ch/files/ Squeak3.9a-traits.zip.
Adrian When I start this image and run all the sunit tests, I get 10 errors on the 11 tests in RequiresOriginalTestCase. These errors are because "RequiredSelectors current" (or in once case, "LocalSends current") returns nil. Do you see the same thing?
I'm trying to bring the OBTraitStructureBrowser up to speed with all of the virtual categories and signifying colors/fonts. Tom
Hi Tom
Adrian Lienhard wrote
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 There's a ready image at http://www.adrian-lienhard.ch/files/ Squeak3.9a-traits.zip.
Adrian When I start this image and run all the sunit tests, I get 10 errors on the 11 tests in RequiresOriginalTestCase. These errors are because "RequiredSelectors current" (or in once case, "LocalSends current") returns nil. Do you see the same thing?
yes, I see the failing tests too (using the current 6706 image from the 3.9a Squeak FTP repository).
The problem is (and Andrew mentioned this already on the traits list), that the following singletons are not initialized:
RequiredSelectors initialize LocalSends initialize ProvidedSelectors initialize
And there was some other problem with missing method for traits. I fixed this and committed the following two new versions to the traits repository:
Traits-al.199 Kernel-al.71
Those tests run green now.
I'm trying to bring the OBTraitStructureBrowser up to speed with all of the virtual categories and signifying colors/fonts.
cool!
There was some discussion on the traits list about also including OB (there is a new version in the meantime btw) and the OB Traits browser in 3.9; but I don't know whether there has been done work towards this goal since. I think we should set up a small team around this that prepares the inclusion and that will take responsibility in maintaining it later on. For my part, I'm not going to have enough time to work on this in addition to the traits core.
Cheers, Adrian
On 2005 Dec 31, at 5:29, Adrian Lienhard wrote:
The problem is (and Andrew mentioned this already on the traits list), that the following singletons are not initialized:
RequiredSelectors initialize LocalSends initialize ProvidedSelectors initialize
Did anyone come up with an explanation for why these classes were not being automatically initialized when they were loaded. A Monticello bug? A bootstrap bug?
And can someone tell the the process for submitting bug fixes and changes?
Andrew
The problem is (and Andrew mentioned this already on the traits list), that the following singletons are not initialized:
RequiredSelectors initialize LocalSends initialize ProvidedSelectors initialize
Did anyone come up with an explanation for why these classes were not being automatically initialized when they were loaded. A Monticello bug? A bootstrap bug?
it is MC's behavior: after loading, MC goes over the added method definitions and evaluates those that are defined on the class side and have selector #initialize. In the case of the above three classes this is a problem because they don't implement the method themselves but inherit it from the superclass. Hence, MC only once evaluates the initialize method but with the receiver of the abstract superclass, having no effect. I'm not sure what's the "right" behavior, however. Was this handled differently by changesets?
And can someone tell the the process for submitting bug fixes and changes?
There are two repositories both on SqueakSource where we commit all changes to. This is:
- http://www.squeaksource.com/Traits.html for the core traits code. Changes in packages like Traits, Kernel, Monticello are committed there. - http://www.squeaksource.com/TraitsOmniBrowser.html is the project Daniel created for the new browsers based on OB.
For changes for the first repository, please just commit and maybe send me a short message about it (I should normally also see it via RSS). I will then collect the changes and coordinate with the harvesting team.
Cheers, Adrian
The latest version of OB will be pushed in the update stream next week for the full version.
RequiredSelectors initialize LocalSends initialize ProvidedSelectors initialize
And there was some other problem with missing method for traits. I fixed this and committed the following two new versions to the traits repository:
Traits-al.199 Kernel-al.71
I will check that and publish a new version as soon as I get a decent connection = thursday.
Stef
squeak-dev@lists.squeakfoundation.org