(name 'Traits-cwp.291' message 'Merged with trunk, ul.290.' id '6c97fc60-5a03-4625-8ab2-d0037be6d40b' date '26 December 2012' time '4:18:05.689 pm' author 'cwp' ancestors ((name 'Traits-cwp.290' message 'Tweaked to use the local environment''s undeclared dictionary, rather than the global.' id '20216d44-02e4-4765-b8b8-67d7cbe105f0' date '22 June 2012' time '6:40:32.313 pm' author 'cwp' ancestors ((name 'Traits-ul.289' message 'Removed unnecessary blocks.' id '51226bb1-b487-ec4f-b7f6-7d8d07df6994' date '3 August 2011' time '1:54:50.416 am' author 'ul' ancestors ((name 'Traits-nice.288' message 'Use #newCompiler #newParser' id '2c2016d2-acf3-448a-b3b9-836089b17a9e' date '30 March 2011' time '9:47:27.896 pm' author 'nice' ancestors ((name 'Traits-nice.287' message 'Implement convenient ClassTrait>>category just by symmetry with what we just did to Metaclass.

We can now simplify senders of
	theNonMetaClass category
by just
	category
if we want to...' id '6bcfef1a-0838-46e8-b148-b273f6a1ec78' date '15 February 2011' time '11:26:11.772 pm' author 'nice' ancestors ((name 'Traits-nice.286' message 'Remove redundant methods.' id 'c2384ab9-a608-4300-96da-9c6639491314' date '29 December 2010' time '12:36:11.677 pm' author 'nice' ancestors ((name 'Traits-nice.285' message 'Use literalEqual: rather than = to test for compiled code equality.
We don''t want 256000.0s1 = 256000.0e0 nor = 256000' id '1bedcfe1-f6f6-9a4a-93ed-dcf553a62596' date '22 March 2010' time '10:49:41.743 pm' author 'nice' ancestors ((name 'Traits-nice.284' message 'Don''t use closeTo: when comparing compiledMethod.
Either two methods are equals or not (or we could fuzzify String equality to with sameAs: or other trick....).
The hack was previously necessary due to roundoff errors in printing and reading a Float.
This is not the case anymore: Float literals now storeOn: and readFrom: exactly..
' id 'da456581-abc7-5b49-83c8-9940314b08e6' date '22 March 2010' time '10:00:16.495 pm' author 'nice' ancestors ((name 'Traits-ar.283' message 'Fix SystemChangeNotification for traits.

NB, SystemNotification is broken: It requires passing in *both* old and new class/trait verbatim even though they cannot both exist at the same time and even though copying is not desirable (for the current trait implementation copying would mean recompiling all methods). So we pass in a shallowCopy to avoid excessive recompilation but of course if a client ever looks deeply inside it it will quickly find that it''s not a copy. This should be fixed by passing a description of some sort (similar to MCClassDefinition) or specifically the values that were changed.
' id '68a46760-cb16-874a-a84d-2ac3da946f79' date '11 March 2010' time '8:51:35.08 am' author 'ar' ancestors ((name 'Traits-ar.282' message 'Avoid dictionary protocol in Smalltalk.' id '12ff2e33-f431-6a40-b994-b00faab2062e' date '5 March 2010' time '9:11:40.384 pm' author 'ar' ancestors ((name 'Traits-ar.281' message 'Fix a tiny buglet in Traits using #includes: instead of #includesKey: for its name.' id '787c91fc-51ce-3245-ab67-a8e669838785' date '4 March 2010' time '9:14:46.573 pm' author 'ar' ancestors ((name 'Traits-nice.280' message 'push some temp declarations inside blocks' id 'c73f76e5-ba68-4e91-bc27-ef1754513b29' date '4 February 2010' time '8:21:32.572 pm' author 'nice' ancestors ((name 'Traits-ar.279' message 'Fixes the traits bug masked by the issues with Class>>binding. When recompiling a selector/method pair, the original trait method needs to be preserved if the method came from a trait. Otherwise the method will be considered a locally defined method after the reshape which is incorrect.' id '91a4303d-4277-b74e-a5ff-6af70a550876' date '2 February 2010' time '8:33:55.237 pm' author 'ar' ancestors ((name 'Traits-ar.278' message 'Adds a class comment to TraitOrganizer (really this is to test the updated server image).' id '55a356f8-f654-df4d-a991-dd6ccc464fbe' date '9 January 2010' time '5:57:39.959 pm' author 'ar' ancestors ((name 'Traits-nice.277' message 'remove some #or:or: #and:and: sends' id 'b41950de-85d2-478d-a512-6e2a1e9a7795' date '3 January 2010' time '5:09:11 am' author 'nice' ancestors ((name 'Traits-ul.276' message '- fix #unloadTraits, by temorarily moving ClassOrganizer >> #traitComposition from the Traits package to Kernel. This avoids an MNU while the Traits package is being unloaded.' id 'fb753d44-9786-0f4c-90c8-78f1395b6789' date '3 January 2010' time '6:39:38 am' author 'ul' ancestors ((name 'Traits-ar.275' message 'A bit of refactoring. Break up ClassDescription>>installTraitsFrom: since it had gotten too long. Remove the obsolete definitionST80 protocol. Move updateTraitsFrom: up into ClassDescription.' id '3a07fcd6-afdc-b048-bb5b-889a4655c403' date '2 January 2010' time '3:57:10 am' author 'ar' ancestors ((name 'Traits-ar.274' message 'Add post-load initialization for reloading traits.' id '2f372a19-83fc-7147-958e-ca7e0cd2dc9f' date '1 January 2010' time '8:10:03 am' author 'ar' ancestors ((name 'Traits-ar.273' message 'Deprecated the no longer used kernel traits.' id '80802762-102e-4f46-9678-b16af7aa849d' date '1 January 2010' time '7:51:17 am' author 'ar' ancestors ((name 'Traits-ar.272' message 'Making traits unloadable: Three new operations on class trait to support loading and unloading.
- Trait removeAllTraits flattens all classes and traits, converting traits to classes and storing supplemental information to support traits recovery.
- Trait restoreAllTraits restores traits from previously flattened classes based on the supplemental information stored via removeAllTraits.
- Trait unloadTraits first removes all traits and then unloads the traits package via Monticello.
' id '065dc8bf-9996-f345-8842-76af957c5dd9' date '1 January 2010' time '7:27:09 am' author 'ar' ancestors ((name 'Traits-ar.271' message 'Fix a few issues where we should operate on the elements of the trait transform instead of the transform itself.' id 'c7f78cfa-a551-ee4d-a4a5-f4f6da2bbad6' date '31 December 2009' time '3:45:08 am' author 'ar' ancestors ((name 'Traits-ar.270' message 'Final cleanup touches: Remove some unused or duplicate left-overs.' id 'adfa2f21-6cc3-3041-a5fa-efa4663bb3fe' date '31 December 2009' time '2:53:52 am' author 'ar' ancestors ((name 'Traits-ar.269' message 'More recategorization.' id '4e91fc53-21ff-cb43-afb3-3e8e8361b54c' date '30 December 2009' time '8:04:48 am' author 'ar' ancestors ((name 'Traits-ar.268' message 'Some recategorization and removal of empty categories.' id '9b013f95-82a0-0e42-a2c3-6d8d2cdef5ae' date '30 December 2009' time '3:29:07 am' author 'ar' ancestors ((name 'Traits-ar.267' message 'Remove obsolete iVars.' id 'd240c08b-eab5-7042-9e01-c04558d4104d' date '30 December 2009' time '2:41:10 am' author 'ar' ancestors ((name 'Traits-ar.266' message 'Also remove Trait class>>initialize.' id 'c7cb8d8d-6e4b-9e48-92e4-7f5276214983' date '30 December 2009' time '3:31:24 am' author 'ar' ancestors ((name 'Traits-ar.265' message 'Remove accessors for traitComposition.' id '15d04f89-73f1-744e-9783-e6a5973666c1' date '30 December 2009' time '3:30:40 am' author 'ar' ancestors ((name 'Traits-ar.264' message 'Push traitsComposition into TraitOrganizer.' id 'd97a55ef-c640-a34e-8e45-5d0883cf1488' date '30 December 2009' time '3:03:01 am' author 'ar' ancestors ((name 'Traits-ar.263' message 'Prepare to push traitComposition into TraitOrganizer so that we don''t need to duplicate it in three places (Class, Metaclass, TraitDescription).' id '82cf76b0-2144-a34d-9067-f131dce10b15' date '30 December 2009' time '2:55:32 am' author 'ar' ancestors ((name 'Traits-ar.262' message 'Complete the transition, removing the original NanoTrait classes.' id 'c9ab1974-2c32-514e-b611-c6b4c16e297d' date '30 December 2009' time '2:39:14 am' author 'ar' ancestors ((name 'Traits-ar.261' message 'Revert the use of ClassTrait being the class of Trait. It causes problems when modifying class Trait itself since the subclass machinery isn''t present and ClassBuilder is not ready for supporting alternative metaclasses in this form.' id '79108af0-87db-b84b-839e-bdad931f5e94' date '30 December 2009' time '2:36:09 am' author 'ar' ancestors ((name 'Traits-ar.259' message 'Some fixes for conversion back to Trait.' id 'aee93ca0-6511-3242-b961-e04c8905456f' date '29 December 2009' time '8:28:33 am' author 'ar' ancestors ((name 'Traits-ar.258' message 'Don''t change the class category - it looks as if diffs have problems with changing categories containing traits.' id '57c06351-9c73-6f46-a1ce-658c7475a93e' date '29 December 2009' time '7:35:50 am' author 'ar' ancestors ((name 'Traits-ar.257' message 'Almost there now. Fill in the old classes with the NanoTraits implementation so we can switch back later.' id '6585326f-532d-c646-8a3d-d1af48868476' date '29 December 2009' time '7:01:15 am' author 'ar' ancestors ((name 'Traits-ar.256' message 'Shipping NanoTraits part 4: Here comes the big clean up. Let''s see if it''s loadable :-)' id '6e5471eb-2e9d-2543-91e7-f925aa658271' date '29 December 2009' time '5:43:46 am' author 'ar' ancestors ((name 'Traits-ar.255' message 'Shipping NanoTraits part 3: A hand ful of small changes that pave the way for the (major) follow-on cleanup.' id 'ceb2a719-a3b0-da48-b6b6-3280be713b59' date '29 December 2009' time '5:09:05 am' author 'ar' ancestors ((name 'Traits-ar.254' message 'Shipping NanoTraits part 2: Commit package back after NanoTraits install.' id '299d99f4-3397-994e-bda6-007fbf65caa7' date '29 December 2009' time '4:39:15 am' author 'ar' ancestors ((name 'Traits-ar.253' message 'Install NanoTraits.' id 'aacbbb6c-5526-f04e-927d-4461d769972f' date '29 December 2009' time '4:27:03 am' author 'ar' ancestors ((name 'Traits-ar.252' message 'Shipping NanoTraits part 1: Put NanoTraits into Traits package for delivery.' id 'ae362e4b-72fb-024d-8443-5479e9572739' date '29 December 2009' time '4:17:11 am' author 'ar' ancestors ((name 'Traits-ar.251' message 'Preparations for NanoTraits: Vector traits creation through ClassDescription. Some utility methods to make interactions between Nano and Berne traits easier.' id '2e05e673-cd6e-4940-b6b4-3769d9a22211' date '28 December 2009' time '1:59:42 am' author 'ar' ancestors ((name 'Traits-nice.250' message 'Cosmetic: move or remove a few temps inside closures' id '121eb9a8-6167-4270-8fb5-a81e4e064440' date '27 December 2009' time '3:31:13 am' author 'nice' ancestors ((name 'Traits-nice.249' message 'fix #formalParametersAt: where due in Traits...
Implemented thanks to new support method in Parser

Note: this method has no senders in trunk.
I suspect it does not have much value...
I presume it could have been used by refactoring tools, but RB must be using its own parser...
Anyone knows of a package using #formalParametersAt: ?' id '79b2d65b-4334-45c3-8714-ce0e0daa4235' date '25 December 2009' time '9:00:46 am' author 'nice' ancestors ((name 'Traits-nice.248' message 'Move FixedIdentitySet off the Array hierarchy.
Provide a fast implementation using MethodDictionary tricks
- handles collisions (instead of blindly ignoring the entry)
- eventually grow.

I did not understand previous design decision...
The conflict just did happen (I put a halt: and caught one in Object...)
According to my own scale, make it work > make it fast.

Rationale about the new design:
#grow costs, but I think it is user responsibility to fix a reasonnable capacity.
collisions handling should not cost much (except above 4096 entries)

If any expert knowing the reasons for this class and knowing how to fire the profiling tests could have a look, thanks...' id '557593d7-1db7-2347-bf40-2d40e3b91f55' date '24 December 2009' time '11:49:10 am' author 'nice' ancestors ((name 'Traits-nice.247' message 'Use scaledIdentityHash for hashing' id '79feaefa-d26b-4ae1-8191-c3cccf8f4f1b' date '24 December 2009' time '3:18:36 am' author 'nice' ancestors ((name 'Traits-nice.246' message 'Move two private Quick* classes off the Array hierarchy
The 3 failing trait tests are unrelated...' id '6d2b0928-0c68-43be-932b-83b501eee9ba' date '24 December 2009' time '2:56:36 am' author 'nice' ancestors ((name 'Traits-ar.245' message 'CompiledMethodTrailer phase 3.' id '48c67f75-850a-9443-9730-e4e32349ba52' date '22 December 2009' time '1:03:43 am' author 'ar' ancestors ((name 'Traits-ul.244' message '- replace sends of #ifNotNilDo: to #ifNotNil:, #ifNil:ifNotNilDo: to #ifNil:ifNotNil:, #ifNotNilDo:ifNil: to #ifNotNil:ifNil:' id '9c75f198-c99f-0d4f-9101-bd86669b8c2c' date '12 December 2009' time '2:54:25 am' author 'ul' ancestors ((name 'Traits-ar.243' message 'Remove support for isolation layers.' id 'b38d1edc-e604-6240-9b55-b51b36144b34' date '12 November 2009' time '1:22:01 am' author 'ar' ancestors ((name 'Traits-nice.242' message 'minor refactoring rename #becomeEmpty -> #removeAll (also proposed to pharo)
Rationale: no reason to have multiple selectors for the same feature
Moreover, becomeEmpty had only 1 implementor and 1 sender' id '0a436ff9-05a0-46a9-915e-9e4e974c5544' date '31 October 2009' time '1:49:11 am' author 'nice' ancestors ((name 'Traits-nice.241' message 'remove #arraySize from FixedIdentitySet (a Trait private class)
It was unsent.
It was sole implementor.
It was a synonym for #capacity, so useless anyway
It was invoking super with a different selector, which is possible but questionable.
' id 'f3040a5d-7396-46d0-ad3a-8246236df7b2' date '30 October 2009' time '11:44:57 am' author 'nice' ancestors ((name 'Traits-ar.240' message 'Tests for broken traits behavior.' id 'c257e896-367f-aa4b-a63c-d50b8a863c5d' date '21 October 2009' time '9:40:11 am' author 'ar' ancestors ((name 'Traits-nice.239' message 'correct a missing #asSet after #keys refactoring' id 'da00b4a5-33ee-4d7e-bdf5-41e2d7ff90ae' date '21 October 2009' time '2:55 am' author 'nice' ancestors ((name 'Traits-nice.238' message 'Use #keys rather than #fasterKeys
Note that pattern (x keys asArray sort) could as well be written (x keys sort) now that keys returns an Array...
This #asArray is here solely for cross-dialect/fork compatibility.' id 'fa5c2b31-4500-4c84-b14d-1c584e82c560' date '21 October 2009' time '1:07:57 am' author 'nice' ancestors ((name 'Traits-nice.237' message 'Track selectors usage, use #asSet where due' id '53b4311b-7ab7-4f8a-bd01-7320dc813f66' date '20 October 2009' time '9:50:34 am' author 'nice' ancestors ((name 'Traits-nice.236' message 'use fasterKeys' id '3a815a4c-c205-7d44-ac1b-4083e4aa7206' date '20 October 2009' time '12:03:56 pm' author 'nice' ancestors ((name 'Traits-nice.235' message 'remove uncessary sends of #values
because (aDictionary values do:) is same as (aDictionary do:)
except when aDictionary is modified in the do loop.' id 'f306a767-5412-ed49-ad53-6dd34f25bd9c' date '19 October 2009' time '9:28:54 am' author 'nice' ancestors ((name 'Traits-laza.234' message 'This fixes Mantis bug 0007090: "TraitsTests pollutes ProtoObject subclasses" by filing in TraitsTestSubclassesCleanup-M7090.1.cs' id 'b3ecf2a3-b313-5a49-ac6e-2186d6f766d3' date '7 October 2009' time '6:43:30 am' author 'laza' ancestors ((name 'Traits-ar.233' message 'Put variablesAndOffsetsDo: into TraitDescription instead of Trait since we need the same implementation for ClassTrait.' id '4fa7d700-5c32-7c43-8195-57353b452ceb' date '20 July 2009' time '12:34:30 pm' author 'ar' ancestors ((name 'Traits-ar.232' message 'Post-closure cleanup and underscore removal.' id '4391970a-9ec0-824e-aee4-d23553f0139a' date '18 July 2009' time '8:06:03 am' author 'ar' ancestors ((name 'Traits-ar.231' message 'Closure compiler, main part.' id '626c0f29-49d6-0f47-b0a9-ca095ef6588e' date '11 July 2009' time '1:28:59 am' author 'ar' ancestors ((name 'Traits-ar.230' message 'Prerequiste changes for Closure installation.' id '482ae1f9-1594-d242-8dad-efd89390b4fe' date '10 July 2009' time '11:00:56 pm' author 'ar' ancestors ((name 'Traits-dc.229' message '- Implements #classVarNames which returns an empty array.' id 'e17f144a-4b3b-4dfc-9ab7-d04a455444aa' date '26 July 2007' time '4:54:04 pm' author 'dc' ancestors ((name 'Traits-dc.228' message '- TraitsBehavior''s new compatibility messages: allSubclasses and subclasses.' id '70402344-8267-41d4-b97e-708d5d32f677' date '23 July 2007' time '11:18:58 am' author 'dc' ancestors ((name 'Traits-edc.227' message 'To follow this see
http://bugs.squeak.org/view.php?id= 6472' id '328f21e9-8525-422a-a1c4-fb26b25aa81b' date '8 May 2007' time '3:01:40 pm' author 'edc' ancestors ((name 'Traits-sd.226' message 'include test of daniel
' id '4da33a7f-4a2f-11db-91d4-001124e3ab0e' date '22 September 2006' time '1:41:36 pm' author 'sd' ancestors ((name 'Traits-dvf.225' message 'Changed calculation of requiredSelectors to always clear out the cache for a class that is not an interest before working on it.' id '86df78df-1b36-45d7-a31c-9e75a3896e66' date '18 September 2006' time '10:08:33 pm' author 'dvf' ancestors ((name 'Traits-al.224' message '- expected sentinfo test failures' id '3e5920f4-7cd8-40e4-b69f-7441f240f68b' date '21 July 2006' time '10:06:32 pm' author 'al' ancestors ((name 'Traits-sd.223' message 'removing three Undeclared 

TraitExclusion>>organization, TraitAlias>>organization, and TraitAlias>>methodReferencesInCategory' id 'fb219eb7-ba66-4bd6-81fa-ac26c8b499dc' date '15 July 2006' time '10:25:51 pm' author 'sd' ancestors ((name 'Traits-sd.222' message '0003763: simplify #linesOfCode
Description
move logic from ClassDiscription#linesOfCode to CompiledMethod#linesOfCode' id '876efdaa-987d-4837-9bff-1ea0d00f4990' date '13 July 2006' time '2:36:02 pm' author 'sd' ancestors ((name 'Traits-al.221' message 'Fix #moveChangesTo: as proposed in http://bugs.impara.de/view.php?id=3737' id 'aae33956-424e-4812-a85d-84762dbd6526' date '9 July 2006' time '6:24:22 pm' author 'al' ancestors ((name 'Traits-al.220' message '- fix a test' id '939d749e-a613-4042-bbb9-f97d587d3ad9' date '9 April 2006' time '5:39:40 pm' author 'al' ancestors ((name 'Traits-al.219' message '- recategorizing methods from *Traits extensions to local packages' id 'd1b623a3-36ef-46ca-b951-da9f2b1ef806' date '27 March 2006' time '12:17:17 pm' author 'al' ancestors ((name 'Traits-al.218' message '- fix #removeSelector: that was broken concerning method categories by previous refactoring' id '895d1a19-fd33-4b76-bee9-9636b67b651a' date '27 March 2006' time '10:31:05 am' author 'al' ancestors ((name 'Traits-al.217' message '- Traits Requires Tests by APB' id 'cf66b03c-f970-41ef-ae34-c7788fdc2388' date '26 March 2006' time '11:19:20 pm' author 'al' ancestors ((name 'Traits-al.216' message '- refactor accessing trait compositions to avoid unnecessary lazy initialization

- to get rid of unused empty compositions:

Smalltalk allClassesAndTraitsDo: [ :each |
	(each instVarNamed: ''traitComposition'') notNil and: [
		each traitComposition allTraits isEmpty ifTrue: [
			each instVarNamed: ''traitComposition'' put: nil ] ] ].' id '96283550-56fe-47d8-8e50-b4e8d9dc00ec' date '26 March 2006' time '10:22:16 pm' author 'al' ancestors ((name 'Traits-al.215' message '- some better tests' id '42ce6d1a-1518-4388-b86b-0b129a87edae' date '26 March 2006' time '1:09:59 pm' author 'al' ancestors ((name 'Traits-al.214' message '- Refactoring of Class|Trait>>category lookup. Improves category lookup by a factor of 10 and for example loading of a Monticello package by a factor of 2.' id 'd1a2354b-2d3c-4c59-94b1-22dbd08a37a5' date '18 March 2006' time '2:12:11 pm' author 'al' ancestors ((name 'Traits-al.213' message 'Improve performance of Class|Trait>>category by saving the current category name in an ivar. Improves category lookup by a factor of 10 and loading of a Monticello package by a factor of 2.' id 'bf7003e1-f573-4e76-935b-3594dbfb5e9a' date '18 March 2006' time '1:56:41 pm' author 'al' ancestors ((name 'Traits-md.212' message '0003254: faster #binding' id 'ee71f6e6-af83-11da-a7a4-000d933a223c' date '9 March 2006' time '4:46:53 pm' author 'md' ancestors ((name 'Traits-md.211' message 'fixed #binding' id 'be7b7684-ac83-11da-80b4-000d933a223c' date '5 March 2006' time '9:07:59 pm' author 'md' ancestors ((name 'Traits-md.210' message 'merge with al' id '096d884b-aace-11da-886d-000d933a223c' date '3 March 2006' time '4:54:45 pm' author 'md' ancestors ((name 'Traits-md.209' message '- simplify #binding
- changes from Environment refactoring
- change for NewCompiler' id '2dca5c04-aacb-11da-886d-000d933a223c' date '3 March 2006' time '4:34:18 pm' author 'md' ancestors ((name 'Traits-md.208' message '- Remove TCompilingBehav>>basicCompie... (no callers)
- move encoder stuff into Compiler' id '4e127754-a84c-11da-a8bb-000d933a223c' date '28 February 2006' time '12:21:04 pm' author 'md' ancestors ((name 'Traits-md.207' message 'simplification regarding decompile' id '0677250c-9465-464c-baaa-e2918a4b23d5' date '22 February 2006' time '10:49:59 pm' author 'md' ancestors ((name 'Traits-md.206' message 'remove call to #sunitEnsure' id '80a95c3b-7f5e-4353-9bba-e1ffead96a83' date '22 February 2006' time '2:32:23 pm' author 'md' ancestors ((name 'Traits-md.205' message 'empty log message' id '994e3c9a-07e5-4494-8dd2-7f7aa9ac60f8' date '19 February 2006' time '12:34:45 am' author 'md' ancestors ((name 'Traits-al.204' message '- removed obsolete requries algorithm tests

- prefixed all requires performance tests to exclude them from normal test runs

- fixed issue [0002814] (targetTraits is shadowed in "RequiredSelectorsChangesCalculator")' id '14789676-3edd-4873-97ff-694415779bc8' date '17 February 2006' time '9:18:11 am' author 'al' ancestors ((name 'Traits-md.203' message '0002498: In Sq6713 Strange behaviours when asking for class ref.' id '66844447-8b33-4ad1-81dd-f5973c06c983' date '15 February 2006' time '5:23:01 pm' author 'md' ancestors ((name 'Traits-md.202' message 'make generateTemplateMethodWithMarker:forArgs:binary: 
use #generate' id '1965b8eb-176c-4aa6-a42c-7ca4b150e24d' date '13 February 2006' time '9:39:39 pm' author 'md' ancestors ((name 'Traits-md.201' message 'remove two tests (Undeclareds...)

TestSendsInfo>>testB3DPRclipRect, testWCdebugDrawRectsOn' id '9e43856c-9e40-447e-bab2-8cac3c0adfcb' date '12 February 2006' time '1:40:39 pm' author 'md' ancestors ((name 'Traits-al.200' message '- changes corresponding to allClasses, allTraits interface' id '48cdcc51-0c4c-4044-a5c5-66a8f2f3cc23' date '13 January 2006' time '6:58:04 pm' author 'al' ancestors ((name 'Traits-al.199' message '- made traits understand withAllSuperclasses for compatibility reason (used in requires code)' id '2ed0c617-7067-472c-af76-7de73707e931' date '31 December 2005' time '1:50:57 pm' author 'al' ancestors ((name 'Traits-al.198' message '- categorized a method' id 'f4fe7768-2444-448e-b39a-6209e28980c3' date '8 December 2005' time '8:36:17 pm' author 'al' ancestors ((name 'Traits-al.197' message '- some small fixes' id '8b0c6e8d-15d4-4425-8dc6-653a44e526af' date '7 December 2005' time '9:34:13 pm' author 'al' ancestors ((name 'Traits-al.196' message '- moved UI adaptation for traits to Tools package ' id '8c745f4e-d9e2-42a5-84da-a5bdb5004a44' date '6 December 2005' time '10:58:03 pm' author 'al' ancestors ((name 'Traits-al.194' message '- moved modifications and additions in CompiledMethod from Traits to Kernel package' id '0661b674-7d54-4eb9-86c5-132444ee8234' date '2 December 2005' time '9:32:40 pm' author 'al' ancestors ((name 'Traits-al.194' message '- moved modifications and additions in CompiledMethod from Traits to Kernel package' id 'bd72e0f3-67cd-4ac0-bd27-0b0d62689252' date '2 December 2005' time '9:31:40 pm' author 'al' ancestors ((name 'Traits-al.193' message '- removed example' id '6fabf495-55c8-4d5f-b961-d6866502f659' date '2 December 2005' time '6:54 pm' author 'al' ancestors ((name 'Traits-al.192' message '- moved a method to kernel package for bootstrapping reasons' id 'ffea4ce6-f262-4017-b51a-aa9a45c4bee8' date '2 December 2005' time '4:30:29 pm' author 'al' ancestors ((name 'Traits-al.190' message '- fixed fileout of traits that didn''t work anymore
- all tests green again' id 'cc18c866-b35d-4202-b537-aca1e39ae92d' date '1 December 2005' time '5:02:41 pm' author 'al' ancestors ((name 'Traits-al.189' message '- applied changes that Daniel by mistake added to the class instead to a trait where they belong' id '441925d8-8663-4ebf-9150-a87fef6ef848' date '1 December 2005' time '3:53:44 pm' author 'al' ancestors ((name 'Traits-al.188' message '- Syncing traits kernel with new 3.9a code.
- Moved methods from Kernel to Traits package so that traits changes are only in Kernel-Classes and Traits package.' id '5097c68a-6062-11da-ad65-001124765fb0' date '28 November 2005' time '11:57:13 pm' author 'al' ancestors ((name 'Traits-al.187' message '- removed most of the traits that were only used once' id 'd40014b3-5ffe-11da-8a69-001124765fb0' date '28 November 2005' time '12:05:04 pm' author 'al' ancestors ((name 'Traits-al.186' message '- cleanup and bringing up to date of class/trait definition and comment printing' id '0515dc6b-4d4c-4045-a645-f60aa4e3e3b5' date '17 October 2005' time '11:22:42 am' author 'al' ancestors ((name 'Traits-al.185' message '- removed some local methods that were defined identically in a trait' id '1b7e8679-f60e-44e1-b2ea-a4cb005aaf9b' date '15 October 2005' time '9:35:57 pm' author 'al' ancestors ((name 'Traits-al.184' message '- moved some *Traits extensions into Kernel package' id '34535e92-c77d-41ee-b018-8dda41bdc6f9' date '10 October 2005' time '2:54:46 pm' author 'al' ancestors ((name 'Traits-al.182' message 'moved ModifiedClassDefinitionEvent changes from *Traits to  *Kernel-Classes which should solve a some bootstrapping issue' id '3b6f1620-6276-4cf5-82d0-2089bb61e46c' date '3 October 2005' time '5:32:35 pm' author 'al' ancestors ((name 'Traits-al.180' message '- save methodDictionary: fix as non-flattened version (ignore Traits-al.178 and Traits-al.179)' id '5d7ba57a-b309-4609-b1b4-94724555d405' date '30 September 2005' time '6:26:29 pm' author 'al' ancestors ((name 'Traits-dvf.177' message 'This version replaces uses of isTrait with uses of isBehavior, which is less likely to throw a DNU in the transition, and happens to be more directly the question asked most of the time.' id '8cff2cf4-3d7b-47ea-8db7-ea9a0ddd3a0a' date '27 September 2005' time '7:07:44 pm' author 'dvf' ancestors ((name 'Traits-dvf.175' message 'Moved some overrides over to the kernel where they belong.

Adapted some kernel traits to 3.9a.' id 'daab50d4-5a6c-4063-bd3a-e814106c97d6' date '27 September 2005' time '5:44:32 pm' author 'dvf' ancestors ((name 'Traits-dvf.173' message 'Version with kernel classes removed, since they went back to the kernel. Not ready for use.' id 'cf36bb58-cb46-499d-980e-1a95fdf63c2a' date '22 September 2005' time '10:58:33 pm' author 'dvf' ancestors ((name 'Traits-dvf.172' message 'Merged version including dvf and al lines. 

At the moment this can be loaded into a Traits 3.02 image.
This version has been bootstrapped once into 3.9a, and is the basis for 3.9a loadability, thought it is *not* loadable into 3.9a yet.' id 'f2204809-30d1-41dd-b4de-36232cd013c5' date '22 September 2005' time '10:45:33 pm' author 'dvf' ancestors ((name 'Traits-dvf.159' message 'Removed most dead code or irrelevant tests.
Made performance tests realistic, so they are maintainance rather than goal tests.
Added a couple of compatibility methods to ease the bootstrap step removing TraitHolders.' id '83feb41d-b7fc-4650-9df9-b3d381ba2ed2' date '22 September 2005' time '8:38:01 pm' author 'dvf' ancestors ((name 'Traits-dvf.158' message 'Extended interface to support life long interest by objects, and made a small optimization.' id '67c1129e-b104-4ece-a85c-a40fad5cbff3' date '14 September 2005' time '6:28:09 pm' author 'dvf' ancestors ((name 'Traits-dvf.157' message 'Made interests process-safe to ensure that removal of interests during finalization doesn''t create problems.' id '50572a1a-a673-4795-91ab-707d498394c1' date '14 September 2005' time '4:08:41 pm' author 'dvf' ancestors ((name 'Traits-dvf.156' message 'Wrote a test to catch a bug I expected, on the way found out that the basic algorithm didn''t deal correctly with explicitly required methods. Fixed that. Now the performance regressed a bit (around 0.4 seconds for switch to Morph, 0.2-0.3 for method changes).' id '51e91bcd-6f54-4129-ab09-6e8782ead9c2' date '12 September 2005' time '9:22:43 pm' author 'dvf' ancestors ((name 'Traits-dvf.155' message 'Fixed a small bug in the requires preparation code.' id '6b719b6b-e791-4208-91e8-784a6bf17c58' date '12 September 2005' time '4:57:11 pm' author 'dvf' ancestors ((name 'Traits-dvf.154' message 'Made requiredSelectors work for metaclasses too. This version is actually meets most of the performance criteria. Chaning categories into a Morph category is still somewhat slower than I''d like.' id 'ad067fd4-31e0-4226-9d41-07c0192badad' date '12 September 2005' time '2:44:15 pm' author 'dvf' ancestors ((name 'Traits-dvf.153' message 'Some more optimizations into it, the switch is starting to look bearable - takes around 0.3 seconds.' id 'de769e9d-936f-4eec-bde2-ae6bb14040e2' date '9 September 2005' time '11:39:33 pm' author 'dvf' ancestors ((name 'Traits-dvf.152' message 'Optimized the update process of the requirements.
This whole thing has turned out to be quite complicated, so we definitely need to run some serious acceptance tests' id '6e346c01-2d06-42ce-86d5-e95471f7571f' date '9 September 2005' time '10:40:09 pm' author 'dvf' ancestors ((name 'Traits-dvf.151' message 'A sinning rootClass should certainly be visited, not only the sons of the sinners.' id 'f4a905aa-0767-4dfe-94ba-8d74a6af9806' date '9 September 2005' time '10:12:57 pm' author 'dvf' ancestors ((name 'Traits-dvf.150' message 'Fixed some categorization problems, moving some Behavior methods into *Traits.' id '8b6e644a-fcb8-47b9-beb5-be131a5a0550' date '9 September 2005' time '10:00:48 pm' author 'dvf' ancestors ((name 'Traits-dvf.149' message 'Moved an extension from Traits into TraitsOmniBrowser' id 'a187c8c7-685b-4746-95fd-3f3308fa63b2' date '9 September 2005' time '9:51:15 pm' author 'dvf' ancestors ((name 'Traits-dvf.148' message 'Ok, now for every selector, for every root, we run the algorithm iff root inherits from a sinner of that selector.

Tests seem happy except for the switch.

Also removed redundant calculations in deciding who the sins are.' id '71e54e2a-f5e1-40ab-b824-6243c380ca67' date '9 September 2005' time '8:53:29 pm' author 'dvf' ancestors ((name 'Traits-dvf.147' message 'Got reasonably good results from the original sin optimization, for the three relatively easy benchmarks (few changed classes), after I added some micro optimizations.

Problem is that the preparation takes quite a bit of time now.' id '6e1f55da-3516-422b-8c05-96dfb1c61c33' date '9 September 2005' time '8:11:21 pm' author 'dvf' ancestors ((name 'Traits-dvf.146' message 'Implemented first shot at "original sins" optimization.' id '842bacb2-2321-40fd-b426-9298cb76053f' date '9 September 2005' time '6:31:32 pm' author 'dvf' ancestors ((name 'Traits-dvf.145' message 'Merged a few optimizations of the stuff around the requires algorithm. 

Documented and otherwise cleaned up parts of it. Not much dramatic change in the performance...' id 'b629d80a-2e0e-4464-af80-43a3772e14d3' date '9 September 2005' time '5:59:57 pm' author 'dvf' ancestors ((name 'Traits-dvf.142' message 'Added a performance test that checks things we''d need for switching categories in the browser.

Found a significant regression in benchmarks, need to figure that out.' id '1930e8a4-37cc-44a3-809d-785f05629b40' date '8 September 2005' time '1:32:28 pm' author 'dvf' ancestors ((name 'Traits-dvf.141' message 'Correct a bug in direct access to caches.

Make RequiredSelector take responsibility for registering (and losing) interest in the LocalSends and ProvidedSelectors of classes, when they are relevant to computing RequiredSelectors for newly interesting classes.' id '70f5016f-1897-4957-a734-cdfdf5ee4dfa' date '6 September 2005' time '6:20:12 pm' author 'dvf' ancestors ((name 'Traits-dvf.140' message 'Differentiated between requireSelectorsCache, which is the current known state (required for setting things and other internal stuff), and requiredSelectors which gets the (possibly calculated for the occaison) correct answer.

Has several fixes to the requirements calculations.' id 'af87ffa1-4c27-4e42-89db-ebd24404fb39' date '6 September 2005' time '2:52:51 pm' author 'dvf' ancestors ((name 'Traits-dvf.139' message 'Separated RequirementsCache out from SendCaches, since it is not local, and has different life span. RequirementCache instances are now separately managed by the RequireSelectors ME.' id 'ad951e2b-01f4-487a-9d60-7de44b175e47' date '5 September 2005' time '2:05:04 pm' author 'dvf' ancestors ((name 'Traits-dvf.138' message 'Made RequiredSelectors be a ModelExtension, which required reshaping that hierarchy. 

Made requiredSelectors always go through the ME, making it about 3 times as fast as it was before, by the current benchmarks, which are FullMERequiresSpeedTestCase vs. SendsCachingRequiresSpeedTestCase, on testMorphMethodChangeScenario and testMethodChangeScenario, bringing those to around 1 second to update for 5 displayed classes. This is not good enough to be unfelt, but its in the ball park of being 1.0 material. Note that until now the benchmarks were broken (invalidated a method, but was listening only to class changes), so don''t trust prior versions on this.

All this restructuring means that at the moment we can''t compare the speeds of the Nathanael''s vs the ObjectMethod version of the algorithm, but there was no contest there anyway. The latter should probably be removed for clarity''s sake.' id 'c6f9079e-49fe-4e15-85ab-3a380bed0547' date '2 September 2005' time '6:46:20 pm' author 'dvf' ancestors ((name 'Traits-dvf.137' message 'Almost identical to previous, adding more comment, and cleaning up tiny things. Slipped on the accept for previous version.

Prepared the tests so that they control caching via the interest sets.' id '54589dde-4e14-48eb-8f73-2d6fa21d861a' date '1 September 2005' time '9:08:57 pm' author 'dvf' ancestors ((name 'Traits-dvf.136' message 'Created CodeModelExtension. Made LocalSends and ProvidedSelectors as code model extensions. Converted requires algorithm to work in terms of those (using their caches). Didn''t gain any speed, probably because these always involved two indirections - one to get to the cache for the right class, then one to look in the cache. Turns out this is too expensive...

Generalized the requires calculator setup to deal with multiple changed behaviors.' id '2d22acf6-8dd1-449e-a844-84178213adca' date '1 September 2005' time '9:04:57 pm' author 'dvf' ancestors ((name 'Traits-dvf.135' message 'Introduced LocalSends as the sole entry point to SendInfo and SendCaches. It invalidates correctly, therefore never do eager calculations. 

Added performance tests for Requires, very far from green at the moment.

Recategorized classes and methods.' id '1db044c9-e7cf-4d9f-8bdb-2b4bf98d864e' date '1 September 2005' time '5:07:16 pm' author 'dvf' ancestors ((name 'Traits-dvf.134' message 'Now using the SendCaches global cache.' id 'a33c8f86-4f9e-40fd-8ff4-50889c7bd04e' date '31 August 2005' time '3:26:27 pm' author 'dvf' ancestors ((name 'Traits-dvf.133' message 'Starting to work on requires performance. In this version, SendCaches, isSelectorProvided, and requires and all recalculated every time.' id '73c02c4b-3b5d-406c-abcf-f0ae3d254e72' date '31 August 2005' time '3:20:55 pm' author 'dvf' ancestors ((name 'Traits-dvf.132' message 'Fixed a couple of bugs in the SendCaches invalidation' id 'da2d3015-dc82-4ba2-b8f5-76b97c4da2af' date '31 August 2005' time '1:30:53 pm' author 'dvf' ancestors ((name 'Traits-dvf.131' message 'Made SendCaches global cache invalidate consevatively when anything about a class changes.' id 'ce911283-5d58-4748-9196-952e96ff2fb3' date '31 August 2005' time '1:06:49 pm' author 'dvf' ancestors ((name 'Traits-dvf.130' message 'Two things: removed some code duplication from Class>>copy and ClassTrait>>copy, and created a TestResource for the commonly used classes of TraitsTest. Not sure this is worth while:
It is not that effective in gaining speed. and the doesn''t do the last tearDown of the resource, so need to run TraitsResource tearDown before versioning.

Leaving it in for now only because we might soon work more on making it effective.' id '0922c825-27bd-42d9-8118-273d8f83887b' date '30 August 2005' time '5:06:23 pm' author 'dvf' ancestors ((name 'Traits-dvf.129' message 'Added test for not sharing state between Trait expressions after copyTraitExpression, made it green.' id '335f2040-d38b-4472-a9c4-cd60e3bdce7c' date '25 August 2005' time '4:12:37 pm' author 'dvf' ancestors ((name 'Traits-dvf.128' message 'Moved TransformationCompatibility to be used in TraitDescription, instead of in Trait, so ClassTrait can be parts of Trait expressions.' id 'baf4aa0b-39dd-43be-b949-545c04104104' date '25 August 2005' time '3:42:44 pm' author 'dvf' ancestors ((name 'Traits-apb.127' message 'Large refactoring to remove TraitHolder. In detail:
Made Traits compatible with TraitTransformations, which is straightforward except for copying expressions without copying the underlying Traits. 

Along the way we started restricting the role of  TraitComposition to represent the sum of two or more trait expressions, removing the tricks to make sure that a trait composition wraps every trait expression - it is now the responsibility of users of such expressions to wrap them if they want to.

Tests were added or adapted along the way. 

Some things todo: 
- Make sure that Trait expression parts are not shared after copying.
- Remove some duplication from ClassTrait>>copy and Trait>>copy.
- Rename TraitComposition as TraitSum and make them compatible with TraitTransformation' id 'b5e21d00-1599-11da-a601-000d933dcc36' date '25 August 2005' time '11:54:48 am' author 'apb' ancestors ((name 'Traits-dvf.126' message 'Compatibility for TraitTransformations with some Class/Trait protocol to support showing their methods in the browser correctly.' id '82087342-017f-418d-948b-356180d17b6b' date '19 August 2005' time '6:25:47 pm' author 'dvf' ancestors ((name 'Traits-dvf.125' message 'Fix to make a testcase that should abstract truly so.

Other than that, filed in the Circle example from the Prototype image. The fileout is a hack, because they don''t have precisely identical syntax for Trait composition and so forth, so no promises. ' id 'ab94606b-059b-421d-9658-0bf2f13f7d92' date '18 August 2005' time '3:30:14 pm' author 'dvf' ancestors ((name 'Traits-dvf.124' message 'Fixed serious bug in the preparations for the requires algorithm. ' id 'e63ef8f4-8066-4dd3-a7f3-15bb92bf4f87' date '18 August 2005' time '11:04:40 am' author 'dvf' ancestors ((name 'Traits-dvf.116' message 'A uniform way of getting all the transformations that compose either a PureBehavior, or a TraitTransformation. Helps view the composition as a hierarchy.' id '70b52f62-4543-4f5c-a807-51573fb929ec' date '16 August 2005' time '8:50:20 pm' author 'dvf' ancestors ((name 'Traits-dvf.115' message 'Added simple form of getting requirements information that is consistent between Traits and Classes, but doesn''t make any use of the caching. This is almost sufficient for the UI usage we are making of requires information at the moment.

Why almost? note that in the OB, the requires category doesn''t automatically update when a requirement is provided from another browser.' id '72ff8f89-a772-4c4a-9bdc-fa091b4373f7' date '16 August 2005' time '4:07:13 pm' author 'dvf' ancestors ((name 'Traits-dvf.114' message 'Includes Nathanael''s algorithm, modified to work only on classes registered as interesting, some tests of the algorithm, equivalent code for Traits (much simpler). This variant of the algorithm doesn''t add and sendCaches variable, uses dictionaries instead.' id '5ce95c88-7b04-42d2-b25d-64e2203ccb0e' date '15 August 2005' time '8:00:07 pm' author 'dvf' ancestors ((name 'Traits-al.104' message '- fixed compileInobtrusively:classified: which was fixed already in an earlier changeset. This change has got lost (why?). The problem has not been obvious because the method is deprecated. Bug reported by Thomas Koenig.' id '030710e8-ec6c-11d9-8cd6-001124765fb0' date '4 July 2005' time '11:14:23 am' author 'al' ancestors ((name 'Traits-al.103' message '- added tests for rewirement and explicitRequirement methods that should not cause conflicts ' id 'd571ee7c-d4d6-11d9-8747-001124765fb0' date '4 June 2005' time '10:58:35 am' author 'al' ancestors ((name 'Traits-al.102' message '- added missing class and trait comments' id '8d224fd9-2764-46b9-8511-2472374430a1' date '20 January 2005' time '6:07:38 pm' author 'al' ancestors ((name 'Traits-al.101' message '- version for beta2' id '8a06220b-e207-4420-9223-826051e10ab6' date '6 January 2005' time '6:01:14 pm' author 'al' ancestors ((name 'Traits-al.101' message '- fixed test' id 'caf67b5d-f0e5-4ef1-a3e3-b6450f781f23' date '6 January 2005' time '5:53:07 pm' author 'al' ancestors ((name 'Traits-al.100' message 'Cleanups:
- move up recompilation (addTraitSelector:withMethod:) to Behavior
- Trait>>category removed because implemented in superclass (why was this implemented using the env, though class doesn''t do it like this?)
- ultimateSourceCodeAt:ifAbsent: implemented in PureBehavior (moved up from TraitDescription) because sent by PureBehavior>>methodHeaderFor:. Redefined in Behavior (not in ClassDescription)
- includesSelector: implemented in PureBehavior and redefined in PureBehavior- move up recompilation (addTraitSelector:withMethod:) to Behavior
- Trait>>category removed because implemented in superclass (why was this implemented using the env, though class doesn''t do it like this?)
- ultimateSourceCodeAt:ifAbsent: implemented in PureBehavior (moved up from TraitDescription) because sent by PureBehavior>>methodHeaderFor:. Redefined in Behavior (not in ClassDescription)
- includesSelector: implemented in PureBehavior and redefined in PureBehavior' id '99c2c20e-4787-11d9-b183-000a95e07986' date '6 December 2004' time '2:06:10 pm' author 'al' ancestors ((name 'Traits-al.99' message '- traitifying Class' id 'edbf45fa-feb5-11d8-aead-000a95e07986' date '4 September 2004' time '11:03:53 pm' author 'al' ancestors ((name 'Traits-al.98' message '- remove methods that are in the image now' id '7c753dbe-fd9b-11d8-aead-000a95e07986' date '3 September 2004' time '1:22:05 pm' author 'al' ancestors ((name 'Traits-al.96' message '- remove old unsent method' id '770bbd44-ea00-11d8-b7b7-000a95e07986' date '9 August 2004' time '2:34:32 pm' author 'al' ancestors ((name 'Traits-al.95' message '- fixes a bug: when a user has defined a method that is the original method of an alias which it defines itself, the alias does not get updated properly' id '9ab3a03e-e799-11d8-ae0d-000a95e07986' date '6 August 2004' time '1:13:11 pm' author 'al' ancestors ((name 'Traits-al.93' message '- PureBehavior refinements' id '6234c9ce-e6e6-11d8-ae0d-000a95e07986' date '5 August 2004' time '3:50:17 pm' author 'al' ancestors ((name 'Traits-al.92' message '- some refinements with TMethodDictionary and TCompiling' id 'ae3f99e7-e4bd-11d8-9142-000a95e07986' date '2 August 2004' time '9:53:53 pm' author 'al' ancestors ((name 'Traits-al.91' message '- refactored PureBehavior' id '81c9b757-2dc8-49f6-a311-8fef675d0259' date '30 July 2004' time '10:55:41 pm' author 'al' ancestors ((name 'Traits-al.90' message '- TMethodDictionaryBehavior' id '46addac3-b1d3-4571-bdbe-198dd1291df0' date '30 July 2004' time '9:09:56 pm' author 'al' ancestors ((name 'Traits-al.89' message '- previous version (Traits-al.89) can not be loaded! This version is the bootstrapping step to all of the following versions, because the following ones will move methods in PureBehavior into traits' id 'e3e38714-015c-4190-86f0-d5d6db29c116' date '30 July 2004' time '8:16:59 pm' author 'al' ancestors ((name 'Traits-al.88' message '- special remove-logic (#removeSelector:) to be able to move methods from PureBehavior to its traits even if these methods (such as compiledMethodAt:, localSelectors, addTraitSelector:withMethod:) are used to do this' id '81d14548-4b4c-4ef3-b516-1150b26a9d23' date '30 July 2004' time '8:10:07 pm' author 'al' ancestors ((name 'Traits-al.87' message '- bugfix: deleting a local method, trait method gets installed instead -> Updating users in this case was missing.
- added test for this case

- trait sharing behavior between ClassTrait and Metaclass' id 'aa6e17e6-c0df-4c9a-8822-3b7ffec41dda' date '30 July 2004' time '3:26:57 pm' author 'al' ancestors ((name 'Traits-al.86' message '- debugger works (except changing aliased methods)' id '90cd9c51-e15c-11d8-8e55-000a95e07986' date '29 July 2004' time '2:41:09 pm' author 'al' ancestors ((name 'Traits-al.85' message 'work in progress!
- debugger modification (still strange behavior)

- making class searching also search traits
- some refactorings in TraitsMethodDescription' id 'c86f79ce-df39-11d8-bd36-000a95e07986' date '26 July 2004' time '9:27:07 pm' author 'al' ancestors ((name 'Traits-al.84' message '- new traitOrClassOfSelector: to query the provider of a specific method (supports aliased methods too).
- tests' id '1ae464f5-db50-11d8-a57f-000a95e07986' date '21 July 2004' time '9:56:50 pm' author 'al' ancestors ((name 'Traits-refactoring-al.80' message 'fixes for bugs reported by Andrew Tween in Squeak-Dev:
- add variable, weak, byte ... subclass class definition methods
- disableing inheritance button in browser
- fixing documentation and tile view of method in browser' id '009bcb96-d7ff-11d8-b8bd-000a95e07986' date '17 July 2004' time '4:38:43 pm' author 'al' ancestors ((name 'Traits-refactoring-al.79' message '- fixes bug: doIt in comment or definition pane of the browser caused an error ' id '6229d44a-d7e8-11d8-b8bd-000a95e07986' date '17 July 2004' time '1:56:48 pm' author 'al' ancestors ((name 'Traits-refactoring-al.78' message '- fixed wrong selector commentTemplate. Pointed out by Peter Keeler' id 'dc7d9183-d506-11d8-8f75-000a95e07986' date '13 July 2004' time '9:57:25 pm' author 'al' ancestors ((name 'Traits-refactoring-al.77' message 'some changes suggested by Alex:

following method changed:
named: aSymbol uses: aTraitCompositionOrCollection category: aString
isValidTraitName: (throw an exception if not valid)
setName: aSymbol andRegisterInCategory: categorySymbol environment: aSystemDictionary (throw an exception instead of returning a boolean which is not checked)

new methods added:
named: aSymbol uses: aTraitCompositionOrCollection category: aString env: anEnvironment

Object>>assert: takes a block and not a boolean:
addTraitSelector: aSymbol withMethod:
removeTraitSelector: aSymbol' id '771e81e8-cf38-11d8-87ac-000a95e07986' date '6 July 2004' time '12:37:23 pm' author 'al' ancestors ((name 'Traits-refactoring-al.76' message '- removed alias because of problem loading with monticello (see comment: notifyOfRecategorizedSelector:from:to:)

- small fixe of assertConsistantCompositionsForNew: (when order of traits in a class trait composition was changed, collections were not equal because they were compared using ordered collections)' id '73933b74-cc03-11d8-9e6b-000a95e07986' date '2 July 2004' time '10:40:20 am' author 'al' ancestors ((name 'Traits-refactoring-al.75' message '- further work' id '4cd61772-cb95-11d8-9e6b-000a95e07986' date '1 July 2004' time '9:31:50 pm' author 'al' ancestors ((name 'Traits-refactoring-al.75' message '- further work' id '29ed1eec-cb95-11d8-9e6b-000a95e07986' date '1 July 2004' time '9:30:52 pm' author 'al' ancestors ((name 'Traits-refactoring-al.75' message '- further work on refactoring Traits and ClassDescription' id '6b312b19-cb93-11d8-9e6b-000a95e07986' date '1 July 2004' time '9:18:22 pm' author 'al' ancestors ((name 'Traits-refactoring-al.74' message '- refactored ClassDescription and TraitDescription with traits' id '235a26fb-a1fa-11d8-94b4-000a95e07986' date '9 May 2004' time '10:47:51 pm' author 'al' ancestors ((name 'Traits-al.73' message 'Release beta1' id '0dc74b17-dabc-974e-af9e-90f5b6e6f5f2' date '25 April 2004' time '4:38:37 pm' author 'al' ancestors ((name 'Traits-al.72' message '- fileOut and fileIn for single Traits and for system categories including traits
- tests for above
- bugfix for removing all traits and classes in a systemcategory when deleting the category' id '81274343-4836-e443-8aa7-c14f52e8e898' date '25 April 2004' time '3:14:27 pm' author 'al' ancestors ((name 'Traits-al.71' message '- moved TraitsBrowser from Package Traits to TraitsUI' id 'd96969c1-b507-a845-8aeb-6b0379f1cf20' date '23 April 2004' time '10:10:52 am' author 'al' ancestors ((name 'Traits-al.70' message '- check and throw an error when defining a trait which is an existing class' id 'fa309a1f-a6a3-4c49-b074-04d549bd1d8a' date '22 April 2004' time '10:26:20 pm' author 'al' ancestors ((name 'Traits-al.69' message '- added missing forgetDoIts in TraitBehavior' id 'eceff67b-e8c5-fd49-882c-d288896c8fef' date '21 April 2004' time '11:15:44 pm' author 'al' ancestors ((name 'Traits-al.68' message '- testChanges corrected (now, all tests run green except testFileOut)' id 'cd63644a-7ee3-9949-b349-bfa8c5eca69b' date '21 April 2004' time '6:39:36 pm' author 'al' ancestors ((name 'Traits-al.67' message '- removed dependency with TraitsPreload package because this was making problems with sar installation (because I replaced the preloads with changesets)' id '001d111f-b729-4e40-9908-de01883cf1b3' date '21 April 2004' time '5:37:29 pm' author 'al' ancestors ((name 'Traits-NS.66' message 'Added tests (mainly for categories).' id 'ef337238-e8ea-be46-be6f-5b83308fe60c' date '21 April 2004' time '1:31:40 pm' author 'NS' ancestors ((name 'Traits-NS.65' message 'Fixed bug related to required methods.' id '0b991a5a-4e8e-be41-8fb4-3b3d6a9e9eb2' date '19 April 2004' time '4:47:53 pm' author 'NS' ancestors ((name 'Traits-NS.64' message 'Fixed a few more issues related to method categorization and improved performance.' id '3a8c1062-9e6a-514d-b0ef-a3b28e49dea6' date '16 April 2004' time '3:45:49 pm' author 'NS' ancestors ((name 'Traits-NS.63' message 'A few more bugfixes.' id '6cbee56b-e0fa-0549-ab91-8f8c06929ebf' date '16 April 2004' time '2:05:51 pm' author 'NS' ancestors ((name 'Traits-NS.62' message 'I found another method that got lost while merging.' id '113224cd-68b1-9743-acbb-c3478577e7c1' date '16 April 2004' time '10:49:04 am' author 'NS' ancestors ((name 'Traits-NS.61' message 'Tests are okay again. (Except #testFileOut, which already failed in al.60)' id '2d008a98-fc08-9a48-b54a-a9f2c435234d' date '16 April 2004' time '10:07:23 am' author 'NS' ancestors ((name 'Traits-NS.60' message 'Merged version.' id 'c57d3491-0c76-044d-87e3-dcbb05eb986d' date '15 April 2004' time '2:59:51 pm' author 'NS' ancestors ((name 'Traits-NS.58' message 'Updates for new ClassOrganizer hierarchy.
NOTE: This version requires a Squeak image that contains the changeset "KCP-0220-ClassOrganizerFixAndCleanup", which introduces the new ClassOranizer hierarchy.' id '0298ac4f-275b-2945-bfdc-d647fb897e77' date '8 April 2004' time '11:41:08 am' author 'NS' ancestors ((name 'Traits-al.57' message '- assigning base traits to class side compositions which do not have methods on the class side. Reject adding methods to the class side of those traits.' id 'f2897f1c-d047-a645-ab43-20740214ae71' date '7 April 2004' time '3:42:26 pm' author 'al' ancestors ((name 'Traits-NS.56' message 'Some minor fixes and enhancements.' id 'c16518fd-f3f9-4341-9c0b-30eeb904091a' date '5 April 2004' time '3:05:45 pm' author 'NS' ancestors ((name 'Traits-al.55' message '- removed dependencies (solves load problems?)' id '0bc2e9f6-0d51-7b4c-bbc3-10280c77626c' date '31 March 2004' time '9:21:51 pm' author 'al' ancestors ((name 'Traits-al.54' message 'empty log message' id 'c84c007e-23a6-234e-a08e-4ad3f0f37df5' date '31 March 2004' time '9:12:32 pm' author 'al' ancestors ((name 'Traits-al.53' message '- work in progress adding Monticello support' id '6aacf989-decc-d449-942f-fb172a741856' date '29 March 2004' time '1:09:58 pm' author 'al' ancestors ((name 'Traits-al.52' message 'empty log message' id '3b1eeed9-069b-3e45-acbd-b948fc82f991' date '29 March 2004' time '1:08:21 pm' author 'al' ancestors ((name 'Traits-al.51' message 'moved methods to TraitsMonticello' id '6339e127-daf3-ed40-8853-62892b9d8ac1' date '25 March 2004' time '10:20:03 pm' author 'al' ancestors ((name 'Traits-al.50' message '- making class traits work with metaclasses' id '1d6f3f96-1043-e449-9c16-e2f1f30add9a' date '25 March 2004' time '1:49:12 pm' author 'al' ancestors ((name 'Traits-al.49' message '- class trait' id '8cb1a8cd-9101-bf48-ae6b-303b5291fe36' date '25 March 2004' time '12:15:58 pm' author 'al' ancestors ((name 'Traits-al.48' message '- individual class trait composition' id 'e979a8d4-04a6-6148-9a25-a5267942db93' date '24 March 2004' time '9:54:23 am' author 'al' ancestors ((name 'Traits-al.46' message '-Make Traits depending on  TraitsPreload package' id 'fabcfa24-4ada-0449-9b8a-761d83d86146' date '22 March 2004' time '9:18:56 am' author 'al' ancestors ((name 'Traits-al.45' message '- classtrait working (without ui)' id '76cdd437-643b-8b48-91ab-2deba3ea4eb6' date '22 March 2004' time '10:56:19 pm' author 'al' ancestors ((name 'Traits-al.44' message '- start of work to track category changes in users of traits' id '9a09b15f-c73b-1f46-b03f-6f9046b45662' date '20 March 2004' time '9:15:41 pm' author 'al' ancestors ((name 'Traits-al.43' message '' id '58eef7d3-9155-5649-a0fc-1b72136943de' date '18 March 2004' time '3:30:44 pm' author 'al' ancestors ((name 'Traits-al.42' message '- make copy of traitComposition a deep copy
- convenience methods for drag and drop functions' id 'c8260577-0841-5e42-8ffb-0050e401dc09' date '17 March 2004' time '8:38:11 pm' author 'al' ancestors ((name 'Traits-al.41' message '- fixed local selector handling bug which appeared in seldom circumstances' id 'ec8e2b8d-0cba-b348-ab67-7b60ac091261' date '17 March 2004' time '4:40:13 pm' author 'al' ancestors ((name 'Traits-al.40' message '- better localSelectors: and includesLocalSelector: tests' id 'c0ba954b-2573-f240-b613-a8575ec01a28' date '17 March 2004' time '3:59:03 pm' author 'al' ancestors ((name 'Traits-al.39' message '- #raiseSignal: replaced by #signal:' id '6aa08090-34c4-aa49-b335-9ca79900ba09' date '17 March 2004' time '3:25:32 pm' author 'al' ancestors ((name 'Traits-al.38' message '- pushed users up to Traits because classTrait doesen''t have it''s own users' id '2effbd96-e593-a543-8437-e9094574785b' date '17 March 2004' time '1:53:02 pm' author 'al' ancestors ((name 'Traits-al.37' message '- classTrait work in progress' id 'cea2e822-25a7-d341-bfbb-b5be786d957a' date '16 March 2004' time '12:54:37 pm' author 'al' ancestors ((name 'Traits-al.36' message '- renaming traits
- test for fileout' id '7f2669b7-cbbb-3a40-a1e9-2333ab5b7925' date '15 March 2004' time '11:00:53 pm' author 'al' ancestors ((name 'Traits-al.35' message '- categorization of methods from traits into original category. Though, renaming of a category is not propagated to users at the moment
- signal TraitCompositionException instead of generic errors' id 'ddd8dc57-7f83-a84f-b80c-38ff2f8fb2a6' date '14 March 2004' time '10:38:15 pm' author 'al' ancestors ((name 'Traits-al.34' message '' id '17ddb9c7-e030-9940-8f22-00e8eada3021' date '14 March 2004' time '12:29:07 am' author 'al' ancestors ((name 'Traits-al.33' message '- removed unused code in composition
- removed old tests
- refactored PureBehavior (pushed up category specific behavior to Trait|ClassDescription)' id '440ca8a4-f368-4e42-a9c4-c91f9ec29f24' date '12 March 2004' time '10:28:46 pm' author 'al' ancestors ((name 'Traits-al.32' message '- assert that there is no cycle in compositions' id 'cb5b1455-0ef6-4148-aae9-7f2f869dcb7b' date '11 March 2004' time '11:17:12 pm' author 'al' ancestors ((name 'Traits-al.31' message '- correctly copy temp names for aliases' id '5c528d7c-9b09-7f45-9364-168f69d93a64' date '11 March 2004' time '9:26:15 pm' author 'al' ancestors ((name 'Traits-al.30' message '- improved update and propagation when setting a new trait composition. It now uses the logic of the normal change propagation mechanism by first discovering the selectors that may be new or may have been changed because the composition was changed. E.g., because exclusion or aliases may have been modified or because there are new traits etc.
- old methods not removed yet (TODO)' id 'c81cc99e-2e24-b14a-96de-a176d9c5dc20' date '8 March 2004' time '12:11:46 am' author 'al' ancestors ((name 'Traits-al.29' message '- again rewritten propagation mechanism to work correctly with aliases of excluded methods' id '9ccd75cc-7b93-7442-ba32-1a8c5ce35c3c' date '7 March 2004' time '4:00:42 pm' author 'al' ancestors ((name 'Traits-al.28' message '- refactored propagation mechanism of changes to support aliases
- caching of alias-methods, so that all of them with the same selector are identical which is crucial to the update mechanism to have as few message sends as possible
- #removeFromSystem, #obsolete, #canZapMethodDict and co. implementation. Now correctly removes user-references to obsolete behaviors
- new tests (total 41; 2 fail)
' id 'e501bd71-35e0-f54f-a3cd-fddc1bc55a8c' date '2 March 2004' time '10:02:11 pm' author 'al' ancestors ((name 'Traits-al.27' message '- fixed missing #bindingOf: in PureBehavior.
- #bindingOf: and #classBindingOf: should be refactored...' id 'a0be5799-9bb5-6248-adde-875ec05cb365' date '29 February 2004' time '2:32:44 pm' author 'al' ancestors ((name 'Traits-al.26' message '- new and improved tests for missing features and bugs. Namely:
-- cycles in uses of traits
-- verify that alias selectors are possible (arguments and not overriding existing methods)
-- missing update mechanism for aliases
-- cannot assign {T1} as trait composition

None of these things are implemented yet. Only tests.' id '537ffdcb-1366-8444-8172-58c58928b289' date '24 February 2004' time '10:47:09 pm' author 'al' ancestors ((name 'Traits-al.25' message '- aliases: create a copy which stores tempNames so that the compiledMethod is not pointing to the sources file with a method with different selector which caused an error message.
- when removing traits methods also remove it from the organization' id '941eb83f-f745-214f-ba72-25d30371f3de' date '22 February 2004' time '10:40:45 pm' author 'al' ancestors ((name 'Traits-al.24' message '- comment changes from update stream' id '03a2ba02-6644-104b-bfe6-6618bba43544' date '21 February 2004' time '12:10:06 am' author 'al' ancestors ((name 'Traits-al.23' message '- generation of conflict methods with apropriate selectors
- caching of template conflict methods and copying with nice argument names depending on the argument names of the conflicting methods
- tests' id 'd5dd30c2-3c69-634e-9774-f588de63ac91' date '20 February 2004' time '10:50:39 pm' author 'al' ancestors ((name 'Traits-al.23' message '- generating and caching conflict methods with right selector and argument names (depending on the argument names of the conflicting methods)' id 'ef833256-65c8-874a-8da7-4ac32555c8c1' date '20 February 2004' time '10:47:04 pm' author 'al' ancestors ((name 'Traits-al.23' message '- conflict method template and generation with apropriate argument names' id 'b1c301cb-3893-464e-8995-63ddf0bea133' date '16 February 2004' time '10:57:09 pm' author 'al' ancestors ((name 'Traits-al.22' message '- TraitsBrowser which enhances the normal browser to support traits' id '8423538f-6562-2745-8dd4-3345ab25766d' date '9 February 2004' time '10:53:52 pm' author 'al' ancestors ((name 'Traits-al.21' message '- integrated kernel refactorings
- new update/notification mechanism
- ... (see mail for details)' id 'accf4541-3f2d-5846-9b0e-daafa220fba4' date '8 February 2004' time '10:06:15 pm' author 'al' ancestors ((name 'Traits-al.20' message 'parent is Traits-NS.16.
- Includes the changes of Traits-NS.18 and 19 that are not related to compiling.
- New TraitMethodDescription and LocatedMethod' id '6fd1f75e-5340-354a-871b-4a5c0b8ed824' date '25 January 2004' time '10:08:21 pm' author 'al' ancestors ((name 'Traits-NS.16' message 'Code review and some changes.' id 'ebbfe1cd-8341-604a-a401-93d54f5bd3a4' date '6 January 2004' time '5:31:15 pm' author 'NS' ancestors ((name 'Traits-NS.15' message 'Small fixes.' id 'dff61fd3-d8ed-de47-b773-3b36770e10de' date '5 January 2004' time '3:23:57 pm' author 'NS' ancestors ((name 'Traits-sd.14' message 'Stef started to workk on fileout.
Added some methods. The management of classTrait
is missing and will have to be fixed. I should 
provide more tests. 

If you run the nearly empty test testFileout and load the file
T6.st using the file list you get an error with the composition clause. It may be worth having a look at it. ' id 'db8a097f-3a00-11d8-ac23-000a9573eae2' date '29 December 2003' time '12:00 am' author 'sd' ancestors ((name 'Traits-al.13' message 'added three compatibility methods (like allSubclassesDo:) to TraitDescription to make the browser work with traits...
There are still some problems with categorizing methods. But basically, we can create traits in the browser and use them in classes now!' id '6ee031c9-5142-5648-8342-ff0251d5a8e4' date '23 December 2003' time '12:00 am' author 'al' ancestors ((name 'Traits-al.12' message 'all 23 tests green...' id 'ad74b27e-6d58-4645-8cc2-e4ce7796da9b' date '23 December 2003' time '12:00 am' author 'al' ancestors ((name 'Traits-al.11' message 'general functionality of traits should be running now, except the conflicting method (whilch should probably be stored in the sources to save the selector correctly?!)' id 'ccb8df58-e0f3-1e41-8ebf-5b614751dbcd' date '22 December 2003' time '12:00 am' author 'al' ancestors ((name 'Traits-al.10' message 'class definition template' id 'adf6abf0-185f-f548-a8a1-7c2f7a353013' date '17 December 2003' time '12:00 am' author 'al' ancestors ((name 'Traits-al.9' message '- conflicting methods (not fully working yet. see failing test)
- recompilation on super sends
- printing class and trait definitions
- tests....' id '20655842-ddf5-b24c-9879-9e38852b303d' date '16 December 2003' time '12:00 am' author 'al' ancestors ((name 'Traits-al.8' message 'localSelectors and other small things' id '6f80d36d-854b-9748-aaee-3f1337e40105' date '15 December 2003' time '12:00 am' author 'al' ancestors ((name 'Traits-al.7' message '- more tests (one fails because localSelectors is not yet implemented)
- Dictionary>>addAll:' id '6e4123cd-b592-7549-a5a7-a2e9066ff5ed' date '13 December 2003' time '12:00 am' author 'al' ancestors ((name 'Traits-al.6' message '- new trait composition model
- applying traits and modification of method dictionary according to changes in composition
- new tests. All green

- conflict handling still missing' id '5a476dea-ff34-0a4f-9fe1-cb450a59b168' date '13 December 2003' time '12:00 am' author 'al' ancestors ((name 'Traits-al.8' message 'probs 2' id 'fa459ce7-6235-5e4d-ab13-e73aa394b770' date '12 December 2003' time '12:00 am' author 'al' ancestors ((name 'Traits-al.7' message 'probs...' id 'ca55db06-6b55-154f-8b5f-ea2bd5ee9111' date '12 December 2003' time '12:00 am' author 'al' ancestors ((name 'Traits-al.6' message 'empty log message' id 'f63db90d-6045-fd48-9ac7-f53a8f81ab75' date '12 December 2003' time '12:00 am' author 'al' ancestors ((name 'Traits-al.5' message '- #setTraitComposition: aTraitComposition will probably need to be a little mor complex. Because only looking for new or removed traits is not enough. Maybe the user just changes an alias or an exclusion. #[remove/add]MethodsFromSubtraits: aCollection seems to be recursive at this moment.

- I added the initialization of traitComposition to be an EmptyTrait rather than nil, what caused some errors.

- implemented #- and #@ on TraitHolder to delegate to it''s subject

- modified the tests to the more constrained composition rules

- all tests work without the ones in category"testing-method dict"

- I made some collection related methods to be class extensions (named *Traits-Addons) which belong to our traits package. So it should work without the RB loaded. The methods are e.g., Collection>>, or Collection>>ifEmpty:.' id '8a9a989a-0e6f-4041-9366-ee358a7de6a8' date '11 December 2003' time '12:00 am' author 'al' ancestors ((name 'Traits-sd.3' message 'broken....' id 'e202f5d2-2b23-11d8-8808-000a9573eae2' date '10 December 2003' time '12:00 am' author 'sd' ancestors ((name 'Traits-sd.2' message 'stef, adrian and seb hacking...' id '2b1c5380-2b20-11d8-8808-000a9573eae2' date '10 December 2003' time '12:00 am' author 'sd' ancestors ((name 'Traits-al.1' message 'initial commit of unified package' id '6e835049-20a6-f242-83b0-6ff3c8b5c420' date '10 December 2003' time '12:00 am' author 'al' ancestors ((name 'Traits-al.2' message 'empty log message' id '452c650f-2d8a-e541-9956-1fb3a4312dc0' date '10 December 2003' time '12:00 am' author 'al' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Traits-NS.5' message 'We got an error saving the changes to Monticello. This is another try...' id '51195e6e-aa32-f74a-8bae-5d7939ddf7e8' date '11 December 2003' time '12:00 am' author 'NS' ancestors ((name 'Traits-NS.4' message 'Some more work' id 'b4f498fd-cf59-234e-82b8-3fff54faf234' date '11 December 2003' time '12:00 am' author 'NS' ancestors ((id 'e202f5d2-2b23-11d8-8808-000a9573eae2')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Traits-al.47' message '- package-info bugfix' id 'b120cf7f-68d3-1846-8883-bccb0bb96310' date '22 March 2004' time '10:27:25 pm' author 'al' ancestors ((id 'fabcfa24-4ada-0449-9b8a-761d83d86146')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Traits-al.60' message '- removed dependeny to TraitsPreload because it''s problematic for the sar installation process' id 'f0a73b54-8eec-7649-b803-75e678dce420' date '14 April 2004' time '9:26:08 pm' author 'al' ancestors ((name 'Traits-al.59' message '- merge' id '796be2e4-507c-2547-a1a8-515bf50c6652' date '14 April 2004' time '2:25:40 pm' author 'al' ancestors ((name 'Traits-al.59' message '- merge' id '6f193efd-4377-cb45-8d28-649a60e61d11' date '13 April 2004' time '7:59:03 pm' author 'al' ancestors ((id '0298ac4f-275b-2945-bfdc-d647fb897e77')(name 'Traits-al.58' message '- make aliases work properly with browser (manipulating source, changing browser)
- convenience functionality for UI to support automatic removal of aliases or adding exclusions

This version is a branch and not yet merget with version Tarits-NL.58' id '50cf4ac5-8e53-e248-b0ac-af5b54404972' date '13 April 2004' time '4:16:28 pm' author 'al' ancestors ((id 'f2897f1c-d047-a645-ab43-20740214ae71')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Traits-al.66' message '- TraitsBrowser: deleting methods handling traits in a transparent way
- TraitsBrowser: class side definition bug fixed
- some cleanup in Trait hierarchy' id '96c92648-e459-a147-80bb-61c51af2b4de' date '21 April 2004' time '12:37:46 pm' author 'al' ancestors ((id '0b991a5a-4e8e-be41-8fb4-3b3d6a9e9eb2')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Traits-al.83' message '- changesets now also work for traits composition clause changes in class and metaclass definitions' id 'a4d76554-d9bf-11d8-ab85-000a95e07986' date '19 July 2004' time '10:10:13 pm' author 'al' ancestors ((name 'Traits-al.82' message '- ChangeSet: fixed ordering of trait and class definitions' id 'e84a53ea-d959-11d8-85b5-000a95e07986' date '19 July 2004' time '10:01:58 am' author 'al' ancestors ((name 'Traits-al.81' message '- support for changeset (only partly: changes on trait composition clause of classes do not work yet)

Adaptations:
- System Change Nofitication
- Changeset
- Copying of Traits and ClassTraits
- some other places' id 'c64c6bf5-d8c3-11d8-8235-000a95e07986' date '18 July 2004' time '4:07:16 pm' author 'al' ancestors ((id '0dc74b17-dabc-974e-af9e-90f5b6e6f5f2')(id '009bcb96-d7ff-11d8-b8bd-000a95e07986')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ((name 'Traits-dvf.122' message 'Version with problematic ancestry info, ignore.' id 'a59c6006-e579-4ef6-a456-cd9f362db63b' date '15 August 2005' time '7:53:46 pm' author 'dvf' ancestors ((name 'Traits-dvf.121' message 'Not much changed.' id '00000000-0000-0000-0000-000000000000' date '15 August 2005' time '6:32:16 pm' author 'dvf' ancestors ((name 'Traits-dvf.120' message 'For some reason, many of the uses clauses were lost. Recovered from 102, hope that''ll do the trick.' id '00000000-0000-0000-0000-000000000000' date '11 August 2005' time '10:37 pm' author 'dvf' ancestors ((name 'Traits-dvf.119' message 'Got rid of the TraitsDescription variable too.' id '00000000-0000-0000-0000-000000000000' date '11 August 2005' time '10:32:06 pm' author 'dvf' ancestors ((name 'Traits-dvf.117' message 'Stop using sendCaches instance variable in Behavior, use class variable instead. Variable still not removed, though.
' id '00000000-0000-0000-0000-000000000000' date '11 August 2005' time '7:35:59 pm' author 'dvf' ancestors ((name 'Traits-dvf.116' message 'Third attempt at saving this thing - stop using sendCaches instance variable in Behavior, use class variable instead. Variable still not removed, though.' id '00000000-0000-0000-0000-000000000000' date '11 August 2005' time '7:27:14 pm' author 'dvf' ancestors ((name 'Traits-dvf.115' message 'Stopped using sendCaches instance variable in Behavior, now using a class variable. Variable still not removed, though.' id '00000000-0000-0000-0000-000000000000' date '11 August 2005' time '7:20:30 pm' author 'dvf' ancestors ((name 'Traits-dvf.114' message 'Stopped using the sendCaches instance variable, using a class variable instead. The variable is still there, though.' id '00000000-0000-0000-0000-000000000000' date '11 August 2005' time '6:55:05 pm' author 'dvf' ancestors ((name 'Traits-dvf.113' message 'Some more steps towards updating all relevant requires when needed.' id '00000000-0000-0000-0000-000000000000' date '9 August 2005' time '6:04:15 pm' author 'dvf' ancestors ((name 'Traits-dvf.112' message 'Added tests that make sure the right things get calculate when a class is modified, and some code to satisfy them. Next step is to make the algorithm be able to use this information, then integration with the OB.' id '00000000-0000-0000-0000-000000000000' date '9 August 2005' time '4:58:41 pm' author 'dvf' ancestors ((name 'Traits-dvf.111' message 'Added test for requires over Traits' id '00000000-0000-0000-0000-000000000000' date '8 August 2005' time '6:07:47 pm' author 'dvf' ancestors ((name 'Traits-dvf.110' message 'Removes the use of class names, kept the refactoring that happened while doing that.' id '00000000-0000-0000-0000-000000000000' date '5 August 2005' time '7:20:12 pm' author 'dvf' ancestors ((name 'Traits-dvf.109' message 'Changed the dictionaries and sets to be indexed by class name instead of the class itself, and that made it slower.' id '00000000-0000-0000-0000-000000000000' date '5 August 2005' time '6:43:25 pm' author 'dvf' ancestors ((name 'Traits-dvf.108' message 'Added a test to make sure that the algorithm conforms to the original, on all subclasses of ProtoObject on selector #+. The test is green.' id '00000000-0000-0000-0000-000000000000' date '5 August 2005' time '6:20 pm' author 'dvf' ancestors ((name 'Traits-dvf.107' message 'Made refactored version not give errors on the whole hierarchy, and made it take a second to compute all the classes that require #+. So we''re at x10 slower than the version that depends on the recursion to manage the intermediate information.' id '00000000-0000-0000-0000-000000000000' date '5 August 2005' time '6:09:01 pm' author 'dvf' ancestors ((name 'Traits-dvf.106' message 'Integrated and added a few tests for Nathanael''s implementation of the requires algorithm. Also includes separate tests for a refactoring of this algorithm, which we intend to extend to Traits.' id '00000000-0000-0000-0000-000000000000' date '5 August 2005' time '4:27:41 pm' author 'dvf' ancestors ((name 'Traits-dvf.105' message 'Merged head with 3.8 fix, tests are green.' id '00000000-0000-0000-0000-000000000000' date '3 August 2005' time '12:07:26 pm' author 'dvf' ancestors ((name 'Traits-dvf.103' message 'Fixed tiny bug in file out code so tests are green in 3.8-6665full.' id '00000000-0000-0000-0000-000000000000' date '3 August 2005' time '9:20:27 am' author 'dvf' ancestors ((id '8d224fd9-2764-46b9-8511-2472374430a1')) stepChildren ())(id '030710e8-ec6c-11d9-8cd6-001124765fb0')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())))) stepChildren ())) stepChildren ())) stepChildren ((name 'Traits-dvf.123' message 'Dead end do not use this. ' id '0dad4a60-9f37-4b1b-ac19-259f5841d677' date '18 August 2005' time '10:52:10 am' author 'dvf' ancestors ((id '70b52f62-4543-4f5c-a807-51573fb929ec')) stepChildren ())))) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Traits-dvf.144' message 'Some optimizations in the way we run the algorithm' id '98b78e31-a8d2-44a8-b22d-d20ee9a048d1' date '8 September 2005' time '4:42:33 pm' author 'dvf' ancestors ((name 'Traits-dvf.143' message 'Being more precise:
Don''t add all superclasses to classes to update, add only the ones between the targetClass and a rootClass that was modified.' id '24d3b016-a638-41c2-b34a-8dd93f625c12' date '8 September 2005' time '2:47:09 pm' author 'dvf' ancestors ((id 'c6f9079e-49fe-4e15-85ab-3a380bed0547')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Traits-al.162' message '- changing superclass of TraitBehavior
- remove PureBehavior' id '8b5fd51b-9c16-48a5-b2b9-c880f67869a7' date '22 September 2005' time '11:56:09 am' author 'al' ancestors ((name 'Traits-al.161' message '- removed supersends in TraitBehavior (not yet changed superclass of TraitBehavior - could probably be done in one step, have to check later..)' id '909ec6e1-7eb9-4ed8-98a0-af5786f324bc' date '20 September 2005' time '9:26:57 pm' author 'al' ancestors ((name 'Traits-al.160' message '- change superclass of Behavior to Object
- added trait composition with aliases to TraitBehavior but not yet adjusted supersends to call aliased methods (this is needed as a bootrapping step)
- fixed ClassBuilder adjustment (needs being backportet?)
' id '909ee0eb-8374-4753-bd9e-2de918fc34bd' date '20 September 2005' time '9:21:26 pm' author 'al' ancestors ((name 'Traits-al.160' message '- change superclass of Behavior to Object
- added trait composition with aliases to TraitBehavior but not yet adjusted supersends to call aliased methods (this is needed as a bootrapping step)
- fixed ClassBuilder adjustment (needs being backportet?)
' id 'b4aa2942-3472-4d53-a801-c46be6bae1c2' date '20 September 2005' time '9:19:26 pm' author 'al' ancestors ((name 'Traits-al.159' message '- reverted to older version of a method sending basicAddTraitSelector: aSymbol withMethod: which is an alias introduced in the same package and hence caused bootstrapping problem' id '773160a9-2910-11da-8b11-001124765fb0' date '19 September 2005' time '3:22:45 pm' author 'al' ancestors ((name 'Traits-al.158' message '- refactoring: traitifying PureBehavior
- fix of classbuilder to set the trait composition on recompilation of the hierarchy (has to be checked if this is appropriate fix)
- this snapshot is taken before recompilation (changing the superclass of Behavior and TraitBehavior to Object)' id 'bafcf1c2-290c-11da-8b11-001124765fb0' date '19 September 2005' time '2:56:01 pm' author 'al' ancestors ((name 'Traits-al.158' message '- refactoring: traitifying PureBehavior
- fix of classbuilder to set the trait composition on recompilation of the hierarchy (has to be checked if this is appropriate fix)
- this snapshot is taken before recompilation (changing the superclass of Behavior and TraitBehavior to Object)' id '8436b483-290c-11da-8b11-001124765fb0' date '19 September 2005' time '2:54:29 pm' author 'al' ancestors ((id '50572a1a-a673-4795-91ab-707d498394c1')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Traits-al.202' message '- merged with md
- test for fix of marker methods that were broken because of new default literals in CompiledMethod' id '4ab22979-3de4-4f33-bf86-bd8e0337b168' date '13 February 2006' time '10:41:13 pm' author 'al' ancestors ((id '9e43856c-9e40-447e-bab2-8cac3c0adfcb')(name 'Traits-al.201' message '- merge with Daniel''s fix' id '75d52293-f36a-4c43-a15e-e5165788b6ef' date '4 February 2006' time '12:22:11 pm' author 'al' ancestors ((id '48cdcc51-0c4c-4044-a5c5-66a8f2f3cc23')(name 'Traits-dvf.200' message 'Fix bug that prevented requirements calculation from being dynamic. For the curious - a walkback I made during cache invalidation was hidden courtesy of ChangeNotificationSystem. Need to be careful around those...' id '883b283d-37b4-4f5d-9ef9-cee8f0452539' date '31 January 2006' time '11:39:58 pm' author 'dvf' ancestors ((id '2ed0c617-7067-472c-af76-7de73707e931')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Traits-al.209' message '- add #includeBehavior to TPureBehavior so that traits understand this message too' id '89b2d45c-30fa-49b5-bfc5-98da11bb7281' date '1 March 2006' time '11:22:01 pm' author 'al' ancestors ((id '4e127754-a84c-11da-a8bb-000d933a223c')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Traits-edc.226' message 'Some of the tests in the final released 3.9 image fail. You should be able to run all tests in a fresh image and get a green bar in the TestRunner.

The following patch makes that happen. Some of the bugs are fixed (thanks to Hans-Martin Mosner) and I deleted some of them and moved the rest of them to subclasses in a category FailingTests, which I then deleted. I have attached a change file that makes all the tests green in the final released image.
Ralph Johnson
' id '4b134d04-8cbd-4ef7-88c5-154d159a1e73' date '31 January 2007' time '6:53:51 am' author 'edc' ancestors ((id '86df78df-1b36-45d7-a31c-9e75a3896e66')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Traits-ul.290' message 'Speed up Trait class>>allTraitsDo: by using Smalltalk instead of #allInstances.' id '3e58b2db-945d-5e41-b9d8-5f5880d86ca8' date '28 September 2012' time '10:30:33.464 am' author 'ul' ancestors ((id '51226bb1-b487-ec4f-b7f6-7d8d07df6994')) stepChildren ())) stepChildren ())